简单的猜数游戏

大步骤:

1打印一个菜单并可以提供选择

2电脑生成随机数字(0到100),玩家通过输入来猜测

3猜完后,由电脑输出猜数的正确性,若为正确则表示恭喜;若为错误则提示猜大还是猜小,并继续猜,直到猜对为止

第一步:

1.一运行程序就需要先打印菜单。写一个menu函数封装在main函数中,菜单中1代表玩游戏,0代表退出游戏

2.菜单打印成后需要玩家进行选择玩还是不玩,选择1进入game函数;选择0则程序运行结束;如果选择玩家选择非0或非1,则提示玩家重新选择;这里采用switch语句和break语句。因为每次游戏结束后不用重新运行程序就可以继续玩,所以要采用循环语句,又一上来就能玩要采用 do while循环,最终应该是do while循环套switch语句。do while语句中while(表达式)为input,输入1或其他数字为真进入循环;输入0为假,跳出循环

这一部分的代码如下:

void menu()
{
    printf("************************\n");
	printf("******** 1. play *******\n");
	printf("******** 0. exit *******\n");
	printf("************************\n");
}

#include<stdio.h>
main()
{  
   int input = 0;
   
   do
   {  
      menu();
      printf("请选择:>");
      scanf("%d", &input);
      switch(input)
      {
         case 1 :
                  game();
                  break;
         case 0 :
                  printf("退出游戏\n");
                  break;
         default:
                  printf("选择错误,请重新选择\n");
                  break;
      }
   }while(input);
   
   return 0;
}
                  


第二步和第三步:

game函数

1.一上来电脑先生成随机数放在ret变量中,用rand函数(返回0 ~32767之间的数字)来生成随机数并用srand设置随机数生成器,写成srand((unsigned int)time(NULL))放在main函数中 (这里不太懂,就不解释了,反正就是用来生成随机数的),rand() % 100 +1  (%100的余数是0~99,然后+1,范围就是1~100)来设置随机数生成范围

2.电脑提示猜数字,玩家输入数字放到guess变量中,比较guess和ret的大小, guess>ret则提示玩家猜小了,玩家继续猜直到猜对为止;guess<ret则提示玩家猜大了,玩家继续猜直到猜对为止;guess = ret则表示恭喜进入下一次游戏。这里用if else 和else if语句比较guess和ret的大小,猜对为止所以要写成while循环,当猜对数字直接break跳出循环。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game()
{
    int ret = rand() % 100 + 1;
 
    int guess = 0;
    while(1)
  {
     printf("请猜数字:");
     scanf("%d", &guess);
     if ( guess > ret)
     {
         printf("猜大了\n");
     }
     else if ( guess < ret)
     {
         printf("猜小了\n");
     }
     else 
     {
         printf("恭喜你,猜对了\n");
         break;
     }
     
   }
}

void menu()
{
    printf("************************\n");
	printf("******** 1. play *******\n");
	printf("******** 0. exit *******\n");
	printf("************************\n");
}

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);
   
   return 0;
}
                  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值