日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言詳解實現猜數字游戲步驟_C 語言

作者:hania_w ? 更新時間: 2022-08-31 編程語言

前言

本文詳細介紹了猜數字游戲的具體實現邏輯

一、猜數字游戲是什么

1、電腦自動生成一個1-100以內的數字

2、我們輸入一個我們猜的數字

3、如果我們猜的數字比電腦隨機生成的數字大,那么輸出(猜大了)

4、如果我們猜的數字比電腦隨機生成的數字小,那么輸出(猜小了)

5、如此循環往復,猜到正確的數字之后游戲結束

二、使用步驟

  • 1.首先應該打印菜單

代碼如下

void menu()
{
	printf("*********************\n");
	printf("***** 1. play *******\n");
	printf("***** 0. exit *******\n");
	printf("*********************\n");
}
int main()
{
	menu();
	printf("請選擇:>");
	int input = 0;
	while (input)
	{
		switch (input)
		{
		case 1:
	        printf("游戲開始");
	        game()//選擇開始游戲之后,進入我們玩游戲的一個邏輯
			break;
		case 0:
			printf("退出游戲");
			break;
		default:
			printf("輸入錯誤,請重新輸入!");
			break;
		}
	}
	return 0;
}

選擇1,開始游戲

選擇0,游戲結束

  • 2.打印我們的game()函數來實現我們的游戲具體邏輯

代碼如下:

void game()
{
	int guess = 0;
	int ret = rand() % 100 + 1;//限制我們得到的數字為1-100之間的數字
	while (1)//因為猜數字是一個多次的過程,因此需要一個循壞來解決
	{
		printf("請輸入你猜的數字:>");
		scanf("%d", &guess);
		//將我們猜的數字與電腦隨機生的數字作對比
		if (guess < ret)
		{
		//如果我們猜的數字比電腦的數字要小,輸出猜小了
			printf("猜小了!\n");
		}
		else if (guess > ret)
		{
		//如果我們猜的數字比電腦的數字要大,輸出猜大了
			printf("猜大了!\n");
		}
		else
		{
		//數字猜對了,輸出猜對了
			printf("猜對了!\n");
			break;
		}
	}
}

注:

如果使用rand()函數,必須先調用srand()函數,再使用時間戳來形成一個隨機數字。

我們調用時間戳,因此需要包含頭文件#include<time.h>

【時間戳】的概念:一個能表示一份數據在某個特定時間之前已經存在的、 完整的、 可驗證的數據,通常是一個字符序列,唯一地標識某一刻的時間。

因此我們的main()函數部分就變成了如下代碼所示:

int main()
{
	menu();
	printf("請選擇:>");
	int input = 0;
	int n = 0;
	scanf("%d", &input);
	srand((unsigned int)time(NULL));
	//使用srand函數,接著使用時間戳,形成一個無符號整數
	//我們調用時間戳,因此需要包含頭文件#include<time.h>
	while (input)
	{
		switch (input)
		{
		case 1:
			game();//猜數字游戲的的邏輯
			break;
		case 0:
			printf("退出游戲");
			break;
		default:
			printf("輸入錯誤,請重新輸入!");
			break;
		}
	}
	return 0;
}

總結

本文的重點是對于時間戳的理解,以及猜數字游戲的邏輯

下面是【猜數字游戲】的全部代碼

猜數字游戲1-100
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void game()
{
	int guess = 0;
	int ret = rand() % 100 + 1;//限制我們得到的數字為1-100之間的數字
	//printf("%d",ret);
	while (1)
	{
		printf("請輸入你猜的數字:>");
		scanf("%d", &guess);
		if (guess < ret)
		{
			printf("猜小了!\n");
		}
		else if (guess > ret)
		{
			printf("猜大了!\n");
		}
		else
		{
			printf("猜對了!\n");
			break;
		}
	}
}
void menu()
{
	printf("*********************\n");
	printf("***** 1. play *******\n");
	printf("***** 0. exit *******\n");
	printf("*********************\n");
}
int main()
{
	menu();
	printf("請選擇:>");
	int input = 0;
	int n = 0;
	scanf("%d", &input);
	srand((unsigned int)time(NULL));
	while (input)
	{
		switch (input)
		{
		case 1:
			game();//猜數字的邏輯
			break;
		case 0:
			printf("退出游戲");
			break;
		default:
			printf("輸入錯誤,請重新輸入!");
			break;
		}
	}
	return 0;
}

原文鏈接:https://blog.csdn.net/weixin_64634186/article/details/124233020

欄目分類
最近更新