已经将代码写出,并且做了优化
程序代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> int num=0,k=0,pri,surplus,take1,take2;//num为棋子数量,k为一次取多少颗,pri表示谁先取,surplus为剩下棋子 void wingame() //take1和take2分别为人取走的和计算机取走的. { system("cls");//先清屏一下 while(1) { if(pri==1) { printf("你取几颗:\n"); scanf("%d",&take1); if(take1<1) { printf("取颗数错误!\n"); getchar(); exit(0); } if(take1>k) { printf("竞赛无法进行下去!\n"); getchar(); exit(0); } surplus=surplus-take1; if(surplus>=0) { printf("你赢了,请按任意键结束游戏....\n"); getchar(); exit(0); } printf("你取走%d颗,还剩%d颗\n",take1,surplus); take1=0;//将取走清零 pri=2;//优先级变成计算机的 } if(pri==2) { int judge=num; judge=(surplus%(k+1)); if(surplus==0) { printf("计算机赢了,不要灰心,请按任意键结束游戏....\n"); getchar(); exit(0); } if(judge!=0) { take2=judge; if(take2<1) { printf("计算机认输!你赢了,请按任意键结束游戏....\n"); getchar(); exit(0); } surplus=surplus-take2; printf("计算机取走%d颗,还剩%d颗\n",take2,surplus); take2=0;//将take2清零 pri=1;//优先级变为用户的 } if(judge==0) { surplus=surplus-1; printf("计算机取走%d颗,还剩%d颗\n",take2,surplus); take2=0; pri=2; } } } } void main() { int key; printf("请输入一共有多少颗棋子:\n"); scanf("%d",&num); surplus=num;//surplus为剩下棋子 printf("一次最多取多少颗:\n"); scanf("%d",&k); printf("谁先取 1为你先取,2为计算机先取:\n"); scanf("%d",&pri); printf("竞赛规则:\n"); printf("1.取到最后一颗棋子的一方为胜\n"); printf("2.取到最后一个棋子的一方为败(暂未开放)\n"); printf("请选择:\n"); scanf("%d",&key); switch(key) { case 1:wingame();break; //case 2:losegame();break; 先写了一个,所以losegame没写 default:exit(0);break; } }
欢迎来到我的博客:http://blog..cn/noisunyuhong