基于C语言的猜数小游戏(附源码)_*往事随风的博客*
作者:互联网
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
基于C语言实现的一个简易的猜数小游戏,目的在于熟悉一下C语言中的随机数函数、方法的调用以及模块化代码的应用。
一、游戏规则
提示用户输入一个整数(这里以1-100为例),如果用户输入的数比系统随机产生的数大,则提示用户输入的数值太大,重新输入,反之则提示用户输入的数值太小,重新输入,直到用户输入的数值和系统产生的数值一样,游戏结束。
二、基本思路
首先通过随机数函数来随机产生一个整数(这里以1-100之间的整数为例),然后将产生的随机数与用户输入的数进行比对,进而来判断用户输入的是否符合游戏的规则。
三、代码分析
1.打印游戏菜单
这一步就是单纯的printf,没有什么难度,注意一下排版就行。
示例代码如下:
/*游戏菜单*/
void menu()
{
printf("\t\t\t\t【趣味猜数游戏】\n");
printf("\t\t\t1.开始游戏\t\t2.退出游戏\n");
printf("------------------------------------------------------------------------------\n");
}
2.实现功能交互
这一块的话主要是对switch的应用。
示例代码如下:
/*功能交互*/
void interactive()
{
printf("请输入您的选择:");
scanf("%d",&choice);
switch(choice){
case 1:
game();break;
case 2:
out();break;
default:printf("请在1-2中选择\n");break;
}
}
3.产生游戏数据
这里的游戏数据对应的是系统随机产生的随机数,用来和用户输入的数进行比较,保证游戏的正常进行。此处主要应用到了随机数函数。
示例代码如下:
/*产生游戏数据*/
void date()
{
srand((time(NULL)));//随机数种子
num_s = rand()%101;//随机产生100以内的随机数
}
4.运行游戏
前期工作准备好以后,我们就可以开始运行游戏,
这一块主要是对游戏规则的逻辑化理解的应用,相对来说比较简单,注意好逻辑关系就可以了。
示例代码如下:
/*开始游戏*/
void game()
{
date();
printf("请输入一个数:");
scanf("%d",&num);
num= juge(num);//将判断后的num重新赋值给num
while(1){
if(num==num_s){
printf("恭喜,猜中了!\n");
system("pause");
system("cls");break;
}else if(num-num_s>0){
printf("输入的数字太大了!\n");
printf("再试一次吧:");
scanf("%d",&num);
}else if(num-num_s<0){
printf("输入的数字太小了!\n");
printf("再试一次吧:");
scanf("%d",&num);
}
}
}
四、运行结果
五、整体代码
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
/*定义全局变量*/
int choice = 0;//存储功能选择数据
int num = 0;//存储用户输入数据
int num_s = 0;//存储游戏随机产生的数据
/*函数声明*/
void menu();//游戏菜单
void interactive();//功能交互
void date();//产生游戏数据
void game();//开始游戏
void out();//退出游戏
int juge(int num);//判断用户输入是否合法
/*测试函数*/
int main()
{
system("title 趣味猜数游戏");
system("color f5");
while(1){
menu();
interactive();
}
return 0;
}
/*游戏菜单*/
void menu()
{
printf("\t\t\t\t【趣味猜数游戏】\n");
printf("\t\t\t1.开始游戏\t\t2.退出游戏\n");
printf("------------------------------------------------------------------------------\n");
}
/*功能交互*/
void interactive()
{
printf("请输入您的选择:");
scanf("%d",&choice);
switch(choice){
case 1:
game();break;
case 2:
out();break;
default:printf("请在1-2中选择\n");break;
}
}
/*产生游戏数据*/
void date()
{
srand((time(NULL)));//随机数种子
num_s = rand()%101;//随机产生100以内的随机数
}
/*判断用户输入的数据是否合法*/
int juge(int num)
{
while(1){
if(num>0&&num<=100){
return num;break;
}else if(num>100||num<=0){
printf("(请在1-100以内的数字进行选择)\n");
printf("请重新输入:");
scanf("%d",&num);
}else{
printf("你的输入不合法,请重新输入:");
scanf("%d",&num);
}
}
}
/*开始游戏*/
void game()
{
date();
printf("请输入一个数:");
scanf("%d",&num);
num= juge(num);//将判断后的num重新赋值给num
while(1){
if(num==num_s){
printf("恭喜,猜中了!\n");
system("pause");
system("cls");break;
}else if(num-num_s>0){
printf("输入的数字太大了!\n");
printf("再试一次吧:");
scanf("%d",&num);
}else if(num-num_s<0){
printf("输入的数字太小了!\n");
printf("再试一次吧:");
scanf("%d",&num);
}
}
}
/*退出游戏*/
void out()
{
int i;
printf("三秒后将退出游戏:");
for(i=0;i<3;i++){
printf("·");
Sleep(1000);
}
printf("\n");
printf("欢迎下次再来玩!\n");
exit(0);
}
六、总结
本篇主要是对c语言的基础知识的练习,主要回顾了C语言中的随机数函数,以及函数的调用。对于新手,掌握代码中的逻辑至关重要。
标签:num,游戏,猜数,void,C语言,源码,printf,scanf,输入 来源: https://blog.csdn.net/m0_47214030/article/details/115702092