自己写的最简陋版
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
//电脑随机生成一个数字,玩家猜测,电脑给出猜大了还是小了,直到猜中
//游戏运行形成菜单按1,选择start,按2选择exit
int answer = rand()%100;
int guess = 0; int flag = 1;
while(flag){
printf("猜一个数字:\n");
scanf("%d",&guess);
if (answer > guess) {
printf("猜小了,请重新猜!:\n");
}
else if (answer < guess) {
printf("猜大了,请重新猜!:\n");
}
else {
printf("猜对啦!\n");
//break;
flag = 0;
}
}
return 0;
}
修改一次后
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void menu() {
printf("*********************************\n");
printf("***** 1,start 0,exit ******\n");
printf("*********************************\n");
}
int main() {
//电脑随机生成一个数字,玩家猜测,电脑给出猜大了还是小了,直到猜中
//游戏运行形成菜单按1,选择start,按2选择exit
int cho = 0;
int answer = rand() % 100;
int guess = 0; int flag = 1;
menu();
scanf("%d",&cho);
switch (cho) {
case 0:
printf("退出游戏"); break;
case 1:
while (flag) {
printf("猜一个数字:\n");
scanf("%d", &guess);
if (answer > guess) {
printf("猜小了,请重新猜!:\n");
}
else if (answer < guess) {
printf("猜大了,请重新猜!:\n");
}
else {
printf("猜对啦!\n");
break;
}
}break;
default:
printf("输入错误,请重新选择!");
}
return 0;
}
第二次修改后
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void menu() {
printf("*********************************\n");
printf("***** 1,start 0,exit ******\n");
printf("*********************************\n");
}
void game() {
int guess = 0; int flag = 1; int answer = rand() % 100;
while (flag) {
printf("猜一个数字:\n");
scanf("%d", &guess);
if (answer > guess) {
printf("猜小了,请重新猜!:\n");
}
else if (answer < guess) {
printf("猜大了,请重新猜!:\n");
}
else {
printf("猜对啦!\n");
break;
}
}
}
int main() {
//电脑随机生成一个数字,玩家猜测,电脑给出猜大了还是小了,直到猜中
//游戏运行形成菜单按1,选择start,按2选择exit
int cho = 0;
menu();
scanf("%d",&cho);
switch (cho) {
case 0:
printf("退出游戏"); break;
case 1:
game();
break;
default:
printf("输入错误,请重新选择!");
}
return 0;
}
第三次修改,加入时间戳形成的随机数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
//#include<stdlib.h>
void menu() {
printf("*********************************\n");
printf("***** 1,start 0,exit ******\n");
printf("*********************************\n");
}
void game() {
int guess = 0; int flag = 1;
int answer = rand()%100+1;//生成1-100之间的一个随机数
while (flag) {
printf("猜一个数字:\n");
scanf("%d", &guess);
if (answer > guess) {
printf("猜小了,请重新猜!:\n");
}
else if (answer < guess) {
printf("猜大了,请重新猜!:\n");
}
else {
printf("猜对啦!\n");
break;
}
}
}
int main() {
//电脑随机生成一个数字,玩家猜测,电脑给出猜大了还是小了,直到猜中
//游戏运行形成菜单按1,选择start,按2选择exit
//利用时间戳来生成一个1-100的随机数
srand((unsigned int)time(NULL));
int cho = 0;
menu();
scanf("%d",&cho);
switch (cho) {
case 0:
printf("退出游戏"); break;
case 1:
game();
break;
default:
printf("输入错误,请重新选择!");
}
return 0;
}
此次修改后依旧存在一个问题,进行一局游戏后,程序会自动退出,怎么解决玩一局后继续
反复进行下局游戏呢?通过看老师的代码,他用do while 循环能很好的解决这个问题。
以下是老师用do while实现的此游戏的思想
最佳gamecode
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
void menu() {
printf("*********************************\n");
printf("***** 1,start 0,exit ******\n");
printf("*********************************\n");
}
void game() {
int guess = 0; int flag = 1;
int answer = rand()%100+1;//生成1-100之间的一个随机数
while (flag) {
printf("猜一个数字:\n");
scanf("%d", &guess);
if (answer > guess) {
printf("猜小了,请重新猜!:\n");
}
else if (answer < guess) {
printf("猜大了,请重新猜!:\n");
}
else {
printf("猜对啦!\n");
break;
}
}
}
int main() {
//电脑随机生成一个数字,玩家猜测,电脑给出猜大了还是小了,直到猜中
//游戏运行形成菜单按1,选择start,按2选择exit
//利用时间戳来生成一个1-100的随机数
srand((unsigned int)time(NULL));
int cho = 0;
do {
menu();
scanf("%d", &cho);
switch (cho) {
case 0:
printf("退出游戏");
break;
case 1:
game();
break;
default:
printf("输入错误,请重新选择!");
}
} while (cho);
return 0;
}