当前位置:网站首页>3. Number guessing game
3. Number guessing game
2022-07-06 13:25:00 【It's Wang Jiujiu】
Guess the number game : Random generation 1~100 Number of numbers , Let users guess . When the guessed number is larger than the random number , Tips “ Guess the ”; When only the number of hours than random , Tips “ Guess a little ”; The number guessed is the same as the random number , Tips “ Guessed it ”.
1. The overall framework
First , Start with a menu , Print out options in the menu bar :1.paly、0.exit.
then , Player input options , When the input 1 when , Start the game ; Input 0 when , End the game ; Go out for other hours , Re input . And set the game to be playable , After playing once , You can continue to play .
#include<stdio.h>
void menu()
{
printf("******************\n");
printf("***** 1.paly *****\n");
printf("***** 0.exit *****\n");
printf("******************\n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));// use srand modification rand
do
{
menu();
printf(" Please select (1/0):>");
scanf("%d", &input);
switch (input)
{
case 0:
printf(" Quit the game \n");
break;
case 1:
printf(" Start the game , Please guess the number (1~100)\n");
game();// game
break;
default:
printf(" Input error , Please re-enter \n");
}
} while (input);
return 0;
}2. Game part
When the overall framework is written , Run the test . Test success , Start writing the game part game() Code .
The design of the game part is mainly : The system generates a number —— Players enter —— Judge —— Wrong guess. —— Tips —— Re input —— Judge —— Guessed it ( Or the number of times is exhausted )
Because the whole process needs constant input 、 Judge , So you need to use while loop .( Be careful : The generated random number part cannot be put into while In circulation , Otherwise, every cycle , Will generate new random numbers )
void game()
{
int num = rand() % 100 + 1;// Generate 1~100 The random number
int guess = 0;
int count = 6;
while (count--)//6 Second chance ; After ++, Use it first and then ++
{
printf(" Please enter :>\n");
scanf("%d", &guess);
if (guess > num)
{
printf(" Guess the \n");
}
else if (guess < num)
{
printf(" Guess a little \n");
}
else
{
printf(" Guessed it \n");
Sleep(500);// Stop running 500 millisecond
system("cls");// Clear the screen .......
break;
}
}
printf(" I'm sorry , The opportunity has run out \n");
Sleep(500);// Stop running 500 millisecond
system("cls");// Clear the screen
}(1) When using rand() Function when creating random values , You will find that the random value is the same every time , utilize MSDN, The query shows that :


At this time, you need to use srand Decorate it rand Function of , Use time time, To generate a random number .
srand((unsigned int)time(NULL)), here (unsigned int) take time Casts the return value of , Convert to unsigned integer , And then to time Pass a null pointer (NULL) that will do . Use rand Need to include header file <stdlib.h>, Use time Need to include <time.h>.
(2)int num = rand() % 100 + 1, When random numbers %100 when , Its scope is 0~99, So we need to +1.
(3)while (count--), Specified here count Second chance , After -- It means to use , Again --, When count=0 End cycle at .
(4)sleep(a) To stop running a millisecond ,system("cls") To clear the screen , Need to include header file <windows.h>.
The overall code is as follows :
// Guess the number game
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
void menu()
{
printf("******************\n");
printf("***** 1.paly *****\n");
printf("***** 0.exit *****\n");
printf("******************\n");
}
void game()
{
int num = rand() % 100 + 1;// Generate 1~100 The random number
int guess = 0;
int count = 6;
while (count--)//6 Second chance ; After ++, Use it first and then ++
{
printf(" Please enter :>\n");
scanf("%d", &guess);
if (guess > num)
{
printf(" Guess the \n");
}
else if (guess < num)
{
printf(" Guess a little \n");
}
else
{
printf(" Guessed it \n");
Sleep(500);// Stop running 500 millisecond
system("cls");// Clear the screen .......
break;
}
}
printf(" I'm sorry , The opportunity has run out \n");
Sleep(500);// Stop running 500 millisecond
system("cls");// Clear the screen
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));// use srand modification rand
do
{
menu();
printf(" Please select (1/0):>");
scanf("%d", &input);
switch (input)
{
case 0:
printf(" Quit the game \n");
break;
case 1:
printf(" Start the game , Please guess the number (1~100)\n");
game();// game
break;
default:
printf(" Input error , Please re-enter \n");
}
} while (input);
return 0;
}
If you want to send the game we made to your classmates to try , take VS in debug Change to release, Test and save , Go to the place where the project is saved release file .

X86 by 32 position , It is recommended to save X64, take X64 Sending it to students can work normally .

Click on release—— Will be one of the exe Send the documents to the students .

边栏推荐
- TYUT太原理工大学2022数据库大题之E-R图转关系模式
- View UI Plus 发布 1.3.0 版本,新增 Space、$ImagePreview 组件
- 162. Find peak - binary search
- Record: solution of 404 error of servlet accessing database in dynamic web project
- 121 distributed interview questions and answers
- 抽象类和接口
- 阿里云一面:并发场景下的底层细节 - 伪共享问题
- TYUT太原理工大学2022软工导论考试题型大纲
- The overseas sales of Xiaomi mobile phones are nearly 140million, which may explain why Xiaomi ov doesn't need Hongmeng
- MySQL Database Constraints
猜你喜欢

西安电子科技大学22学年上学期《射频电路基础》试题及答案

Data manipulation language (DML)

MySQL 30000 word essence summary + 100 interview questions, hanging the interviewer is more than enough (Collection Series

几道高频的JVM面试题

Design a key value cache to save the results of the most recent Web server queries

如何保障 MySQL 和 Redis 的数据一致性?

魏牌:产品叫好声一片,但为何销量还是受挫

TYUT太原理工大学2022数据库大题之数据库操作

Alibaba cloud microservices (III) sentinel open source flow control fuse degradation component

Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
随机推荐
面试必备:聊聊分布式锁的多种实现!
9.指针(上)
更改VS主题及设置背景图片
IPv6 experiment
3.C语言用代数余子式计算行列式
【快趁你舍友打游戏,来看道题吧】
Introduction pointer notes
系统设计学习(二)Design a key-value cache to save the results of the most recent web server queries
2.C语言矩阵乘法
Tyut Taiyuan University of technology 2022 introduction to software engineering examination question outline
西安电子科技大学22学年上学期《信号与系统》试题及答案
继承和多态(下)
系统设计学习(三)Design Amazon‘s sales rank by category feature
Solution: warning:tensorflow:gradients do not exist for variables ['deny_1/kernel:0', 'deny_1/bias:0',
Alibaba cloud microservices (I) service registry Nacos, rest template and feign client
Data manipulation language (DML)
Record: Navicat premium can't connect to MySQL for the first time
Inheritance and polymorphism (I)
View UI Plus 发布 1.3.1 版本,增强 TypeScript 使用体验
View UI Plus 发布 1.2.0 版本,新增 Image、Skeleton、Typography组件