c语言编程抢30,C语言编写抢三十游戏——开发笔记(总结).doc

C语言编写抢三十游戏——开发笔记(总结)

课程设计题目:抢三十游戏

学号:XXX 姓名:XXX

组员:XXX(组长)、XXX、XXX、XXX、XXX、XXX

设计时间:2009-12-19

相关背景:

我们小组本已决定要做抢三十游戏,即使做不出来也可以换题,但是想不到老师居然叫我们周五下课前交上选题,霎时间我们慌了,于是我们临时开了个小会,讨论的结果是:一致通过选择做老师布置的第一题,因为这样比较保险(我们小组好几个人都已经做完这题).不过在我们提交选题时,老师劝我们挑战一下难度,所以我们最终还是选择了”抢三十游戏”!

鉴于这次的选题在分工合作上比较困难,因为整个过程都是紧密联系的,所以在和小组成员讨论之后,我们决定:每人都做一份,做好之后我们再把代码拿出来一起研读,并选出最好的代码作为这次课程设计的答卷.另外,我额外要求每个成员在做完之后做一条附加题,附加题可以在选题中选,也可以自选,目的是全面发展,更加熟练各种操作.

程序展示:

核心代码:

//玩家算法;

int input(int i)

{

int count;

do{

printf("\n 请输入要走的步数:");

scanf("%d",&count);

if(count<1||count>2||i+count>30)

{

fflush(stdin);

printf("\n 输入错误,请重新输入!\n");

}

else

printf("\n 此时已经走至:%d\n",i+count);

}while(count<1||count>2||i+count>30);

return i+count; //返回总共走的步数;

}

//电脑算法;

int pcinput(int t)

{

int step;

printf("\n 此时已经走至:");

if(t%3==2)

{

t++;

printf("%d\n",t);

//如求余等于2,那么每次走1步

}

else if(t%3==1)

{

t+=2;

printf("%d\n",t);

//如求余等于1,那么每次走2步

}

else

{

step=1+rand()%2;

//随机选择1或2

t=step+t;

printf("%d\n",t);

}

return t;

}

报告内容:

第一部分:游戏规则

两个人轮流报数,第一个人从1开始,按顺序报数,他可以只报1,也可以报1、2.第二个人接着第一个人报的数再报下去,但最多也只能报两个数,而且不能一个数都不报.例如:第一个人报的是1,第二个人可报2,也可报2、3;若第一个人报了1、2,则第二个人可报3,也可报3、4.接下来仍由第一个人接着报,如此轮流下去,谁先报到30谁胜.

第二部分:游戏要求

01.随机选择电脑先走第一步或者用户先走第一步;

02.我们要做的是尽可能让电脑赢(只要用户有失误,那么必须让电脑赢)

03.设计算法,每走一步必须输出相应的数字,抢到三十则终止

第三部分:我在设计过程遇到的问题

01.为什么rand()函数不可以产生随机数?

解决:用rand()函数产生的是伪随机函数,在没有初始化之前产生的结果都是1.所以要用srand()函数进行初始化.

02.怎么让电脑尽可能会赢?

解决:这是这题的关键,我在草稿纸上乱画,总共花了将近3小时才总结出了其中的规律.

已走步数%3==2,则每次走1步;

已走步数%3==1,则每次走2步;

否则,随机决定走一步或者两步.

第四部分:自己的感想

实践是检验真理的唯一标准!只有在实际的操作中才可以发现自己的盲点,及时补足平时的不足。在实际的编写过程中,往往会遇到未知的错误,然而这一个个的错误,却燃起了我对编程那狂热的激情,愈战愈勇。因为我喜欢征服而不是屈服!

另外,团队合作不仅仅体现在分工上,更重要的是分工之余的互助互进.要知道独学无友孤陋而寡闻只有互帮互学才能共同进步/questionhtml?si=1 rand()函数用法

查看原文内容:

/%C0%E1%BA%DB_%B7%C9/blog/item/90b23b51281b8a718435241c.html

本程序源码下载: 精华编程专区 目录下载….