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

捡石子游戏网页代码

ruisui882个月前 (04-08)技术分析18



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

捡石子游戏

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

分享给朋友:

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

Deepin Linux正式引入AI功能,成为第一个正式加入AI潮流的Linux发行版

Deepin Linux是一个基于Debian的Linux发行版,以美观和实用性而闻名。现在为了达到人工智能发展趋势的前沿,Deepin Linux的开发人员宣布,他们已经开始将AI功能集成到桌面环境及其随附的应用程序中。AI集成包含了两种风格——AI驱动的图像编辑插件和AI编码助手。其中图像编辑插...

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和 QQ,那么如何在 Linux 发行版中安装微信和 QQ 呢?以下是一些尝试的解决方法。QQ上一个版本的 QQ Linux 版还是在2009年,而在现在,基于 NT 架构的全新 QQ Linux版已经被正式推出,为所有用户提供下载。新版本提供了deb、rpm、A...

什么是同步通信?什么是异步通信?它们有什么区别?

串行通信一般又分为同步和异步通信,同步通信需要同步时钟信号,而异步通信则不需要同步时钟信号。同步通信:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步通信:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。同步通信与异步通信有什么区别呢?1、同步通信要求接收端...

大容量SSD太贵买不起,这三种低成本方案也能让硬盘速度起飞

现在的游戏文件夹体积动不动就突破100GB,256GB、512GB容量的SSD装不了几个游戏就满了。虽说现在SSD价格一直在降,但是1TB及更大容量的SSD价格依然比较高。如果你对硬盘容量、速度有较高要求,又不想花太多预算的话,这三种低成本硬盘加速方案一定要了解一下。锐龙用户的福利——StoreMI...

山西省就业见习服务平台上线

25日起,单位申报见习岗位和个人申请就业见习均可网上办理4月21日,记者从山西省人社厅获悉,我省就业见习服务平台在省人社厅门户网站(https://rst. shanxi.gov.cn/)上线。从4月25日起,单位申报见习岗位、个人申请就业见习均可登录该平台,全程在网上办理。打开省人社厅官网,山西省...

Django前后端分离跨域请求问题

一、问题背景之前使用django+vue进行前后端分离碰到跨域请求问题,跨域(域名或者端口不同)请求问题的本质是由于浏览器的同源策略导致的,当请求的响应不是处于同一个域名和端口下,浏览器不会接受响应,同源策略也是浏览器针对请求的安全问题所作出的一种保护行为。针对跨域问题,可以有下面的解决方式:JSO...