Jika pada artikel sebelumnya di sajikan cara membuat game pengenalan pola dalam berpikir komputasional, maka dalam artikel ini dikembangkan fitur tambahan yaitu penambahan skor permainan.
Bagaimana alur pengembangannya ?
Untuk menampilkan skor game setelah berakhir, maka aplikasi game berpikir komputasional sebelumnya dimodifikasi, dan ditambahkan algoritma sebagai berikut :
Pengulangan 10 kali, setiap kali pemain menjawab, pola baru akan otomatis diacak hingga pemain menjawab 10 kali.
Perhitungan Skor, setiap jawaban yang benar atau salah akan dicatat. Setelah 10 putaran, total skor benar dan salah ditampilkan.
Penghitung Waktu, waktu yang dihabiskan oleh pemain untuk menyelesaikan 10 pertanyaan akan ditampilkan di akhir permainan.
Menyusun kode sumber (source code)
Berdasarkan slgoritma yang telah disusun sebelumnya maka disusun kode HTML, Javascript dan CSS seperti berikut ini. Silahkan di salin ke notepad / notepad++ dan disimpan dalam format HTML.
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Game Mengenal Pola Dinamis</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- text-align: center;
- background-color: #f0f0f0;
- margin: 0;
- padding: 0;
- }
- h4 {
- color: blue;
- }
- .pattern {
- font-size: 24px;
- margin-bottom: 20px;
- }
- input[type="text"] {
- padding: 10px;
- font-size: 18px;
- margin: 10px;
- width:300px;
- }
- button {
- padding: 10px 20px;
- font-size: 18px;
- background-color: #28a745;
- color: white;
- border: none;
- cursor: pointer;
- }
- button:hover {
- background-color: #218838;
- }
- .result, .score, .progress {
- font-size: 18px;
- margin-top: 20px;
- }
- footer{
- align:center;
- text-align:center;
- font-size:11px;
- color:grey;
- }
- </style>
- </head>
- <body>
- <center>
- <h5><font color=blue>Game Mengenal Pola Dinamis</font></h5>
- <p class="pattern" id="pattern"></p>
- <p>Petunjuk :<br/></p>
- Masukkan dua angka berikutnya dalam pola di bawah ini (pisahkan dengan koma)<br>
- Anda perlu bermain hingga 10 kali untuk melihat skor akhir
- <input type="text" id="answer" placeholder="Jawaban Anda">
- <button onclick="checkAnswer()">Submit</button>
- <p class="result" id="result"></p>
- <p class="progress" id="progress"></p>
- <p class="score" id="score"></p>
- <script>
- // Inisialisasi variabel untuk pola
- var startNumber, sequence, steps, correctAnswer1, correctAnswer2;
- var correctCount = 0; // Hitung jawaban benar
- var wrongCount = 0; // Hitung jawaban salah
- var totalQuestions = 10; // Total pertanyaan yang akan dijawab
- var currentQuestion = 0; // Pertanyaan saat ini
- var startTime, endTime; // Variabel untuk menghitung waktu
- // Fungsi untuk membuat pola baru
- function generatePattern() {
- // Jika sudah 10 kali menjawab, tampilkan skor akhir
- if (currentQuestion >= totalQuestions) {
- endTime = new Date(); // Waktu selesai
- var timeSpent = Math.floor((endTime - startTime) / 1000); // Hitung waktu dalam detik
- document.getElementById('score').innerHTML =
- "Game selesai!<br>" +
- "Jawaban benar: " + correctCount + "<br>" +
- "Jawaban salah: " + wrongCount + "<br>" +
- "Waktu yang dibutuhkan: " + timeSpent + " detik.";
- document.getElementById('result').innerHTML = ""; // Kosongkan hasil saat ini
- document.getElementById('pattern').innerHTML = ""; // Kosongkan pola saat ini
- document.getElementById('progress').innerHTML = ""; // Kosongkan progres
- return;
- }
- // Pilih angka awal secara acak antara 1 dan 20
- startNumber = Math.floor(Math.random() * 20) + 1;
- // Inisialisasi langkah perubahan dinamis (misalnya, +2, +3, +4, +5)
- steps = [2, 3, 4, 5]; // Langkah bertambah secara dinamis
- // Buat deret angka dengan panjang 4 angka, menggunakan langkah yang berbeda-beda
- sequence = [startNumber];
- for (var i = 0; i < 3; i++) {
- var nextNumber = sequence[i] + steps[i];
- sequence.push(nextNumber);
- }
- // Tentukan dua jawaban yang benar (dua angka berikutnya dalam pola)
- correctAnswer1 = sequence[3] + steps[3]; // Angka ke-5
- correctAnswer2 = correctAnswer1 + (steps[steps.length - 1] + 1); // Angka ke-6, langkahnya bertambah satu lagi
- // Tampilkan pola kepada pemain
- document.getElementById('pattern').innerHTML = sequence.join(', ') + ', ?, ?';
- currentQuestion++; // Naikkan jumlah pertanyaan
- // Tampilkan progres berapa kali sudah dijawab dan berapa kali lagi tersisa
- document.getElementById('progress').innerHTML =
- "Anda telah menjawab " + currentQuestion + " kali, tersisa " + (totalQuestions - currentQuestion) + " kali lagi.";
- }
- // Fungsi untuk memeriksa jawaban pemain
- function checkAnswer() {
- var answer = document.getElementById('answer').value;
- var result = document.getElementById('result');
- // Pisahkan dua jawaban yang dimasukkan pemain
- var answers = answer.split(',').map(function(item) {
- return parseInt(item.trim());
- });
- // Cek apakah kedua jawaban benar
- if (answers.length === 2 && answers[0] === correctAnswer1 && answers[1] === correctAnswer2) {
- result.innerHTML = "Benar!";
- result.style.color = "green";
- correctCount++; // Tambah hitungan benar
- } else {
- result.innerHTML = "Salah! Jawaban yang benar adalah " + correctAnswer1 + " dan " + correctAnswer2 + ".";
- result.style.color = "red";
- wrongCount++; // Tambah hitungan salah
- }
- document.getElementById('answer').value = ""; // Kosongkan input jawaban
- generatePattern(); // Panggil untuk pertanyaan berikutnya
- }
- // Fungsi untuk memulai permainan dan mengatur ulang semua variabel
- function startGame() {
- correctCount = 0; // Reset hitungan benar
- wrongCount = 0; // Reset hitungan salah
- currentQuestion = 0; // Reset pertanyaan
- startTime = new Date(); // Waktu mulai
- document.getElementById('score').innerHTML = ""; // Reset tampilan skor
- document.getElementById('result').innerHTML = ""; // Kosongkan hasil saat ini
- document.getElementById('progress').innerHTML = ""; // Kosongkan progres
- generatePattern(); // Buat pola pertama
- }
- // Panggil fungsi startGame saat halaman dimuat
- window.onload = startGame;
- </script>
- <!--mohon tidak menghapus footer tanpa seizin pembuatnya-->
- <footer><a href="https://youtube.com/@tutorial-Ku">Copyright @ Pakkar 2024</a></footer>
- </center>
- </body>
- </html>
Tampilan Game Berpikir Komputasional dengan Fitur Skor
Jika kode tersebut telah disalin dengan benar, maka akan mendapatkan tampilan seperti berikut ini.
Game Mengenal Pola Dinamis
Petunjuk :
Anda perlu bermain hingga 10 kali untuk melihat skor akhir
Selamat mencoba, semoga berhasil dan pada akhirnya dapat membantu peserta didik memahami konsep berfikir komputasional.
Terima kasih untuk game yang menyenangkan dan sangat menginspirasi untuk pembelajaran berpikir komputasional