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.

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Game Mengenal Pola Dinamis</title>
  7. <style>
  8. body {
  9. font-family: Arial, sans-serif;
  10. text-align: center;
  11. background-color: #f0f0f0;
  12. margin: 0;
  13. padding: 0;
  14. }
  15. h4 {
  16. color: blue;
  17. }
  18. .pattern {
  19. font-size: 24px;
  20. margin-bottom: 20px;
  21. }
  22. input[type="text"] {
  23. padding: 10px;
  24. font-size: 18px;
  25. margin: 10px;
  26. width:300px;
  27. }
  28. button {
  29. padding: 10px 20px;
  30. font-size: 18px;
  31. background-color: #28a745;
  32. color: white;
  33. border: none;
  34. cursor: pointer;
  35. }
  36. button:hover {
  37. background-color: #218838;
  38. }
  39. .result, .score, .progress {
  40. font-size: 18px;
  41. margin-top: 20px;
  42. }
  43. footer{
  44. align:center;
  45. text-align:center;
  46. font-size:11px;
  47. color:grey;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <center>
  53. <h5><font color=blue>Game Mengenal Pola Dinamis</font></h5>
  54. <p class="pattern" id="pattern"></p>
  55. <p>Petunjuk :<br/></p>
  56. Masukkan dua angka berikutnya dalam pola di bawah ini (pisahkan dengan koma)<br>
  57. Anda perlu bermain hingga 10 kali untuk melihat skor akhir
  58. <input type="text" id="answer" placeholder="Jawaban Anda">
  59. <button onclick="checkAnswer()">Submit</button>
  60. <p class="result" id="result"></p>
  61. <p class="progress" id="progress"></p>
  62. <p class="score" id="score"></p>
  63. <script>
  64. // Inisialisasi variabel untuk pola
  65. var startNumber, sequence, steps, correctAnswer1, correctAnswer2;
  66. var correctCount = 0; // Hitung jawaban benar
  67. var wrongCount = 0; // Hitung jawaban salah
  68. var totalQuestions = 10; // Total pertanyaan yang akan dijawab
  69. var currentQuestion = 0; // Pertanyaan saat ini
  70. var startTime, endTime; // Variabel untuk menghitung waktu
  71. // Fungsi untuk membuat pola baru
  72. function generatePattern() {
  73. // Jika sudah 10 kali menjawab, tampilkan skor akhir
  74. if (currentQuestion >= totalQuestions) {
  75. endTime = new Date(); // Waktu selesai
  76. var timeSpent = Math.floor((endTime - startTime) / 1000); // Hitung waktu dalam detik
  77. document.getElementById('score').innerHTML =
  78. "Game selesai!<br>" +
  79. "Jawaban benar: " + correctCount + "<br>" +
  80. "Jawaban salah: " + wrongCount + "<br>" +
  81. "Waktu yang dibutuhkan: " + timeSpent + " detik.";
  82. document.getElementById('result').innerHTML = ""; // Kosongkan hasil saat ini
  83. document.getElementById('pattern').innerHTML = ""; // Kosongkan pola saat ini
  84. document.getElementById('progress').innerHTML = ""; // Kosongkan progres
  85. return;
  86. }
  87. // Pilih angka awal secara acak antara 1 dan 20
  88. startNumber = Math.floor(Math.random() * 20) + 1;
  89. // Inisialisasi langkah perubahan dinamis (misalnya, +2, +3, +4, +5)
  90. steps = [2, 3, 4, 5]; // Langkah bertambah secara dinamis
  91. // Buat deret angka dengan panjang 4 angka, menggunakan langkah yang berbeda-beda
  92. sequence = [startNumber];
  93. for (var i = 0; i < 3; i++) {
  94. var nextNumber = sequence[i] + steps[i];
  95. sequence.push(nextNumber);
  96. }
  97. // Tentukan dua jawaban yang benar (dua angka berikutnya dalam pola)
  98. correctAnswer1 = sequence[3] + steps[3]; // Angka ke-5
  99. correctAnswer2 = correctAnswer1 + (steps[steps.length - 1] + 1); // Angka ke-6, langkahnya bertambah satu lagi
  100. // Tampilkan pola kepada pemain
  101. document.getElementById('pattern').innerHTML = sequence.join(', ') + ', ?, ?';
  102. currentQuestion++; // Naikkan jumlah pertanyaan
  103. // Tampilkan progres berapa kali sudah dijawab dan berapa kali lagi tersisa
  104. document.getElementById('progress').innerHTML =
  105. "Anda telah menjawab " + currentQuestion + " kali, tersisa " + (totalQuestions - currentQuestion) + " kali lagi.";
  106. }
  107. // Fungsi untuk memeriksa jawaban pemain
  108. function checkAnswer() {
  109. var answer = document.getElementById('answer').value;
  110. var result = document.getElementById('result');
  111. // Pisahkan dua jawaban yang dimasukkan pemain
  112. var answers = answer.split(',').map(function(item) {
  113. return parseInt(item.trim());
  114. });
  115. // Cek apakah kedua jawaban benar
  116. if (answers.length === 2 && answers[0] === correctAnswer1 && answers[1] === correctAnswer2) {
  117. result.innerHTML = "Benar!";
  118. result.style.color = "green";
  119. correctCount++; // Tambah hitungan benar
  120. } else {
  121. result.innerHTML = "Salah! Jawaban yang benar adalah " + correctAnswer1 + " dan " + correctAnswer2 + ".";
  122. result.style.color = "red";
  123. wrongCount++; // Tambah hitungan salah
  124. }
  125. document.getElementById('answer').value = ""; // Kosongkan input jawaban
  126. generatePattern(); // Panggil untuk pertanyaan berikutnya
  127. }
  128. // Fungsi untuk memulai permainan dan mengatur ulang semua variabel
  129. function startGame() {
  130. correctCount = 0; // Reset hitungan benar
  131. wrongCount = 0; // Reset hitungan salah
  132. currentQuestion = 0; // Reset pertanyaan
  133. startTime = new Date(); // Waktu mulai
  134. document.getElementById('score').innerHTML = ""; // Reset tampilan skor
  135. document.getElementById('result').innerHTML = ""; // Kosongkan hasil saat ini
  136. document.getElementById('progress').innerHTML = ""; // Kosongkan progres
  137. generatePattern(); // Buat pola pertama
  138. }
  139. // Panggil fungsi startGame saat halaman dimuat
  140. window.onload = startGame;
  141. </script>
  142. <!--mohon tidak menghapus footer tanpa seizin pembuatnya-->
  143. <footer><a href="https://youtube.com/@tutorial-Ku">Copyright @ Pakkar 2024</a></footer>
  144. </center>
  145. </body>
  146. </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
Game Mengenal Pola Dinamis

Petunjuk :

Masukkan dua angka berikutnya dalam pola di bawah ini (pisahkan dengan koma)
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.

satu Respon

  1. Terima kasih untuk game yang menyenangkan dan sangat menginspirasi untuk pembelajaran berpikir komputasional