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

捡石子游戏网页代码

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



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

捡石子游戏

游戏规则:三堆石子分别为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

分享给朋友:

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

适合旧电脑2022年值得推荐的 10 款轻量级 Linux 发行版

推荐 10 款轻量级Linux 发行版,它们是 2022 年的轻量级、对旧硬件友好的 Linux 发行版。1、Linux LiteLinux Lite 是一款基于#ubuntu# 和 Debian 的、正在不断开发和完善的 Linux 发行版,极好看的 Xfce 桌面,并基于 Ubuntu,采用了...

基于archlinux的发行版有哪些?

Arch Linux 是一个 Linux 发行版,采用滚动更新的模型,这意味着 Arch Linux 不会定期发布新版本,而是持续接收更新和升级,保持系统与最新软件版本的同步。Arch Linux 以其极简主义、简单性和用户定制为中心的特点而闻名,专注于让用户对其系统配置具有完全控制权。然而,它也以...

GitLab-创建分支

描述分支是独立的生产线,是开发过程的一部分。分支的创建涉及以下步骤。创建一个分支步骤1-登录您的GitLab帐户,然后转到“ 项目”部分下的项目。步骤2-要创建分支,请单击“ 存储库”部分下的“ 分支”选项,然后单击“ 新建分支”按钮。步骤3-在“ 新建分支”屏幕中,输入分支的名称,然后单击“ 创建...

79.idea中git合并分支操作分享

文章目录前言1.fetch的操作2.合并最新代码到当前的开发分支3.解决冲突4.分支合并:5.完成代码合并总结前言git的操作在日产的工作中也非常重要,团队化的代码管理,每次如果代码被别人覆盖或者自己的代码不能提交到服务器那是灾难性的结果,本篇进行一篇分享来总结下idea中git的操作帮助java开...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即可...

HTML5+眼球追踪?黑科技颠覆传统手机体验

今天,iH5工具推出一个新的神秘功能——眼动追踪,可以通过摄像头捕捉观众眼球活动!为了给大家具体演示该功能的使用,我做了一个案例,供大家参考。实际效果如下:案例比较简单,就是通过眼动功能获取视觉焦点位置,剔除用户看中的牌。现在,舞台的属性中多了一个“启用眼动”的选项,另外,还多了一个“启用摄像头”的...