标题:抢三十-程序?
只看楼主
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
 问题点数:0 回复次数:9 
抢三十-程序?

小时候玩过一个小游戏(从1开始轮流数数,二个人,每个人至多可以数1-3个数,谁先数到最后一个数30谁就嬴),想用C语言编写出来.但是写出来之后却出现问题?只输出前一次的数?希望哪位可以帮帮忙?谢谢!最后祝各位圣诞节快乐!!!!
#include<stdio.h>
#define Y 1
#define N 0
void xianshi(int i)
{
for(i=1;i<=30;i++)
{
printf("%2d\t",i);
if((i%10)==0)
printf("\n");
}
}
void youxi()
{
int j,m,yn,n,a[30],b[30];
for(j=1;j<=30;j++)
a[j-1]=j;
yn=Y;
while(yn)
{
printf("The game start:");
printf("please input 1-3 numbers:");
for(m=0;m<=30;m+4)
{
if(a[m]==scanf("%d",&b[m]))
for(n=m+1;n<=m+3;n++)
printf("%d\t%d\t%d",a[m+1],a[m+2],a[m+3]);
else if(a[m]==scanf("%d",&b[m])&&a[m+1]==scanf("%d",&b[m+1]))
for(n=m+2;n<=m+3;n++)
printf("%d\t%d",a[m+2],a[m+3]);
else if(a[m]==scanf("%d",&b[m])&&a[m+1]==scanf("%d",&b[m+1])&&a[m+2]==scanf("%d",&b[m+2]));
printf("%d",a[m+3]);
}
if(a[29]==scanf("%d",&b[29]))
printf("congratulations");
printf("another game yn=Y/N:");
if(getchar())
yn=Y;
else
yn=N;
}
}
int main()
{
int i;
printf("\t\t------------**************------------\n");
xianshi(30);
youxi();
getch();
return;
}

[此贴子已经被作者于2006-12-21 23:13:20编辑过]

搜索更多相关主题的帖子: 圣诞节 void quot int 
2006-12-21 23:12
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
得分:0 

没懂游戏规则.....


菜鸟~~请多指教~~
2006-12-21 23:20
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
得分:0 
    抢三十:(两个人进行,一个人开始,轮渡数数.每个人最多可以数3个数字.即1-3个数字?如:a数1,b可以数2,3或2,3,4)最后谁数到期30就算谁赢!

在不断的拼搏与进取中,定能创造一片天地!
2006-12-22 10:31
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
要想自己说30,则对方最多能说到29,既你又得抢到26,对方最大能说到25,你必须抢到23,依此类推.
自己 对方
30 29
26 25
22 21
18 17
14 13
10 9
6 5
2

所以说只要自己说到2,就可以胜利.也就说谁先开始,谁就能抢到30(假设两个人都足够聪明).


倚天照海花无数,流水高山心自知。
2006-12-22 10:48
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
得分:0 
没看明白游戏规则

2006-12-22 11:37
Arenz
Rank: 1
等 级:新手上路
帖 子:233
专家分:0
注 册:2006-11-21
得分:0 
我懂游戏规则.
但是程序是我说一个数系统说一个数吗?

我在学VB..
2006-12-22 12:51
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
得分:0 

懂规则了~~
帮你看看你的算法......


菜鸟~~请多指教~~
2006-12-22 14:06
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
得分:0 
以下是引用nuciewth在2006-12-22 10:48:18的发言:
要想自己说30,则对方最多能说到29,既你又得抢到26,对方最大能说到25,你必须抢到23,依此类推.
自己 对方
30 29
26 25
22 21
18 17
14 13
10 9
6 5
2

所以说只要自己说到2,就可以胜利.也就说谁先开始,谁就能抢到30(假设两个人都足够聪明).

这个就很不错啊~~

可以考虑用递归呀.......
你代码一大堆~~~
看不下去.......


菜鸟~~请多指教~~
2006-12-22 14:11
guochen3
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-1-16
得分:0 
對這個程序來說:假设两个人都足够聪明,這個程序才是你的結果;如果不夠聰明可能輸出的會多幾次.

雖然我很菜,但我永不言放棄。
2006-12-22 16:24
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
得分:0 
我的意思不是写哪个赢,只是从第一个开始,两个人遵循一个原则,就是两个人所报的数的个数加起来等于4.即:我报1,2,另一个就报3,4.报1,对方就报2,3,4
上面的出错了,写得乱七八糟!好多的错误?

在不断的拼搏与进取中,定能创造一片天地!
2006-12-22 22:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-111189-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.138599 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved