猜數字游戲
范圍:1-100
程式語言:C語言
作者水平很有限,如果發現錯誤,一定要及時告知作者哦!感謝感謝!
設計目標
猜數游戲 1-100
1. 電腦隨機生成一個區間之間的數字,
2. 玩家猜數字
如果猜對了,就提示:猜對了,
如果猜錯了,就提示:猜大了,或者猜小了,直到猜正確,
3. 能夠反復玩,
4.能夠顯示猜對數字所需次數,
設計思路
1.設計一個簡單的選單,輸入1開始游戲,輸入0退出游戲,輸入其他重新輸入 ,
2.使用do...while回圈使程式能夠反復執行,
3.使用switch處理用戶的選單選擇,
4.使用時間戳time()(需要引入time.h)和srand()生成隨機種子,rand()根據種子生成亂數(需要引入stdlib.h),
5.為保證數字范圍在1-100,對生成的亂數稍微處理后(或不處理)取100的模并加1,
6.根據用戶輸入提示用戶猜大了還是猜小了,并統計用戶猜對數字所花的次數,
程式原始碼
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//猜數游戲
//1. 電腦隨機生成一個區間之間的數字
//2. 玩家猜數字
// 如果猜對了,就提示:猜對了
// 如果猜錯了,就提示:猜大了,或者猜小了,直到猜正確
//3. 反復玩
void meau();//選單
void game();//猜數
//時間戳 time.h unsigned int time(&p)
//亂數 stdlib.h rand() 根據亂數種子生成亂數
// srand(long long int) 亂數種子設定
//因為時間戳是不斷變化的,所以可以以時間戳設定亂數種子
//但是不能頻繁呼叫strand(),因為頻繁呼叫生成的亂數并不是很隨機
int main()
{
int input = 0;
srand((unsigned int)time(NULL));//亂數種子
do
{
meau();
printf("是否開始猜數字游戲(數字范圍為1-100),請選擇:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戲!\n");
break;
default:
printf("無效輸入,請輸入數字0或1");
break;
}
} while (input);
return 0;
}
void meau()
{
printf("*********************************\n");
printf("*********************************\n");
printf("***********1 開始游戲************\n");
printf("***********0 退出游戲************\n");
printf("*********************************\n");
printf("*********************************\n");
}
void game()
{
int guess = 0;//用戶猜數資料
int cnt = 1;//統計用戶猜中數字所花次數
int ret = 0;//亂數
ret = rand() % 100 + 1;//保證生成的數在1-100以內
//printf("%d\n", ret);//開掛
while (1)
{
printf("請開動你的小腦瓜,猜一個數字吧!->猜");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了!\n");
cnt++;
}
else if (guess > ret)
{
printf("猜大了!\n");
cnt++;
}
else
{
if (cnt == 1)
printf("太厲害了!你猜%d次就猜中了!這就是傳說中的一發入魂嗎!\n",cnt);
else if (cnt >1 && cnt <=3)
printf("哎呦!不錯哦!才猜%d次就猜中了!\n", cnt);
else if(cnt>3 && cnt<=10)
printf("還可以,一般般!你猜了%d次猜中了!\n", cnt);
else
printf("嘖嘖嘖,你太拉了!猜了%d次才猜中!太一般了!\n", cnt);
break;
}
}
}
程式運行截圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289699.html
標籤:其他
