请问一下为什么case2为什么不能输出玩家输赢
#include <stdio.h>
#include <process.h>
#include <windows.h>
//设置石头数目
int total=10;
void Set()
{
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();
}
}
void color(short x) //自定义函根据参数改变颜色
{
if(x>=0 && x<=15)//参数在0-15的范围颜色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色
else//默认的颜色白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
void PrintfGetStone()
{
color(2);
printf("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
printf(" ___________ \n");
printf(" / | ___________ ___________ \n");
printf(" / ________| / _____ \\ ____ ________ ___ ____________ / _____ \\ \n");
printf(" / / / / \\ \\ | | / \\ | | ____________ / \\ / / \\ \\ 取 石 子 游 戏 \n");
printf(" / / / / \\ \\ _____|____|_____ / ______| _____|____|_____ / \\ / \\ / / \\ \\ \n");
printf(" | | | /________\\ / | | | \\ | | / ________ \\ / ___ \\ | /________\\ / \n");
printf(" | | _________ | / |_______________| | \\_______ |_______________| / | | \\ | / \\ | | / \n");
printf(" | | | | | __________/ | | \\ \\ | | | | | | | / \\ | | __________/ \n");
printf(" | \\ |________| | \\ | | \\________ | | | | | | | | | | | | \\ 游戏说明:每次只能取1到3颗石头 \n");
printf(" \\ \\ / / \\ \\ | | | | | | | | | | | | | | \\ \\ 取到最后一颗石头的人输 \n");
printf(" \\ \\______/ / \\ \\_________ | |_____ _______| | | |_____ \\ |________| / | | | | \\ \\_________ \n");
printf(" \\ / \\ \\ \\ \\ | / \\ \\ \\ / | | | | \\ \\ \n");
printf(" \\____________/ \\_____________\\ \\_________\\ |____________/ \\_________\\ \\_____________/ |_____| |_____| \\_____________\\ \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" 1设置(调整石头总数) 2开始游戏(双人模式) 3三人模式 4人机对战 5退出游戏 \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n");
}
int main() {
int choice;
int m=1;
while(m){
system("cls");
PrintfGetStone();
scanf("%d",&choice);
getchar();
switch (choice) {
case 1:
Set(&total);
break;
case 2:
while (total > 0) {
system("cls");
int GetStone;
printf("当前剩余石子个数:%d\n", total);
printf("玩家A:");
scanf("%d", &GetStone);
if (GetStone < 1 || GetStone > 3) {
printf("输入无效,请重新输入。\n");
continue;
}
total -= GetStone;
if (total <= 0) {
printf("玩家A输");
break;
}
printf("当前剩余石子个数:%d\n", total);
printf("玩家B:");
scanf("%d", &GetStone);
if (GetStone < 1 || GetStone > 3) {
printf("输入无效,请重新输入。\n");
continue;
}
total -= GetStone;
if (total <= 0) {
printf("玩家B输");
break;
}
}
break;
case 3:
while (total > 0) {
system("cls");
int GetStone;
printf("当前剩余石子个数:%d\n", total);
printf("玩家A:");
scanf("%d", &GetStone);
if (GetStone < 1 || GetStone > 3) {
printf("输入无效,请重新输入。\n");
continue;
}
total -= GetStone;
if (total <= 0) {
printf("玩家A输");
break;
}
printf("当前剩余石子个数:%d\n", total);
printf("玩家B:");
scanf("%d", &GetStone);
if (GetStone < 1 || GetStone > 3) {
printf("输入无效,请重新输入。\n");
continue;
}
total -= GetStone;
if (total <= 0) {
printf("玩家B输");
break;
}
printf("当前剩余石子个数:%d\n", total);
printf("玩家C:");
scanf("%d", &GetStone);
if (GetStone < 1 || GetStone > 3) {
printf("输入无效,请重新输入。\n");
continue;
}
total -= GetStone;
if (total <= 0) {
printf("玩家C输");
break;
}
}
case 5:
printf("退出游戏。\n");
m=0;
break;
default:
printf("输入无效。\n");
break;
}
}
return 0;
}