猜数字游戏的实现

一.序论

刚学完c语言的数组,控制结构,函数。所以准备模拟实现这个小游戏,来提高自己的学习兴趣。

二.游戏规则

输入一个100以内的数字,进行猜测,每次猜测都会缩减范围直到猜对为止。

三.项目的实现

1.菜单函数

采用的是最原始的方式,也是最土的方法,哈哈哈

void menu()

{

printf("**********************\n");

printf("****** 1 . 开始 ****\n");

printf("****** 0 . 结束 ****\n");

printf("**********************\n");

}

2.游戏函数的实现

最重要的是要系统帮我们随机产生一个随机数

所以这里我们要引用rand()这个函数来产生一个随机数字大小为0~RAND_MAX,且RAND_MAX为头文件<stdlib.h>里的一个常量所以要包含头文件,用srand()来改变rand()的种子(),并且用time()函数以秒计算的当是的时间值,当作srand()函数的种子。time()能提供代表时间的字符串,所以用NULL作为time()的参数,不过要使用<time.h>这个头文件

所以随机数的代码可以写为     ---   srand((unsigned int)time(NULL))      -----

                                                    ---              int ret = rand()                          ----

但是我们要的是一百以内的数字,所以我们这个时候就要用到除余的运算法则产生一个100以内的随机数字代码:int ret = rand()%100+1

然后接游戏的实现

void game()

{

        int guess = 0;

        int ret = rand()%100+1;//生成随机数

        int count = 1;

        while(count <= 10)//循环设置玩一次只能猜几次

        {

                printf("请输入要猜的数字\n");

                 scanf("%d",&guess);      

                if(guess < ret)

                {

                        printf("猜小了\n");

                        count++ ;        

                }

                else if(guess > ret)

               {

                        printf("猜大了\n");

                        count++;

                }        

                else

                {        

                        printf("恭喜你,猜对了,数字是%d\n",ret);

                        printf("你猜了%d次\n",count);

                break;

                }

        }

}

3.游戏框架的实现

int main()

{

        int input = 0;

        srand((unsigned int)time(NULL));//随机改变的种子        

        do

        {

                menu();

                printf("请选择:");

                scanf("%d",&input);

                switch(input)

                {

                        case 1:

                        game();//进入游戏        

                        break;

                        case 0:

                        printf("退出游戏\n");

                        break;

                        default:

                        printf("选择错误,请重新选择\n");                

                        break;

                }

         }

         while(input);//输入0就代表假,即不进入循环

return 0;

}

四.游戏总代码

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void menu()

{

printf("**********************\n");

printf("****** 1 . 开始 ****\n");

printf("****** 0 . 结束 ****\n");

printf("**********************\n");

}

void game()

{

int guess = 0;

int ret = rand()%100+1;

int count = 1;

while(count <= 10)

{

printf("请输入要猜的数字\n");

scanf("%d",&guess);

if(guess < ret)

{

printf("猜小了\n");

count++ ;

}

else if(guess > ret)

{

printf("猜大了\n");

count++;

}

else

{

printf("恭喜你,猜对了,数字是%d\n",ret);

printf("你猜了%d次\n",count);

break;//直接跳出循环

}

}

}

int main()

{

int input = 0;

srand((unsigned int)time(NULL));//随机改变的种子

do

{

menu();

printf("请选择:");

scanf("%d",&input);

switch(input)

{

case 1:

game();//进入游戏

break;

case 0:

printf("退出游戏\n");

break;

default:

printf("选择错误,请重新选择\n");

break;

}

}

while(input);//输入0就代表假,即不进入循环

return 0;

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值