Rumah > Artikel > hujung hadapan web > Bagaimana untuk menulis program permainan backgammon menggunakan JavaScript
Permainan backgammon ialah permainan catur yang sangat klasik yang mempunyai sejarah panjang dalam masyarakat moden. Dengan perkembangan pesat teknologi komputer dan Internet, orang ramai kini boleh bermain backgammon dalam talian melalui platform dalam talian. Dalam melaksanakan aplikasi ini, JavaScript, sebagai bahasa pengaturcaraan yang popular, secara semula jadi perlu disebut.
Bagaimana untuk menulis program permainan backgammon menggunakan JavaScript? Dalam artikel ini, penulis akan memberikan anda idea pelaksanaan program asas, dan memberikan carta alir yang ringkas dan jelas berdasarkan idea pelaksanaan.
1. Idea pelaksanaan program
Sebagai permainan catur, teras permainan backgammon sudah tentu papan catur. Dalam JavaScript, kita boleh menggunakan HTML dan CSS untuk menjana papan catur ringkas. Kodnya adalah seperti berikut:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>五子棋游戏</title> <style> #chessboard { width: 540px; height: 540px; margin: 0 auto; border: 1px solid #333; position: relative; } .row { height: 30px; position: absolute; left: 0; right: 0; } .col { width: 30px; height: 30px; float: left; border: 1px solid #333; } </style> </head> <body> <div id="chessboard"> <div class="row"> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> </div> <div class="row"> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> <div class="col"></div> </div> ... </div> <script src="main.js"></script> </body> </html>
Dalam kod di atas, kami menggunakan tag <div>
sebagai elemen asas papan catur dan menggunakan CSS untuk menggayakannya. Hasilkan papan catur dengan 10 baris dan 10 lajur melalui gelung bersarang.
Selepas menjana papan catur, kita perlu boleh menambah kepingan hitam atau putih pada papan catur. Ini memerlukan kami menggunakan JavaScript untuk melaksanakan pengikatan acara.
Kaedahnya adalah seperti berikut:
1) Gunakan pembolehubah turn
untuk mewakili pemain semasa, 0 mewakili hitam, 1 mewakili putih:
var turn = 0; // 当前下棋方,0代表黑子,1代表白子
2 ) Gunakan memperoleh semua grid papan catur dan menambah acara klik: document.getElementById
var cells = document.getElementsByClassName('col'); for (var i = 0, len = cells.length; i < len; i++) { cells[i].onclick = function() { addChessman(this); }; }Di mana, fungsi
mewakili operasi menambah buah catur. addChessman
, kita perlu melakukan operasi berikut: addChessman
// 添加棋子 function addChessman(cell) { if (cell.className.indexOf('chessman') === -1) { // 当前格子中没有棋子,则可以添加 var chessman = document.createElement('div'); chessman.className = (turn === 0) ? 'black chessman' : 'white chessman'; cell.appendChild(chessman); // 切换下棋方 turn = (turn === 0) ? 1 : 0; // 判断是否胜利 if (checkWin(cell)) { alert('游戏结束,' + ((turn === 0) ? '黑子' : '白子') + '胜利!'); } } }
untuk mendapatkan bilangan baris grid semasa:
getRow
2) Gunakan fungsi
function getRow(cell) { var row = cell.parentNode; while (row.nodeName === 'DIV' && row.className.indexOf('row') === -1) { row = row.parentNode; } return parseInt(row.className.replace(/^row/, '')); }
getCol
3) Gunakan fungsi
function getCol(cell) { return parseInt(cell.className.replace(/^col/, '')); }
getChessman
4) Gunakan fungsi
// 获取棋盘上指定位置的棋子颜色信息 function getChessman(row, col) { var cell = document.querySelector('.row' + row + ' .col' + col); if (cell && cell.firstChild && cell.firstChild.tagName === 'DIV') { return cell.firstChild.className; } else { return null; } }
checkLine
2. Aliran carta
// 检查棋子是否连成五个 function checkLine(row, col, offsetX, offsetY, count) { if (count === 5) { return true; } else if (row < 1 || row > 10 || col < 1 || col > 10) { return false; } else if (getChessman(row, col) === getChessman(row + offsetX, col + offsetY)) { return checkLine(row + offsetX, col + offsetY, offsetX, offsetY, count + 1); } else { return false; } } // 判断当前棋局是否结束 function checkWin(cell) { var row = getRow(cell); var col = getCol(cell); var flag = checkLine(row, col, 0, 1, 1) || // 水平方向 checkLine(row, col, 1, 0, 1) || // 垂直方向 checkLine(row, col, 1, 1, 1) || // 右斜方向 checkLine(row, col, -1, 1, 1); // 左斜方向 return flag; }Carta alir untuk melaksanakan program backgammon adalah seperti berikut:
Seperti di atas, apabila pengguna mengklik pada kawasan kosong pada papan catur, program akan melaksanakan operasi berikut:
Tentukan sama ada terdapat sekeping catur pada kedudukan semasa, jika tidak, tiada operasi akan dilakukan;
Atas ialah kandungan terperinci Bagaimana untuk menulis program permainan backgammon menggunakan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!