首頁 > 軟體

C語言實現猜數位小遊戲的範例程式碼

2022-08-22 14:00:37

一、猜數位小遊戲的要求

猜數位小遊戲是我們小時候喜歡我們一個經典小遊戲,在本文中,猜數位小遊戲主要的功能如下所示

1.登入猜數位小遊戲系統,顯示小時歡迎介面。

2.使用者猜的數位有系統隨機在1-20之間生成。

3.使用者可以有5次機會猜這個隨機生成的數位。

4.若使用者猜大了,則系統會顯示猜大了,並提示還有多少猜數位的機會。

5.若5次都沒有猜中系統隨機生成的數位,則遊戲結束。

二、猜數位小遊戲實現的過程

2.1專案建立

使用VS2019建立一個名為GuessNumber的C語言專案,並在GuessNumber專案中建立Main.c原始檔和Main.h標頭檔案。

2.2標頭檔案內容

在Main.h標頭檔案中,將有關的標頭檔案包含進來,如下所示

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

在宣告兩個函數,如下所示

// 顯示選單
void menu();

// 猜數位遊戲功能
void gameGuess();

其中,menu函數的功能是顯示猜數位小遊戲的初始化介面,並提供猜數位小遊戲的相關說明。gameGuess函數的功能是整個猜數位遊戲的核心,在gameGuess中主要是實現使用者猜數位的功能,並且給使用者提供友好的提示功能。

2.3原始檔內容

首先將標頭檔案包含進來

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

其中#define _CRT_SECURE_NO_WARNINGS是為了使編譯器沒有警告。

main函數中新增程式碼如下

	system("color 3E");

	int select = 0;

	//防止出現的亂數一樣
	srand((unsigned int)time(NULL));

	//利用迴圈實現可以多次玩
	do
	{
		menu();

		printf("請輸入選項:");
		scanf("%d", &select);

		switch (select)
		{
		case 1:
			gameGuess();
			break;
		case 0:
			break;
		default:
			printf("選擇錯誤n");
			system("pause");
			system("cls");
			break;
		}

	} while (select);

	printf("歡迎下次使用,再見!!!n");

	system("pause");
	return 0;

首先定義select 變數,根據使用者輸入的值,給變數select 賦值,從而進入相應的函數,進而實現相關的功能。

srand是為了防止出現的亂數一樣。

根據輸入的select值,進入switch 分支語句進行判斷。

menu函數如下

// 顯示選單
void menu()
{
	printf("**********************************************************n");
	printf("*			歡迎來到猜數位小遊戲n");
	printf("*			規則說明n");
	printf("*			猜的數位為1-20n");
	printf("*			共有5次機會n");
	printf("*			歡迎猜中數位哦!!!nn");

	printf("*			1.開始遊戲n");
	printf("*			0.退出遊戲n");
	printf("**********************************************************nn");
}

其主要的功能是顯示系統的選單功能,給使用者提示猜數位小遊戲應該如何進行。

gameGuess函數如下

//猜數位遊戲功能函數
void gameGuess()
{
	int num = 0, input = 0, count = 0;

	num = rand() % 20 + 1;//獲取1-100的一個亂數

	while (count != 5)//利用if迴圈判斷
	{
		printf("請輸入數位:");
		scanf("%d", &input);

		if (input == num)
		{
			printf("恭喜啦,你猜的數位是對的!!!n");
			break;
		}
		else if (input < num)
		{
			printf("你猜小了n");
		}
		else
		{
			printf("你猜大了n");
		}

		count++;
		if (count == 5)
		{
			printf("很遺憾,5次機會用完了,你沒有猜對!!!nn");
			printf("正確答案是:%dn", num);
			break;
		}
		printf("你還有:%d次機會nn", 5 - count);
	}

	system("pause");
	system("cls");
}

使用系統庫函數rand隨機生成一個1-20的數位,賦值給變數num ,然後根據輸入的變數input值是否相等使用 == 進行判斷。

count主要用於判斷使用者還有多少次猜數位的機會。

三、猜數位小遊戲偵錯結果如下

1.進入系統,輸入數位1

2.猜對的偵錯結果

3.沒有猜對的偵錯結果

四、基於猜數位小遊戲的總結

本文的猜數位小遊戲讓我們對於C語言的入門可以得到有效的提高,對於srand函數、rand函數,Switch語句、while迴圈、if條件判據等C語言知識點可以進一步的掌握。

五、完整程式碼

Main.h標頭檔案

#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 顯示選單
void menu();

// 猜數位遊戲功能
void gameGuess();

Main.c原始檔

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

int main()
{
	system("color 3E");

	int select = 0;

	//防止出現的亂數一樣
	srand((unsigned int)time(NULL));

	//利用迴圈實現可以多次玩
	do
	{
		menu();

		printf("請輸入選項:");
		scanf("%d", &select);

		switch (select)
		{
		case 1:
			gameGuess();
			break;
		case 0:
			break;
		default:
			printf("選擇錯誤n");
			system("pause");
			system("cls");
			break;
		}

	} while (select);

	printf("歡迎下次使用,再見!!!n");

	system("pause");
	return 0;
}

// 顯示選單
void menu()
{
	printf("**********************************************************n");
	printf("*			歡迎來到猜數位小遊戲n");
	printf("*			規則說明n");
	printf("*			猜的數位為1-20n");
	printf("*			共有5次機會n");
	printf("*			歡迎猜中數位哦!!!nn");

	printf("*			1.開始遊戲n");
	printf("*			0.退出遊戲n");
	printf("**********************************************************nn");
}

//猜數位遊戲功能函數
void gameGuess()
{
	int num = 0, input = 0, count = 0;

	num = rand() % 20 + 1;//獲取1-100的一個亂數

	while (count != 5)//利用if迴圈判斷
	{
		printf("請輸入數位:");
		scanf("%d", &input);

		if (input == num)
		{
			printf("恭喜啦,你猜的數位是對的!!!n");
			break;
		}
		else if (input < num)
		{
			printf("你猜小了n");
		}
		else
		{
			printf("你猜大了n");
		}

		count++;
		if (count == 5)
		{
			printf("很遺憾,5次機會用完了,你沒有猜對!!!nn");
			printf("正確答案是:%dn", num);
			break;
		}
		printf("你還有:%d次機會nn", 5 - count);
	}

	system("pause");
	system("cls");
}

到此這篇關於C語言實現猜數位小遊戲的範例程式碼的文章就介紹到這了,更多相關C語言猜數位內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com