二话不说,先上代码
#include<iostream>
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
void begin(){
system("color 0C");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" =======================================\n");
printf(" = --->猜数<--- =\n");
printf(" = =\n");
printf(" = 系统随机生成一个数 =\n");
printf(" = 输入要猜的数,系统会给予提示 =\n");
printf(" = =\n");
printf(" = 闪屏纯属正常 =\n");
printf(" = =\n");
printf(" = 任意键开始 =\n");
printf(" = ----Carl胡 =\n");
printf(" =======================================\n");
getch();
return ;
}
int setup(int &m){
system("cls");
system("color 3c");
system("mode con cols=21 lines=21");
cout<<"请进行初始化设置:数字区间(难度);\n0.1-99(入门)\n1.1-9999(简单)\n2.1-999999(中等)\n3.1-99999999(高级)\n";
cin>>m;
switch(m){
case 0:m=99;break;
case 1:m=9999;break;
case 2:m=999999;break;
case 3:m=99999999;break;
default:cout<<"错误!\n";Sleep(700);m=0;setup(m);
}
return m;
}
int guess(int x){
int g;
int k=0;
do{
system("cls");
cin>>g;k++;
if(g==-1){
return k;
}
if(g==-10){
return 0;
}
if(g>x){
cout<<"biger\nk="<<k<<"\n";
getch();
continue;
}
if(g<x){
cout<<"smaller\nk="<<k<<"\n";;
getch();
continue;
}
}while(g!=x);
return k;
}
void win(int k){
system("cls");
system("color 0C");
system("mode con cols=80 lines=25");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" ===========================================\n");
printf(" \n");
printf(" You're win! \n");
printf(" k= %d \n",k);
printf(" \n");
printf(" ----Carl胡 \n");
printf(" ===========================================\n");
getch();
}
int main(){
begin();
int m;
m=setup(m);
system("mode con cols=80 lines=25");
srand((int)time(0));
int x=rand()%(m-1+1)+1;
/*cout<<x;
Sleep(1500);*/
int b=guess(x);
if(b==0){
return 0;
}
win(b);
return 0;
}
在复制之前, 让我们看一看其playing原理。
先是其开始界面:

︿
| 函数引用

︿
| 函数
然后二是设置界面:

设置随机数生成区间(m):

返回区间,进行下一步——生成随机数;
三是其生成随机数(即答案),
如下:

这是模板,即生成[m,n]之间的随机数num;
srand((int)time(0));
int num=rand()%(m-n+1)+n;
头文件如下:conio.h
四就shi开彩猜啦!

︿
|引用函数;
int guess(int x){
int g;
int k=0;
do{
system("cls");
cin>>g;k++;
/*if(g==-1){
return k;
}*/
if(g==-10){
return 0;
}
if(g>x){
cout<<"biger\nk="<<k<<"\n";
getch();
continue;
}
if(g<x){
cout<<"smaller\nk="<<k<<"\n";;
getch();
continue;
}
}while(g!=x);
return k;
}
︿
| 猜数函数;
输入猜的数,用if语句进行判断——大了(biger)或小了(smaller)且输出;
如果猜对了——恭喜你!进行下一步,结束/胜利 界面!
(注:标斜杠注释的代码段为后门,后文会介绍)
五之You’re win

k为统计步数;
六FOR小小彩蛋
THIS——>

黑框內即前文所提之后门挂;
即在猜数时输入-1可直接胜利。
——————————END———————————
这篇博客介绍了一个简单的C++猜数游戏的实现过程。游戏首先展示开始和设置界面,用户可以设置随机数的生成区间。接着,程序生成一个随机数作为答案。玩家通过输入猜测的数字,程序会提示猜的数字是偏大还是偏小。当猜对数字后,游戏显示胜利界面,并统计了猜测的步数。此外,作者还设置了一个小彩蛋:在猜数过程中输入-1可以直接获胜。
6407





