用C++写的一个‘23’游戏

“23”游戏是一个双人游戏,道具是23根牙签,玩家轮流取1,2或3根牙签。
拿到最后一根牙签的是输家。写程序和计算机玩“23”。总是玩家先走,
轮到计算机时,它根据以下规则采取行动:
a.如果剩余牙签多于4根,计算机就取走4-x根,x为玩家上次取走的牙签数
b.如果剩余2-4根牙签,计算机取走足够多的牙签,确保只剩下1根
c.如果剩余1根牙签,计算机只能取走它并且认输
玩家输入要取走的牙签数量时,程序应对输入的有效性进行检查。
要确定玩家输入的数在1到3之间,而且试图取走的不能超过当前剩余的。

程序如下


#include<iostream>
#include<iomanip>

using namespace std;

void game()
{
	cout << "一共有23根牙签,一次只能抽1到3根玩家轮流抽1,2或3根牙签,拿到最后一根牙签的是输家。"<<endl
		<< "   玩家请抽取"
		<< endl;
	int sum = 23;    //牙签总数量
	int x;          //玩家抽取牙签数
	while (sum>0)
	{
		if (sum>1)
		{
			cin >> x;
			if (x<4 && x>1)        //判断玩家输入是否符合规则
			{
				sum = sum - x;
				cout << "你抽取了" << x << "根牙签,还剩余"
					<< sum << "根牙签。" << endl;
			}
			else
			{
				cout << "你的输入有误。" << endl;
			}
		}
		else 
		{
			cout << "剩余一根牙签,你输了!"  << endl;
			break;
		}
		
		if (sum>4)
		{
			cout << "电脑已抽取:" << (4 - x) << endl
				<<"还剩余"<< (sum = sum - (4 - x)) <<"根牙签。";
		}
		else if (sum>1 && sum<5)
		{
			cout << "电脑要抽取:" << (sum - 1) << endl;
			cout<< "还剩余" << (sum=sum-(sum-1))<< "根牙签。";
		}
		else
		{
			cout << "你赢了,恭喜你!" << endl;
		}
	}
	
}

输出结果:
获胜结果:
在这里插入图片描述
失败结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43778462/article/details/89640253