當前位置:網站首頁>【C語言】猜數字小遊戲+關機小程序
【C語言】猜數字小遊戲+關機小程序
2022-07-23 14:32:58【腦瓜子翁嗡】
前言
今天寫猜數字遊戲和關機小程序,在學習的時候也可以娛樂,學習和娛樂兩不誤,一起來體驗一下寫遊戲的快樂吧!
1.猜數字小遊戲
讓電腦生成1~100的隨機數,然後猜數字,猜數字肯定有猜大了,猜小了。猜大了返回猜大了,猜小了就返回猜小了,直到猜對了,猜對了就結束遊戲。猜數字遊戲我們玩完一把覺得不過癮要再來一次,我們就的要用到循環。
(1)生成菜單
遊戲一開始我們就要打印菜單,所以我們這裏用do while 循環打印菜單,分裝一個簡單的menu 函數
void menu()
{
printf("*******************************\n");
printf("******** 1.play *******\n");//選1進入遊戲
printf("******** 0.exit *******\n");//選0退出遊戲
printf("*******************************\n");
}
(2)是否進入遊戲
根據菜單的提示,我們是否玩遊戲,都要輸入一個數字來判斷玩家是否進入遊戲,所以我們就來定義一個變量input,我們這裏用 switch 和 case 語句進行選擇,選擇1 就進入遊戲猜數字;選擇0則退出遊戲;選擇其他就提示選擇錯誤,重新選擇!
int main()
{
int input = 0;
do
{
menu();
printf("請選擇:>");
scanf("%d", &input);
switch (input)
{
case 1:
printf("猜數字\n");
break;
case 0:
printf("退出遊戲\n");
break;
default:
printf("選擇錯誤,重新選擇!\n");
break;
}
} while (input);//我們這裏循環條件也是input,輸入0,就會直接退出循環
return 0;
}
(3)猜數字game()
- 生成隨機數
玩家玩遊戲,我們就得讓電腦隨機生成一些數,讓玩家去猜,我們這裏用到了 rand 函數,我們看一下rand函數的使用:
在 rand 函數的使用裏面說到了,調用 rand 函數之前需要先調用 sand 函數來設置我們的隨機生成器,sand 函數的使用如下圖:
我們想要隨機數,電腦就要生成不一樣的隨機數,我們這裏需要傳一個值,這個值就是時間,時間每一分每一秒都在發生變化,這裏引入一個時間戳
注意:我們生成隨機數並不一次遊戲只需生成一次所以我們將srand()函數放在我們的主函數裏面
void game()
{
srand((unsigned int)time(NULL));
//1.生成隨機數
int ret = rand()%100+1;//生成0~100的隨機數
}
- 玩家猜數字
我們寫一個循環,猜大了返回猜大了,猜小了返回猜小了,直到猜對了
void game()
{
int guess = 0;
//1.生成隨機數
int ret = rand()%100+1;//生成0~100的隨機數
//2.猜數字
while (1)
{
printf("請猜數字:>");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
(4)整個遊戲完整代碼
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("*******************************\n");
printf("******** 1.play *******\n");//選1進入遊戲
printf("******** 0.exit *******\n");//選0退出遊戲
printf("*******************************\n");
}
void game()
{
int guess = 0;
//1.生成隨機數
int ret = rand()%100+1;//生成0~100的隨機數
//2.猜數字
while (1)
{
printf("請猜數字:>");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜對了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("請選擇:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();//猜數字整個邏輯
break;
case 0:
printf("退出遊戲\n");
break;
default:
printf("選擇錯誤,重新選擇!\n");
break;
}
} while (input);
return 0;
}
淺玩一把遊戲吧!
2.關機小程序
這裏提示一下關機小程序純屬娛樂啦,也可以惡搞哦!
寫一個關機程序,只要運行起來,電腦在1分鐘內就關機,如果輸入:我是猪,才能取消關機。
我們這裏需要調用系統命令 shutdown -s -t 60 (-t錶示設置時間來關機,60錶示60秒),系統取消關機命令是shutdown -a
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char input[20] = {
0 };
system("shutdown -s -t 60");
again:
printf("請注意,你的電腦在1分鐘內關機,如果輸入我是猪,就取消關機\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)
{
system("shutdown -a");
printf("關機取消\n");
}
else
{
goto again;
}
return 0;
}
本章到這裏就結束啦,如果有哪裏寫的不好的地方,請指正。
如果覺得不錯並且對你有幫助的話請給個三連支持一下吧!
Fighting!!!
版權聲明
本文為[腦瓜子翁嗡]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207230846063808.html
邊欄推薦
- 【STM32學習】(21)STM32實現步進電機
- 繪制帶有查詢條件變量的table【grafana】
- 認識接口
- LABVIEW:創建一個VI
- 界面開發框架DevExtreme Gantt控件——可導出PDF、排序任務
- MySQL命令行導出導入數據庫和數據錶
- 有數大數據基礎平臺之智能運維平臺EasyEagle介紹:集群隊列篇
- 你記住JS中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX嗎?
- 【Azure 事件中心】Azure Event Hub 新功能嘗試 -- 异地灾難恢複 (Geo-Disaster Recovery)
- unity 照片牆
猜你喜歡
隨機推薦
- *精度優化*優化策略1:網絡+SAM優化器
- AXI協議詳解
- js--Date對象&三元錶達式
- leetcode-買賣股票的最佳時機含手續費
- unity中3dUI或者模型始終面向攝像機,跟隨攝像機視角旋轉丨視角跟隨丨固定視角
- JVM初探
- 移動端測試之appium環境部署【未完待續】
- 關於後臺掛載,進程管理的學習
- 讀《高效閱讀法-最劃算的自我投資》有感
- shell基本命令
- 從鍵盤輸入一串字符,輸出不同的字符以及每個字符出現的次數。(輸出不按照順序)運用String類的常用方法解題
- 2019_AAAI_ICCN
- 影響接口查詢速度的情况
- 《STL適配器》stack和queue
- 淺析緩存的讀寫策略
- 類和對象(1)
- 實驗二 YUV
- 大咖訪談 | 開源社區裏各種奇怪的現狀——夜天之書陳梓立tison
- synchronized是如何實現的
- 【arXiv2022】GroupTransNet: Group Transformer Network for RGB-D Salient Object Detection
- BGP機房的優點
- 真人踩過的坑,告訴你避免自動化測試常犯的10個錯誤
- 判斷是否為void類型
- C語言——幾道C語言經典習題
- openvino_datawhale
- C語言基礎知識梳理(一)
- Redis源碼與設計剖析 -- 7.快速列錶
- 比特,比特,字節,字的概念與區別
- 項目部署(簡版)
- JDBC的學習以及簡單封裝
- [pytho-flask筆記5]藍圖簡單使用
- Web Component-自定義元素的生命周期
- 數倉4.0筆記——業務數據采集
- 數倉4.0筆記——用戶行為數據采集四
- 對.h5文件的迭代顯示,h5py數據操作
- 常用數學知識匯總
- “東數西算”下數據中心的液冷GPU服務器如何發展?
- 硬件知識1--原理圖和接口類型(基於百問網硬件操作大全視頻教程)
- 鋼結構基本原理複習
- Unity3d:UGUI源碼,Rebuild優化