357
该想法脱胎于一道小学奥数题:3 5 7。
大致描述是这样的,现在有三组数3、5、7,由甲乙双方先后手轮流进行操作,每次操作可从任一数中取走一正整数,直至为0视为取光了这一组数字,谁取走最后一个数视为胜利。
示例
初始状态:3:5:7
甲先手,从5中取走3。
状态更替为:3:2:7
乙后手,从7中取6.
状态更替为3:2:1
甲从3中取3
状态更替为2:1
乙从2中取2
状态更替为1
甲取1
甲获胜!
难点
这个游戏十分简单,但背后隐藏的必胜策略并不明显(至少当时身为小学生的我是想不到的)。可以猜猜先手胜还是后手胜哈哈哈!
可能3、5、7数字很小,尝试个若干次就能找到规律,如果数字更大呢?试试7、8、9。如果数字更多呢?3、5、7、9?先后手的胜负关系还确定吗?必胜策略是否会改变很难一眼看出。
当然,我是知道这背后的原理,该说是数论知识还是什么呢?可惜没有地方炫耀,希望开发个游戏出来给身边的人玩玩。
开发计划
由于最近刚好学了些前后端技术,就想开发个网页版游戏试试看,希望挑战者能赢过我编写的必胜策略hhh。
所设想的流程大概如下:
1、打开网页,弹出游戏规则,让挑战者选择先后手;
2、电脑与玩家轮流操作,直至数字被取光;
3、判定胜负!
用的是React写前端,希望能写出个美观而有趣的交互界面,这个必胜策略藏到后端去,传输的参数也很简单,作为我自主设计开发的第一个程序应该难度正好!希望一个月内完成!