设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。相关的知识,希望对你有一定的参考价值。
要求:人每次可输入1或2或3或4,不管怎么拿最终总是人输
请编程高手出马
最终胜利:最后一次火柴谁拿走谁输.人先拿
请给出可执行的过程
int f(int n)
switch(n)
case 0:return 4;
case 4:return 3;
case 3:return 2;
case 2:return 1;
return 0;
void main()
int m=21,n;
do
scanf("%d",&n);
m-=n;
n=f(m%5);
printf ("%d\n",n);
m-=n;
while(m>1);
其实有更简单的,如下:
#include<stdio.h>
void main()
int n;
do
scanf("%d",&n);
printf ("%d\n",5-n);
while(1);
本回答被提问者采纳 参考技术B 你的意思是拿到最后一根的算输吧,
要看顺序的,先拿的就一定输。
——————————————
int match=21;
int finish=0;//结束标志
int err//错误标志
do
if(match==1)
cout<<"非常抱歉,你失败了!"<<endl;
finish=1;
else
do
char num;
cout<<"现在还剩下"<<match<<"根火柴,请问您要拿走几根?"<<endl;
cin>>num;
if(num!='1'&&num!='2'&&num!='3'&&num!='4')
cout<<"你的输入不对!!请重新输入!"<<endl;
err=1;
else
switch(num);
case'1':
case'2':
case'3':
case'4':
defalt:match=match-5;break;
while(err)
while(!finish) 参考技术C ,kkk 参考技术D 你的问题没说明白,怎么就算赢了呢???
python 实现21根火柴游戏
游戏规则::有21根火柴,人和计算机轮流拿,人先拿(输入拿几根)计算机后拿,每次至少1根最多4根,拿到最后一根火柴的算输,要确保计算机一定可以获胜
tips:保证计算机最后能拿到20,所以就不能取16~19之间,只能取到15,以此类推,计算机取的火柴数必须使总数到达5,10,15和20。
代码如下:
rint("规则:一次自能取1~4根火柴,最后取到21为输家")
#total代表取出的火柴总数
total = 0
while True:
person = int(input('人取多少根火柴: ')) #person表示人取出的火柴数
total += person
print(f'当前取出火柴总数为{total},还剩下{21 - total}')
if total < 5:
computer = 5 - total # computer表示计算机取出的火柴数
total += computer
print(f'计算机拿{computer}根')
print(f'当前取出火柴总数为{total},还剩下{21 - total}')
elif total < 10 :
computer = 10 - total
total += computer
print(f'计算机拿{computer}根')
print(f'当前取出火柴总数为{total},还剩下{21 - total}')
elif total < 15:
computer = 15 - total
total += computer
print(f'计算机拿{computer}根')
print(f'当前取出火柴总数为{total},还剩下{21 - total}')
elif total < 20 :
computer = 20 - total
total += computer
print(f'计算机拿{computer}根')
print(f'当前取出火柴总数为{total},还剩下{21 - total}')
else:
print("游戏结束")
break
结果如下:
以上是关于设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。的主要内容,如果未能解决你的问题,请参考以下文章