C語言實現(xiàn)簡單猜數(shù)字小游戲
本文實例為大家分享了C語言實現(xiàn)簡單猜數(shù)字小游戲的具體代碼,供大家參考,具體內(nèi)容如下
猜數(shù)字游戲是令游戲機隨機產(chǎn)生一個100以內(nèi)的正整數(shù)
用戶輸入一個數(shù)對其進行猜測,需要你編寫程序自動對其與隨機產(chǎn)生的被猜數(shù)進行比較
并提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了
如果猜到,則結(jié)束程序。程序還要求統(tǒng)計猜的次數(shù),如果1次猜出該數(shù),提示“Bingo!”
如果3次以內(nèi)猜到該數(shù),則提示“Lucky You!”
如果超過3次但是在N(>3)次以內(nèi)(包括第N次)猜到該數(shù),則提示“Good Guess!”
如果超過N次都沒有猜到,則提示“Game Over”,并結(jié)束程序
如果在到達N次之前,用戶輸入了一個負數(shù),也輸出“Game Over”,并結(jié)束程序
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int main()
{
printf("游戲規(guī)則如下:游戲有兩種模式需要用戶輸入數(shù)字1或2來選擇,然后用戶輸入自己的猜想并根據(jù)提示靠近答案\n");
printf("如果1次猜出該數(shù)提示Bingo!\n如果3次以內(nèi)猜到該數(shù)則提示Lucky You!\n如果超過3次但是在N(>3)次以內(nèi)包括第N次猜到該數(shù)則提示Good Guess!\n如果超過N次都沒有猜到則提示Game Over\n如果在到達N次之前用戶輸入了一個負數(shù)也輸出Game Over\n");
PlaySound("background", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
int a,N,x,i=1,n;
printf("請選擇您的模式:1.電腦隨機產(chǎn)生0-10次最大猜測次數(shù);2.默認最大次數(shù)為5次\n");
printf("請輸入您選擇的模式代碼:");
scanf("%d",&n);
printf("游戲已開始");
if(n==1)
{
srand((unsigned)time(NULL));
a=rand()%100;
N=rand()%10;
for(i=1;i<=N;i++)
{
printf("請輸入你的猜想:");
scanf("%d",&x);
if(x>a) printf("猜大了\n");
else if(x>0&&x<a) printf("猜小了\n");
else if(x<0)
{
printf("游戲結(jié)束\n");
break;
}
else if(x==a)
{
switch(i)
{
case 1: printf("Bingo\n!"); break;
case 2:
case 3: printf("Lucky You\n!"); break;
default :printf("Good Guess!\n"); break;
}
break;
}
}
if(i>N)
printf("游戲結(jié)束\n");
}
if(n==2)
{
N=5;
srand((unsigned)time(NULL));
a=rand()%100;
for(i=1;i<=N;i++)
{
printf("請輸入你的猜想:");
scanf("%d",&x);
if(x>a) printf("猜大了\n");
else if(x>0&&x<a) printf("猜小了\n");
else if(x<0)
{
printf("游戲結(jié)束\n");
break;
}
else if(x==a)
{
switch(i)
{
case 1: printf("Bingo!\n"); break;
case 2:
case 3: printf("Lucky You!\n"); break;
default :printf("Good Guess!\n"); break;
}
break;
}
}
if(i>N)
printf("次數(shù)用盡,游戲結(jié)束\n");
}
printf("答案是:%d",a);
getch();
return 0;
}
之前小編收藏的一段C語言猜數(shù)字小游戲代碼分享給大家:
#include <stdio.h>//頭文件部分可以進行自己查詢
#include <time.h>
#include <stdlib.h>
void menu()//實現(xiàn)菜單的部分
{
printf("**********************\n");
printf("****1.play 0.exit****\n");
printf("**********************\n");
}
void game()//游戲運行的主要部分
{
//猜數(shù)字游戲的實現(xiàn)
//1.生成隨機數(shù)
int ret =rand()%100+1;//利用取模吧隨機的范圍限制在1-100之間
//rand函數(shù)返回了一個0-32767之間的數(shù)字
int guess;
while(1)
{
printf("請輸入你猜的數(shù)字:");//提示玩家進行輸入
scanf("%d",&guess);//玩家進行輸入
if(guess<ret)
{
printf("猜小了\n");
}
else if(guess>ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
int main(void)//主函數(shù)
{
int input;
srand((unsigned int)time(NULL));
//srand是隨機數(shù)產(chǎn)生器
//unsigned int強制轉(zhuǎn)換time(NULL)類型,NULL是空指針
do
{
menu();//顯示菜單1開始,0結(jié)束
printf("請選擇:");//提示玩家進行選擇是否開始游戲
scanf("%d",&input);//玩家輸入自己選擇的地方
switch(input)//利用選擇語句進行選擇1開始,0結(jié)束,如果輸入其他的就提示錯誤
{
case 1:
game();//游戲的主要部分
break;
case 0:
printf("退出游戲");
break;
default:
printf("選擇錯誤");
break;
}
}while(input);
return 0;
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C++判斷主機是否處于聯(lián)網(wǎng)狀態(tài)
這篇文章主要為大家詳細介紹了C++判斷主機是否處于聯(lián)網(wǎng)狀態(tài),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)
下面小編就為大家?guī)硪黄猚++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
詳解C++類的成員函數(shù)做友元產(chǎn)生的循環(huán)依賴問題
這篇文章主要為大家詳細介紹了C++類的成員函數(shù)做友元產(chǎn)生的循環(huán)依賴問題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03

