当前位置:首页 > 技术分析 > 正文内容

捡石子游戏网页代码

ruisui883周前 (04-08)技术分析11



捡石子游戏(取最后一颗者输)

捡石子游戏

游戏规则:三堆石子分别为3、5、7个。两人轮流从任意一堆取走任意数目的石子,取最后一颗石子者输。


堆1


堆2


堆3



玩家1的回合


<script>

let piles = [3, 5, 7]; // 三堆石子的初始数量

let currentPlayer = 1; // 当前玩家(1或2)

let selectedPile = 0; // 当前选中的堆(0表示未选中)


// 初始化游戏

function initGame() {

updateStonesDisplay();

document.getElementById('message').className = 'message player-turn';

document.getElementById('message').textContent = `玩家${currentPlayer}的回合`;

selectedPile = 0;

document.getElementById('controls').style.display = 'none';

}


// 更新石子显示

function updateStonesDisplay() {

for (let i = 0; i < 3; i++) {

const stonesContainer = document.getElementById(`stones${i+1}`);

stonesContainer.innerHTML = '';


for (let j = 0; j < piles[i]; j++) {

const stone = document.createElement('div');

stone.className = 'stone';

stonesContainer.appendChild(stone);

}

}

}


// 选择堆

function selectPile(pileNum) {

if (piles[pileNum-1] === 0) {

alert('这堆已经没有石子了!');

return;

}


selectedPile = pileNum;

document.getElementById('selected-pile').textContent = pileNum;

document.getElementById('take-count').max = piles[pileNum-1];

document.getElementById('take-count').value = 1;

document.getElementById('controls').style.display = 'block';

}


// 取消选择

function cancelSelection() {

selectedPile = 0;

document.getElementById('controls').style.display = 'none';

}


// 取石子

function takeStones() {

const takeCount = parseInt(document.getElementById('take-count').value);

const pileIndex = selectedPile - 1;


if (takeCount < 1 takecount> piles[pileIndex]) {

alert('请输入有效的石子数量!');

return;

}


// 取石子

piles[pileIndex] -= takeCount;


// 检查游戏是否结束

const totalStones = piles[0] + piles[1] + piles[2];


if (totalStones === 0) {

// 游戏结束,当前玩家输

document.getElementById('message').className = 'message game-over';

document.getElementById('message').textContent = `游戏结束!玩家${currentPlayer}取了最后一颗石子,玩家${currentPlayer}输了!`;

selectedPile = 0;

document.getElementById('controls').style.display = 'none';

return;

}


// 切换玩家

currentPlayer = currentPlayer === 1 ? 2 : 1;


// 更新显示

updateStonesDisplay();

document.getElementById('message').className = 'message player-turn';

document.getElementById('message').textContent = `玩家${currentPlayer}的回合`;

selectedPile = 0;

document.getElementById('controls').style.display = 'none';

}


// 重置游戏

function resetGame() {

piles = [3, 5, 7];

currentPlayer = 1;

initGame();

}


// 初始化游戏

window.onload = initGame;

</script>

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3369.html

分享给朋友:

“捡石子游戏网页代码” 的相关文章

Beta版Linux Mint“Xia”发行版22.1发布

IT之家 12 月 13 日消息,Beta 版 Linux Mint“Xia” 22.1 昨日(12 月 12 日)发布,新版本基于 Ubuntu 24.04,内核版本为 Linux 6.8,长期支持将持续到 2029 年,为用户提供可靠稳定的使用体验。新版本在软件包管理方面,主要弃用了传统的 ap...

Git分布式系统---Gitlab多人工作流程

前言在上一次推文中,我们已经很清楚的讲解了如何创建本地仓库、提交(push)项目到远程仓库以及从远程仓库clone(克隆)项目到本地的相关操作。大家可以先去看前面的推文(快速掌握Git分布式系统操作)点击查看目前无论你是否步入社会还是在校学生,都会使用Gitlab来进行团队的代码管理。(可以这样说:...

Acustica Audio 发布模拟Roland Jupiter 双声道合成器插件 TH2

福利: Acustica Audio 发布模拟Roland Jupiter 风格的双声道合成器插件 TH2 免费下载 意大利 Acustica Audio 公司发布布模拟Roland Jupiter 风格的双声道合成器插件 TH2 ,灵感来源于Acustica Audio的THING-8系列,它是...

你感动了吗?佳能超规格镜头 RF 24-105mm F2.8深度测评

如果要你选一支用作多题材创作的挂机镜头,那我相信很多人会选择24-105mm这个焦段的镜头。作为一支可以实现从广角到长焦的变焦镜头,24-105mm有着丰富的焦段选择。只是基于镜头体积以及光学结构上的限制,此前的24-105mm镜头只能恒定在F4的光圈。而佳能打破了这一限制,将实用焦段和恒定光圈完美...

别让“跑焦”毁所有!仅需这一项设置,即可显著改善镜头对焦精度

我常常会收到一些摄影爱好者的私信,也一直在努力的帮助大家解决更多摄影中常见问题。在我收到的所有问题中。有一个问题是最麻烦的,那就是“为什么我的图像看起来模糊?”。这个问题几乎每个人都遇到过,究其原因可以说是多种多样相对复杂。起初我一直认为是对焦问题所导致,也就有了我之前所写的“后按对焦”以及“对焦模...

学前端,这30个CSS选择器,你必须熟记

你学会了基本的id,class类选择器和descendant后代选择器,然后就觉得完事了吗?如果这样,你就会错过许多灵活运用CSS的机会。虽然本文提到的许多选择器都属于CSS3,并且只能在现代的浏览器中使用,但学会这些是大有好处的。什么是CSS选择器呢?每一条css样式定义由两部分组成,形式如下:[...