目录
前言:
猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。
求解目标:
求解猜数字游戏的策略通常有两个目标:一是保证在猜测次数限制下赢得游戏,二是使用尽量少的猜测次数。第一个目标追求的是最坏情况下的猜测次数最少,第二个目标追求的是平均情况下猜测次数最少。对于某些数码和数位的规则组合,这两个目标不能同时实现。
代码实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define Max_Size 7
void menu() {
printf("************************\n");
printf("******* 1、PLAY ******\n");
printf("******* 0、EXIT ******\n");
printf("************************\n");
}
//游戏主体
void game() {
int ret = rand() % 100 + 1;
int num = 0;
int count = 0;
printf("请输入你猜的数字:\n");
while (1) {
scanf("%d", &num);
count++;
if (num > ret) {
printf("猜大了");
}
else if (num < ret) {
printf("猜小了");
}
else {
printf("恭喜你,猜对了!!!\n");
break;
}
if (count >= Max_Size) {
printf("超出了游戏次数,游戏结束!!!\n");
break;
}
printf(",请重新猜:\n");
}
}
int main() {
srand((unsigned int)time(NULL));
int input = 0;
do {
printf("请选择菜单:\n");
scanf("%d", &input);
switch (input) {
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("非法输入,请重新选择:\n");
break;
}
} while (input);
return 0;
}
总结:
rand函数是专门用来生成随机数的。
rand函数返回的是0~RAND_MAX(32767)之间的一个随机数。
srand函数在使用之前要使用一个srand函数来设置随机数的生成器。
srand函数在程序中只要调用一次就可以了,不需要频繁调用。
C语言中,time函数会返回时间戳。