溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

發(fā)布時間:2022-01-07 11:06:16 來源:億速云 閱讀:165 作者:柒染 欄目:開發(fā)技術(shù)

C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

    前言

    猜數(shù)字小游戲是我們大多數(shù)人學(xué)習(xí)C語言時都會了解到的一個有趣的C語言小游戲,下面我將詳細介紹該游戲的實現(xiàn)和編程邏輯。并用二分法速通該小游戲。玩小游戲的同時,也能對C語言控制語句有更好的認識。

    一、游戲描述

    游戲內(nèi)容

    顧名思義,該程序讓系統(tǒng)隨機生成一個0-100的整數(shù),讓玩家來猜,玩家猜數(shù)字后,系統(tǒng)給予玩家回饋并且統(tǒng)計玩家猜的次數(shù),直到玩家猜對為止。

    游戲方法

    1、生成游戲菜單 1. play(進入游戲) 0. exit (退出游戲)
    2、使用循環(huán)語句,構(gòu)建游戲框架,使玩家可以進行多次游戲,直到猜對為止。
    3、設(shè)計游戲具體思路,使系統(tǒng)生成一個隨機數(shù),讓玩家輸入一個數(shù)字,然后兩個數(shù)字對比,根據(jù)系統(tǒng)反饋信息,逐漸鎖定目標。

    二、代碼實現(xiàn)

    1.生成游戲菜單

    (1)  void menu()

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    (2)效果顯示

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    2.構(gòu)建主函數(shù) 

    int main()函數(shù)

    使用 do--while() 循環(huán),玩家進行多次猜數(shù)。用switch語句,控制玩游戲還是,退出游戲。

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    有時程序需要一個規(guī)定范圍內(nèi)的隨機數(shù)。要將隨機數(shù)的范圍限制在 1 和某個最大值 max 之間的整數(shù),可以使用以下公式:
    number = rand() % max + 1;
    例如,要生成 1-10 的隨機數(shù)來代表骰子的點數(shù),則可以使用以下語句:
    dice = rand() % 610+ 1; 

    3.構(gòu)建游戲函數(shù) 

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    游戲效果演示 :

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    三、二分法實現(xiàn)猜數(shù)

    如果使用二分法進行猜100以內(nèi)的任何一個隨機數(shù),最多七次就可以正確猜對該隨機數(shù)。

    二分法又可以被稱為二分查找,它描述了在有序集合中搜索特定值的過程。廣義的二分查找是將問題的規(guī)模盡可能的縮小到原有的一半。

    程序通過二分法不斷縮小猜測范圍, 直到猜中n
    例如n = 93
    程序第一次猜測50, 判斷數(shù)值太小
    第二次猜測75,判斷數(shù)值太小
    第三次猜測87,判斷數(shù)值太小
    第四次次猜測93, ringht

    C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么

    如果93不對,我們還能繼續(xù)根據(jù)反饋縮小范圍,最多七次就可以猜對答案

    代碼附上:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>//time系統(tǒng)時間頭文件 
    void menu()//創(chuàng)建游戲菜單 
    {
    	printf("**************\n");
    	printf("****1.play****\n");
    	printf("****0.exit****\n");
    	printf("**************\n");
     } 
    void playgame()
    {
    	int magic=rand()%100+1;//隨機一個1-100的整數(shù) 
    	int guess;
    	int counter=0;//計數(shù)器,初始為0 
    	while(1)
    	{
    		do{
    		    printf("請猜一個數(shù)字:");//提示用戶進行猜數(shù)字游戲,輸入一個整數(shù)
    		    scanf("%d",&guess);
    		    counter++;
    		    if(guess>magic)//根據(jù)比較結(jié)果,提示用戶高了,低了,或是猜對了.
    		    printf("太大了!\n");
    		    else if(guess<magic)
    		    printf("太小了!\n");
    		else
    		    printf("right!\n");	 
    	    }while(guess!=magic);
    	printf("您一共猜了%d次,你真是太棒了!\n",counter);
    	}		
    }
    int main()
    {
    	int input=0;
    	srand((unsigned int)time(0));//time(0)得到的是時間戳,對應(yīng)頭文件#include <time.h>
    	do{
    		menu();
    	    scanf("%d",&input); 
    	    switch(input)
    	    {
    	    	case 1:
    	    		playgame();
    	    		break;
    	        case 0:
    	        	exit(0);
    	        	break;
    	        default:
    	        printf("輸入錯誤!\n");
    		}
    	}while(input);
    	return 0;
    }

    看完上述內(nèi)容,你們掌握C語言實現(xiàn)猜數(shù)字游戲的兩種方法分別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI