猜数字游戏(保姆式教程)
目錄
🤞?1)生成菜單
?🤞2)玩家選擇玩游戲與不玩游戲
?🤞3) 猜數字游戲核心實現
🤞?4)玩家猜數字
💕創作不易,先贊后看養成習慣
哈哈哈哈哈哈
?
?1)生成菜單
玩這個游戲,菜單里無非包含兩個選擇 :一.就是玩游戲;二.就是不玩游戲。 而且如果我想玩多把就要運用循環,既然有循環就要想到終止,我們知道非0為真,0為假,所以不如我們選擇1和0來做我們的玩與不玩的條件,這樣后面會方便很多,kakaka 不管三七二十一,我們都要先來一次選擇的菜單來吧,代碼如下:
void menu() {printf("******************************\n");printf("********* 1.play *********\n"); //選擇1 玩游戲printf("********* 0.exit *********\n"); //選擇0 退出游戲printf("******************************\n"); }打印完菜單我們肯定要調用到循環里,代碼如下:
int main() {do{menu(); //調用菜單,由于不管怎樣選擇都要至少用到一次菜單,所以用do while} while ();return 0; }打印完菜單之后我們就要選擇玩與不玩對不對?
2)玩家選擇玩游戲與不玩游戲
根據菜單的提示,我們選擇玩游戲和不玩游戲,都要輸入一個數字來判斷玩或者不玩,所以我們就來定義一個變量input,代碼如下:
int main() {int input = 0;do{menu();printf("請選擇>(0/1):");scanf("%d", &input); //要玩多次所以放在循環里} while (input);return 0; }我們輸入了,肯定就要來接受從而判斷玩與不玩,兩個選擇,我們用 switch和case?分支語句去選擇,選擇1 就進行猜數字游戲,0就退出嘛,選擇其它的,我們就報一個選擇錯誤重新選擇,代碼如下:
int main() {int input = 0;srand((unsigned int)time(NULL));do{menu();printf("請選擇>(0/1):");scanf("%d", &input);switch (input){case 1 :game();break;case 0 :printf("退出游戲\n");break;default :printf("選擇錯誤,請重新選擇\n");}} while (input); //循環條件也是input 輸入0 就退出循環了return 0; }3) 猜數字游戲核心實現
首先為了玩猜數字我們要先讓電腦生成一個隨機數字,隨機數字的生成要運用到函數 rand()?我們來看一下這個函數的返回類型和原型
?
上面說調用函數rand() 前必須再調用 srand()? 接下來我又把這個函數的原型和返回類型給大家看
?
?srand()里需要一個一直改變的數,這我們怎么辦呢,在生活中存在一直改變的數就是時間了,所以不妨我們用時間來滿足我們的條件(引用一個time的函數實現)看代碼:
?time()函數 它的返回類型是整型,由于不需要用到它的任何操作,就將NULL放在time里
void game() {srand((unsigned int)time(NULL));int ret = rand() % 100 +1; //我們假設猜1-100的數字 }4)玩家猜數字
玩家猜數字,首先我們需要輸入一個數字,來判斷我們與電腦生成的數字作比較,如果大于電腦的我們就提示說 “猜大了”,小于電腦的提示 “猜小了”,在我們猜的過程中一般不能是一次就猜對了,所以我們這里要多次輸入并判斷,因此這些要放在循環當中,猜對了就跳出循環,代碼如下:
void game() {int ret = rand() % 100 +1;int guess = 0;while (1){printf("\n請輸入你要猜的數字:");scanf("%d", &guess);if (guess < ret){printf("\n猜小了\n");}else if (guess > ret){printf("\n猜大了\n");}else{printf("\n恭喜你,猜對了\n"); //如果猜對就跳出循環break;}} }以上就是全部的分解代碼,以下是全部代碼:特別要注意我們生成隨機數并不一次游戲只需生成一次所以我們將srand()函數放在我們的主函數里面
#include <stdio.h> #include <stdlib.h> #include <time.h> void menu() {printf("*****************************\n");printf("********* 1.play ********\n");printf("********* 0.exit ********\n");printf("*****************************\n"); } void game() {int ret = rand() % 100 +1;int guess = 0;while (1){printf("\n請輸入你要猜的數字:");scanf("%d", &guess);if (guess < ret){printf("\n猜小了\n");}else if (guess > ret){printf("\n猜大了\n");}else{printf("\n恭喜你,猜對了\n");break;}} } int main() {int input = 0;srand((unsigned int)time(NULL));do{menu();printf("請選擇>(0/1):");scanf("%d", &input);switch (input){case 1 :game();break;case 0 :printf("退出游戲\n");break;default :printf("選擇錯誤,請重新選擇\n");}} while (input);return 0; }??
?
總結
以上是生活随笔為你收集整理的猜数字游戏(保姆式教程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决dedecms权重排序问题
- 下一篇: 【伪多项式时间】