自己动手完成制作nim石子问题(ps:在只有一堆的情况下)

发布时间:2016-12-10 14:55:07 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"自己动手完成制作nim石子问题(ps:在只有一堆的情况下)",主要涉及到自己动手完成制作nim石子问题(ps:在只有一堆的情况下)方面的内容,对于自己动手完成制作nim石子问题(ps:在只有一堆的情况下)感兴趣的同学可以参考一下。

关于问题的数学原理,可以参看布鲁迪(Richard A.Brualdi)写的组合数学,这里不赘述,直接上代码,请指教 #include <iostream> using namespace std; int CpuNum(int EqualNum,int Sum)//转载请注明出处http://my.csdn.net/u010632868,CSDN 第25个比利 { if(Sum % EqualNum == 0) { int Cpu = rand()%(EqualNum); if(Cpu != 0) { return Cpu; } else { return Cpu+1; } } else { return Sum - (Sum/EqualNum)*EqualNum; } } int main() { ////////////////////////////////////////////////// //初始化过程 int Sum; cout<<"请输入石子的总数 : "<<endl; cin>>Sum; while(Sum <= 0) { cout<<"输入错误,请重新输入"<<endl; cin>>Sum; } int MaxNum; cout<<"请输入允许的取石子的最大数量 (注意石子的数量应该大于等于2)"<<endl; cin>>MaxNum; while(MaxNum < 2) { cout<<"输入错误,请重新输入"<<endl; cin>>MaxNum; } int EqualNum = MaxNum+1; int BOOL; cout<<"请选择先手还是后手,如果先手请输入‘1’,后手请输入‘0’"<<endl; cin>>BOOL; //初始化完成 ////////////////////////////////////////////////////// //游戏开始//转载请注明出处http://my.csdn.net/u010632868,CSDN 第25个比利 int Game; int Cpu; if(BOOL) { while(true) { //玩家输入 cout<<"请选择你要取出的石子的数量"<<endl; cin>>Game; while(Game > MaxNum || Game < 1) { cout<<"输入错误,请重新输入"<<endl; cout<<"请选择你要取出的球的数量"<<endl; cin>>Game; } Sum-=Game; cout<<"您选择取出的石子个数为 : "<<Game<<endl; cout<<"当前还剩的石子的数量为 : "<<Sum<<endl; cout<<endl; if(Sum == 0) { cout<<"恭喜你您赢得了游戏胜利"<<endl; break; } //电脑计算输入 Cpu = CpuNum(EqualNum,Sum); Sum-=Cpu; cout<<"电脑选择取出的石子个数为 : "<<Cpu<<endl; cout<<"当前还剩的石子的数量为 : "<<Sum<<endl; cout<<endl; if(Sum == 0) { cout<<"很遗憾,您输了"<<endl; break; } } } else//转载请注明出处http://my.csdn.net/u010632868,CSDN 第25个比利 { while(true) { //电脑计算输入 Cpu = CpuNum(EqualNum,Sum); Sum-=Cpu; cout<<"电脑选择取出的石子个数为 : "<<Cpu<<endl; cout<<"当前还剩的石子的数量为 : "<<Sum<<endl; cout<<endl; if(Sum == 0) { cout<<"很遗憾,您输了"<<endl; break; } //玩家输入 cout<<"请选择你要取出的石子的数量"<<endl; cin>>Game; while(Game > MaxNum || Game < 1) { cout<<"输入错误,请重新输入"<<endl; cout<<"请选择你要取出的球的数量"<<endl; cin>>Game; } Sum-=Game; cout<<"您选择取出的石子个数为 : "<<Game<<endl; cout<<"当前还剩的石子的数量为 : "<<Sum<<endl; cout<<endl; if(Sum == 0) { cout<<"恭喜你您赢得了游戏胜利"<<endl; break; } } } return 0; }

上一篇:Python网络爬虫2 ---- scrapy爬虫架构介绍和初试
下一篇:iOS- iOS 和 Android 的后台推送原理各是什么?有什么区别?

相关文章

相关评论