高分求C++高手帮忙做个小程序!!!!

来源:百度知道 编辑:UC知道 时间:2024/07/07 23:14:55
从火柴盒里拿火柴,一次只能拿1-3根,最后一根谁拿谁就输!
其实就是减数字游戏!
要求:一开始能选择人机对战或人跟人对战!
人机的话游戏开始后要能选择人先拿还是电脑先拿!
接着要求都差不多
拿火柴前要能输入总共的火柴数
接着开始拿
只能限制拿1-3根,如果数字不是1-3就要提示错误,并且重新输入
拿到最后1根谁拿就谁输
但是如果只剩1根,不能说输入2根变成-1,然后提示输赢
这里记得要做限制!
还有游戏结束后要能选择是否能继续游戏!
继续游戏的话就回到第一步!
还有开头的地方放
如果选择人机或人人,还有选择谁先拿的地方,也要限制只能输入那两个选择的
如果输入别的则错误重来
请把做好的代码发出来,如果测试没错误,就给你分

我用WIN-TC的

WIN-TC?没有用过。我这里用的是VC编的,不过我想两者可以兼容吧。
#include <stdio.h>
#include <conio.h>
#define NUMBER 21 //一共是21根火柴
void initGame(int& mode)//参数用的是引用方法,址传递而不是值传递,注意一下。
{
printf("Game begin:\n");

do
{
printf("1 player or 2 player?(1/2)");
scanf("%d",&mode);
}while(mode!=1 && mode!=2);
};
void main()
{
int a=NUMBER,i;//如果有输入功能,可以用scanf方法。增加initGame参数,用传址的方式传到initGame函数中。当然也可以用其它的方法。这里略……
char buff;
int x;//电脑还是2人
initGame(x);//初始电脑还是2人。

while(a>0)
{
static int user1=1;//静态属性,初始定义为真。
do
{
if(x==1)
printf("How many sticks do you wish to take(1---%d)?",a>3?3:a);
else
printf("User%d,How many sticks do you wish to take(1---%d)?",user1?1:2,a>3?3:a);
scanf("%d",&i);
}while(i>3 || i<1 || i>a);

if(a-i>0