//1.电脑会生成一个随机数 2.猜数字#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>#include <windows.h>#define Number 100
void color(short x) //自定义函根据参数改变颜色 { if (x >= 0 && x <= 15)//参数在0-15的范围颜色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色 else//默认的颜色白色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);}void menu() //界面菜单函数{ color(0); system("cls"); color(16); printf("|--------猜数字游戏^o^/------|\n"); printf("|****************************|\n"); printf("|-------★1:开始游戏★-------|\n"); printf("|-------★0:退出游戏★-------|\n"); printf("|****************************|\n"); printf("|--------INPUT(1~100)--------|\n"); printf("\n");}//游戏具体实现功能int game(){ //1.生成随机数 //rand();功能随机生成数字 0~32767之间 int red = 0;//red负责接收rand的参数 int guess = 0;//猜数字初始值 red = rand()%100+1;//rand生成1-100数字。//这里解释一下为什么是1-100:而rand()%100表示取100以内的随机数,即取了随机数之后再对100取余。因而是0~99. //2.猜数字 while (1) { //计数功能,输入数字进行计次。 while (1) { static int i; i++; color(5); printf("|═══════════════════════|\n"); printf("|第%d次-->猜数字>(*^_^*):|\n",i); printf("|═══════════════════════|\n"); printf("---\n"); color(14); scanf("%d", &guess); printf("---\n"); if (guess == red) i = 0; break; } //一共三种情况 if (guess>red && guess<=Number) { color(9); printf(" ------\n"); printf("|猜大了|\n"); printf(" ------\n"); } else if (guess>Number) { printf("|═══════════════════════════|\n"); printf("|宁输入的数字大于游戏规定范围\n"); printf("|═══════════════════════════|\n"); } else if (guess<red) { color(9); printf(" ------\n"); printf("|猜小了|\n"); printf(" ------\n"); } else { color(11); printf("\n"); printf("|------------|\n"); printf("|恭喜你猜对了|\n"); printf("|------------|\n"); printf("休息5s再来吧(*^_^*)\n"); Sleep(5000);//睡眠5s break; } } return red;}int main(void){ int number = 0; //拿时间戳来设置随机数字的生成起始点time srand((unsigned)time(NULL));//srand();功能:生成随机数,要在rand()前调用 //srand函数在工程中调用一次即可 do { menu();//打印出菜单 color(12); printf("~~~~~~~~~~~~~~~~~~~~~\n"); printf("请选择是否登入游戏->:"); scanf("%d", &number); printf("\n~~~~~~~~~~~~~~~~~~~~~\n"); //switch用于多分支语句:在此程序中分支1和0,如果输入其它(数字)用default进行错误 switch (number) { case 0: printf("退出游戏\n"); break; case 1: game();//猜数字游戏 break; default: color(13); printf("|════════════════════|\n"); printf("|青柠重新输入ありがど|\n"); printf("|════════════════════|\n"); Sleep(4000); break; } } while (number);//至少进入循环一次! return 0;}
评论