提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
基于C语言实现的一个简易的猜数小游戏,目的在于熟悉一下C语言中的随机数函数、方法的调用以及模块化代码的应用。
提示用户输入一个整数(这里以1-100为例),如果用户输入的数比系统随机产生的数大,则提示用户输入的数值太大,重新输入,反之则提示用户输入的数值太小,重新输入,直到用户输入的数值和系统产生的数值一样,游戏结束。
首先通过随机数函数来随机产生一个整数(这里以1-100之间的整数为例),然后将产生的随机数与用户输入的数进行比对,进而来判断用户输入的是否符合游戏的规则。
这一步就是单纯的printf,没有什么难度,注意一下排版就行。
示例代码如下:
/*游戏菜单*/ void menu() { printf("\t\t\t\t【趣味猜数游戏】\n"); printf("\t\t\t1.开始游戏\t\t2.退出游戏\n"); printf("------------------------------------------------------------------------------\n"); }
这一块的话主要是对switch的应用。
示例代码如下:
/*功能交互*/ 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以内的随机数 }
前期工作准备好以后,我们就可以开始运行游戏,
这一块主要是对游戏规则的逻辑化理解的应用,相对来说比较简单,注意好逻辑关系就可以了。
示例代码如下:
/*开始游戏*/ 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语言中的随机数函数,以及函数的调用。对于新手,掌握代码中的逻辑至关重要。