- ACM
我疯了
- 2024-5-23 12:40:17 @
#include <stdio.h> #include <process.h> //设置石头数目 void Set(int *total) { int n; char ch; printf("当前石子总数:%d\n",*total); printf("是否重新设置(Y/N)?"); scanf("%c",&ch); if (ch == 'Y' || ch == 'y') { printf("请输入石子总数:"); while(1) { scanf("%d",&n); if(n <= 0) { printf("石子数大于0,请重新输入:"); }else break; } *total = n; system("cls"); printf("设置成功!\n"); printf("当前石子总数:%d\n",*total); printf("按任意键返回上一层..."); getchar(); getchar(); } } //取石子,返回取石子的个数 int GetStone(int x) { int n; printf("请输入取石子的个数:"); while(1) { scanf("%d",&n); if (n<1 || n> 3) { printf("石子数量只能是1、2或3,请重新输入:"); }else if( n > x) printf("取的石子数大于剩余石子数,请重新输入:"); else break; } return n; }
//开始游戏 void StartGame(int total) { int a,b; int left = total; while(1) { system("cls"); printf("当前剩余石子数:%d\n",left); printf("A:"); a = GetStone(left); left -= a; if(left == 0) { printf("A取到最后1个石子,A输\n"); break; } printf("B:"); b = GetStone(left); left -= b; if(left == 0) { printf("B取到最后1个石子,B输\n"); break; } } }
int main() { int opt; int total = 100; //石头总数 int bgo = 1; while(bgo) { system("cls");//清屏 printf("---------------石子游戏-------------\n"); printf("| 1.设置 |\n"); printf("| 2.开始游戏 |\n"); printf("| 3.退出 |\n"); printf("------------------------------------\n"); scanf("%d",&opt); getchar(); switch(opt) { case 1: Set(&total); break; case 2: StartGame(total); break; case 3: bgo = 0; break; }
}
return 0;
}