Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menulis program permainan backgammon menggunakan JavaScript

Bagaimana untuk menulis program permainan backgammon menggunakan JavaScript

PHPz
PHPzasal
2023-04-23 16:40:43450semak imbas

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

  1. Menjana papan catur

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.

  1. Tambahkan buah catur

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

3) Dalam fungsi

, kita perlu melakukan operasi berikut: addChessman

    Tambahkan buah catur pada grid semasa Jika sudah ada buah catur, tidak boleh lagi ditambah;
  • Tukar warna buah catur kepada warna lawan;
  • Kod teras adalah seperti berikut:

Nilai keputusan
// 添加棋子
function addChessman(cell) {
  if (cell.className.indexOf(&#39;chessman&#39;) === -1) {
    // 当前格子中没有棋子,则可以添加
    var chessman = document.createElement(&#39;div&#39;);
    chessman.className = (turn === 0) ? &#39;black chessman&#39; : &#39;white chessman&#39;;
    cell.appendChild(chessman);

    // 切换下棋方
    turn = (turn === 0) ? 1 : 0;

    // 判断是否胜利
    if (checkWin(cell)) {
      alert(&#39;游戏结束,&#39; + ((turn === 0) ? &#39;黑子&#39; : &#39;白子&#39;) + &#39;胜利!&#39;);
    }
  }
}
  1. Soalan terakhir ialah bagaimana untuk menilai sama ada permainan dimenangi atau tidak. Sebenarnya, peraturan untuk menentukan keputusan Gobang adalah sangat mudah Anda hanya perlu mencari lima buah catur berturut-turut di sekitar buah catur semasa.
Operasi khusus adalah seperti berikut:

1) Gunakan fungsi

untuk mendapatkan bilangan baris grid semasa:

getRow2) Gunakan fungsi

untuk mendapatkan Bilangan lajur di mana grid semasa terletak:
function getRow(cell) {
  var row = cell.parentNode;
  while (row.nodeName === &#39;DIV&#39; && row.className.indexOf(&#39;row&#39;) === -1) {
    row = row.parentNode;
  }
  return parseInt(row.className.replace(/^row/, &#39;&#39;));
}

getCol3) Gunakan fungsi

untuk mendapatkan maklumat warna buah catur pada kedudukan yang ditentukan pada papan catur:
function getCol(cell) {
  return parseInt(cell.className.replace(/^col/, &#39;&#39;));
}

getChessman4) Gunakan fungsi

untuk mencari Dalam semua arah di sekeliling kedudukan semasa, lihat jika terdapat lima buah catur berturut-turut:
// 获取棋盘上指定位置的棋子颜色信息
function getChessman(row, col) {
  var cell = document.querySelector(&#39;.row&#39; + row + &#39; .col&#39; + col);
  if (cell && cell.firstChild && cell.firstChild.tagName === &#39;DIV&#39;) {
    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;

    Tambahkan buah catur dengan warna yang sepadan pada kedudukan semasa;
  1. Hakim sama ada permainan semasa berjaya, dan jika ya, keluarkan maklumat kemenangan;
  2. Tukar pemain catur dan tunggu operasi seterusnya.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn