C語(yǔ)言猜數(shù)字游戲--隨機(jī)生成4個(gè)不相同的數(shù)字從小到大排序,用戶開(kāi)始游戲,如果用戶猜對(duì)數(shù)字和數(shù)字對(duì)應(yīng)的位置,界面回饋A,如果數(shù)字正確位置不正確,則回饋B

1.看程序運(yùn)行截圖吧??!

由于博主本人較笨,就不動(dòng)畫(huà)演示了,如果動(dòng)畫(huà)的話可能將是一個(gè)漫長(zhǎng)的過(guò)程!
猜數(shù)字游戲.png

2.游戲題目

隨機(jī)生成4個(gè)不相同的數(shù)字從小到大排序,用戶開(kāi)始游戲,如果用戶猜對(duì)數(shù)字和數(shù)字對(duì)應(yīng)的位置,界面回饋A,如果數(shù)字正確位置不正確,則回饋B。

3.程序思路

1.先隨機(jī)產(chǎn)生四個(gè)不一樣的一位數(shù)
2.用數(shù)組保存這四個(gè)數(shù)
3.接收用戶輸入,并且做出判斷,分別判斷數(shù)字是否一樣還有判斷數(shù)字的位置是否一樣
4.如果數(shù)字一樣位置也一樣則輸出A,否則輸出B
5.用戶全部猜對(duì)打?。汗材悖聦?duì)了??!

4.代碼實(shí)現(xiàn)

// 猜數(shù)字游戲.cpp : 此文件包含 "main" 函數(shù)。程序執(zhí)行將在此處開(kāi)始并結(jié)束。

#include <iostream>
#include"stdlib.h"
#include"time.h"

int main()
{
    //保存原來(lái)的數(shù)字
    int originalArray[4] = {};
    //保存猜的數(shù)字
    int guessArray[4] = {};
    //記錄數(shù)字和位置相同的個(gè)數(shù)
    int countA = 0;
    //記錄數(shù)字相同位置不同的數(shù)字
    int countB = 0;
    //放種子-
    srand((unsigned int)time(NULL));

    for (int i = 0; i < 4;i++) {
        bool isExist = false;
        int temp = 0;
        while (1)
        {
            //產(chǎn)生一個(gè)隨機(jī)數(shù)
            temp = rand() % 10;
            //判斷是否有重復(fù)
            for (int j = 0; j < i; j++)
            {
                if (originalArray[j]==temp) {
                    //說(shuō)明重復(fù)
                    isExist = true;
                    break;
                }
            }
            if (isExist==false)
            {
                break;
            }
        }
        //插入排序
        int j = 0;
        for (; j < i; j++)
        {
            //下標(biāo)為j對(duì)應(yīng)的數(shù)字和產(chǎn)生的數(shù)字比較
            if (temp<originalArray[j])
            {
                //j后面的內(nèi)容向后移動(dòng)
                for (int k = i; k >j; k--)
                {
                    originalArray[k] = originalArray[k - 1];
                }
                break;
            }
        }
        //保存到數(shù)組中
        originalArray[j] = temp;
    }
    //輸出
    /*for (int i = 0; i < 4; i++)
    {
        printf("%d",originalArray[i]);
    }
    printf("\n");*/
    //開(kāi)始游戲
    while (1)
    {
        printf("請(qǐng)輸入猜測(cè)的數(shù)字:");
        for (int i = 0; i < 4; i++)
        {
            scanf("%d", &guessArray[i]);
        }
        //判斷用戶輸入
        for (int i = 0; i < 4; i++)
        {
            for (int j=0;j<4;j++)
            { 
                //判斷數(shù)字
                if (originalArray[i]==guessArray[j])
                {
                    //判斷位置
                    if (i==j)
                    {
                        countA++;
                    }
                    else
                    {
                        countB++;
                    }
                }
            }
        }
        if (countA==4)
        {
            //說(shuō)明全對(duì)
            printf("恭喜你,猜對(duì)了!??!");
            break;
        }
        else
        {
            printf("%dA%dB\n",countA,countB);
            countA = 0;
            countB = 0;
        }
    }
    //system("pause");
    return 0;
}

5.感悟

這個(gè)小游戲初次一聽(tīng)確實(shí)挺簡(jiǎn)單的,但是在實(shí)現(xiàn)的過(guò)程中卻遇到了不少問(wèn)題,比如如何產(chǎn)生隨機(jī)數(shù),如何使隨機(jī)數(shù)的大小不一樣,并且還要在產(chǎn)生隨機(jī)數(shù)的同時(shí)給隨機(jī)數(shù)排序,盡管困難重重,時(shí)不時(shí)還能把自己繞進(jìn)循環(huán)里,但苦中作樂(lè),寫(xiě)完這個(gè)小程序還是收獲不少。
ps:歡迎關(guān)注喲,會(huì)經(jīng)常給你們推送一些有趣的小程序。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容