国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言之掃雷游戲?qū)崿F(xiàn)篇

這篇具有很好參考價值的文章主要介紹了C語言之掃雷游戲?qū)崿F(xiàn)篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

主函數(shù)test.c

菜單函數(shù)

選擇循環(huán)

掃雷游戲?qū)崿F(xiàn)分析

整體思路?

問題1

問題2?

問題3

問題4?

游戲函數(shù)(函數(shù)調(diào)用)?

創(chuàng)建游戲盤數(shù)組mine

創(chuàng)建游戲盤數(shù)組show

初始化游戲盤數(shù)組InitBoard

展示游戲盤DisplayBoard

游戲盤置雷SetMine

游戲盤排雷FindMine

test.c總代碼

頭文件&函數(shù)聲明game.h

頭文件的包含

游戲符號聲明

游戲函數(shù)聲明

game.h總代碼

游戲函數(shù)game.c

初始化游戲盤InitBoard

展示游戲盤DisplayBoard

優(yōu)化1

優(yōu)化2

游戲盤置雷SetMine

游戲盤排雷FindMine

排查過的位置

未排查過的位置

雷炸死??

非雷計算

找完雷

總循環(huán)

game.c總代碼


今天我們接著來講掃雷游戲的實現(xiàn)。????

主函數(shù)test.c

菜單函數(shù)

void menu()
{
	printf("*******************\n");
	printf("*******Play.1******\n");
	printf("*******Over.2******\n");
	printf("*******************\n");
}

選擇循環(huán)

#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void menu()
{
	printf("*******************\n");
	printf("*******Play.1******\n");
	printf("*******Over.2******\n");
	printf("*******************\n");
}
void game()
{
	printf("開始掃雷游戲\n");
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		printf("歡迎來到掃雷游戲!\n");
        menu();
		printf("請輸入您的選擇:\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("游戲結(jié)束\n");
			break;
		default:
			printf("輸入選擇有誤,請重新選擇\n");
			break;
		}
	} while (input);
}

以上代碼我們已經(jīng)寫過三遍了,相信大家都非常熟悉了,不在過多闡述。?

掃雷游戲?qū)崿F(xiàn)分析

整體思路?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

  • 首先游戲盤9?9,游戲盤上布置了10個雷
  • 如果游戲盤的某處坐標不是雷,就計算這個位置的周圍3?3的8個坐標有幾個雷且顯示雷個數(shù)
  • 如果游戲盤的某處坐標是雷,就炸死了,顯示游戲結(jié)束
  • 如果把游戲盤上所有非雷的位置全部找出來了,顯示排雷成功,游戲結(jié)束。?
  • 兩個完全貼合的字符數(shù)組游戲盤

問題1

我們用字符'0'表示非雷,'1'表示是雷。
但是格子里還要顯示周圍3?3的各自雷的個數(shù),數(shù)字1字符'1'會容易搞混,怎么辦?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

?所以我們需要兩個游戲盤

  • mine游戲盤。游戲盤初始化為字符'0'和'1'。隨機循環(huán)的布置10個雷的位置。玩家在掃雷的時候計算雷的個數(shù)。
  • show游戲盤。游戲盤的展示。游戲盤初始化為字符'*'。玩家掃雷的時候顯示周圍3?3的8個坐標的雷的個數(shù)。
  • 特別提醒:二者必須完全無縫貼合????

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

問題2?

剛剛我們提到mine游戲盤是掃雷時計算某個坐標的周圍3?3的8個坐標的雷的個數(shù),那如果時周圍的坐標該怎么辦,如果計算,已經(jīng)數(shù)組越界了????

?C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

所以我們要拓展我們的游戲盤,我們創(chuàng)建一個11?11的游戲盤,但我們只訪問9?9的游戲盤

特別提醒:為了我們的便捷的實現(xiàn)我們的掃雷游戲,我們的兩個游戲盤必須無縫貼合,所以我們的show顯示游戲盤也要拓展到11?11。?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

問題3

我們掃雷游戲的實現(xiàn)涉及初始化,游戲盤的展示等都需要用到循環(huán) ,那循環(huán)條件條件的控制?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

特別提醒:

特別需要注意循環(huán)條件,數(shù)組的下標是從0開始。

初始化數(shù)組就是0~10

訪問數(shù)組就是1~9?

問題4?

當玩家輸入坐標,沒有輸入雷被炸死,這時我們需要顯示雷的坐標,那怎樣去計算雷的個數(shù)?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

?游戲盤數(shù)組mineshow都初始化為字符?,F(xiàn)在我們要將字符轉(zhuǎn)化為數(shù)字。

?根據(jù)字符和數(shù)字的ASCII碼值。我們知道'0'數(shù)值為48,'1'數(shù)值為49。

?所以我們知道?'1'-'0'=1? ?'0'-'0'=0

?所以我們可以將(x,y)周圍8個字符坐標分別減去'0'可以得到數(shù)字,再全加到一起得總數(shù)字。

?或者我們也可以先將(x,y)周圍8個坐標字符坐標 加到一起,再一起減去8*'0'得到總數(shù)字

游戲函數(shù)(函數(shù)調(diào)用)?

創(chuàng)建游戲盤數(shù)組mine

char mine[ROWS][COLS]={0};

創(chuàng)建游戲盤數(shù)組show

char show[ROWS][COLS]={0};

初始化游戲盤數(shù)組InitBoard

  • 創(chuàng)建一個InitBoard函數(shù),去分別初始化兩個數(shù)組mine和show
  • ?初始化內(nèi)容不一樣,所以把初始化內(nèi)容當作參數(shù)分別傳給函數(shù)InitBoard
  • 初始化時傳參時11?11,為了后面計算游戲盤某坐標 周圍8個坐標 里雷的個數(shù)?
InitBoard(mine, ROWS, COLS, '0');//初始化是11?11
InitBoard(show, ROWS, COLS, '*');

展示游戲盤DisplayBoard

  • 展示游戲盤,只需要訪問9?9的游戲盤。?
DisplayBoard(mine, ROW, COL);//多余的//訪問是9?9
DisplayBoard(mine, ROW, COL);

游戲盤置雷SetMine

SetMine(mine, ROW, COL);
DisplayBoard(mine, ROW, COL);//多余的

游戲盤排雷FindMine

FindMine(mine, show, ROW, COL);
//傳mine數(shù)組過去計算雷
//傳show數(shù)組展示計算雷的結(jié)果

test.c總代碼

//掃雷游戲的實現(xiàn)
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void menu()
{
	printf("*******************\n");
	printf("*******Play.1******\n");
	printf("*******Over.2******\n");
	printf("*******************\n");
}
void game()
{
	printf("開始掃雷游戲\n");
	char mine[ROWS][COLS] = { 0 };
	char show[ROWS][COLS] = { 0 };
	InitBoard(mine, ROWS, COLS, '0');//
	InitBoard(show, ROWS, COLS, '*');
	//DisplayBoard(mine, ROW, COL);//多余的//訪問是9?9
	DisplayBoard(show, ROW, COL);
	//布置雷
	SetMine(mine, ROW, COL);
	//DisplayBoard(mine, ROW, COL);//多余的
	//排除雷——掃雷
	FindMine(mine, show, ROW, COL);
	//傳mine數(shù)組過去計算雷
	//傳show數(shù)組展示計算雷的結(jié)果

}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		printf("歡迎來到掃雷游戲!\n");
		menu();
		printf("請輸入您的選擇:\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("游戲結(jié)束\n");
			break;
		default:
			printf("輸入選擇有誤,請重新選擇\n");
			break;
		}
	} while (input);
}

頭文件&函數(shù)聲明game.h

頭文件的包含

在我們寫代碼的過程中,會調(diào)用庫函數(shù),需要包含頭文件,和聲明函數(shù)。

所以我們將所有函數(shù)聲明和頭文件放到我們.h 文件中。

當然,在其他.c文件需要使用時,我們只需要包含 我們創(chuàng)造的 頭文件"game.h"?即可。?

//#include"game.h"
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

游戲符號聲明

#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define EASY_COUNT 10

游戲函數(shù)聲明

void InitBoard(char board[ROWS][COLS],int rows,int cols,char set);
void DisplayBoard(char board[ROWS][COLS], int row, int col);
void SetMine(char board[ROWS][COLS], int row, int col);
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row,int col);
//不能board,重復(fù)參數(shù)名

game.h總代碼

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define EASY_COUNT 10
void InitBoard(char board[ROWS][COLS],int rows,int cols,char set);
void DisplayBoard(char board[ROWS][COLS], int row, int col);
void SetMine(char board[ROWS][COLS], int row, int col);
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row,int col);
//不能board,重復(fù)參數(shù)名

游戲函數(shù)game.c

初始化游戲盤InitBoard

  • 數(shù)組下標是從0開始的,所以初始化i是0~10?
#include"game.h"
#define _CRT_SECURE_NO_WARNINGS 1
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < rows; i++)//i=0~10
	{
		for (j = 0; j < cols; j++)//j=0~10
		{
			board[i][j] = set;
		}
	}
}

展示游戲盤DisplayBoard

  • ?數(shù)組下標是從0開始,所以訪問是0~9
void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
	int i = 0;
	int j = 0;
	for (i = 1; i <= row; i++)
	{
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);
		}
		printf("\n");
	}
}

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序當然我們的mine函數(shù)是不會展示的。當玩家輸入坐標時還要去數(shù),所以以上代碼還能不能優(yōu)化??

優(yōu)化1

  • 玩家輸入坐標時,還是幾行幾列去尋找,所以我們選擇直接把號碼打印出來。
void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
	int i = 0;
	int j = 0;
	//打印列號
	for (i = 0; i <= col; i++)//i從0開始,因為行占用了一格
	{
		printf("%d ", i);
	}
	printf("\n");
	//打印數(shù)字
	for (i = 1; i <= row; i++)
	{
		printf("%d ", i);//打印行號
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);
		}
		printf("\n");
	}
}

優(yōu)化2

  • 上下文的文字顯得眼花繚亂,所以我們加上分割線就不會繚亂了。?
void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
	int i = 0;
	int j = 0;
	//打印列號
	printf("--------------掃雷--------------\n");
	for (i = 0; i <= col; i++)
	{
		printf("%d ", i);
	}
	printf("\n");
	//打印數(shù)字
	for (i = 1; i <= row; i++)
	{
		printf("%d ", i);//打印行號
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);
		}
		printf("\n");
	}
	printf("--------------掃雷--------------\n");
}

優(yōu)化之后?

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

游戲盤置雷SetMine

  • 關(guān)于隨機數(shù)rand,先調(diào)用srand
  • 隨機數(shù)rand()%row的范圍0~8
  • 隨機數(shù)rand()%row+1的范圍1~9
  • 關(guān)于布置雷需要在mine函數(shù)里面去實現(xiàn)
  • while循環(huán)的次數(shù)肯定不止EASY_COUNT
void SetMine(char board[ROWS][COLS], int row, int col)
{
	//布置雷——循環(huán)隨機數(shù)直到布置完10個雷停止
	int count = EASY_COUNT;
	while (count)//直到10個雷布置完畢退出循環(huán)
	{
		int x = rand() % row + 1;
		int y = rand() % col + 1;
		//產(chǎn)生的坐標就是(0,0)~(9,9)
		if (board[x][y] == '0')
			//條件設(shè)置,不能重復(fù)計算已經(jīng)設(shè)置過的地方即為1的地方
		{
			board[x][y] = '1';
			count--;
		}
	}
}

?C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

游戲盤排雷FindMine

排查過的位置

 if(show[x][y] != "*")
            {
                printf("該坐標被排查過了,請重新輸入坐標\n");
            }?

未排查過的位置

雷炸死??
  • ?坐標為雷就炸死,游戲結(jié)束
printf("請輸入要查找的雷\n");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)//輸入的坐標要合法
{
    if 
         /
	else if(mine[x][y] == '1')//被炸死的條件
	{
				printf("很遺憾,你被炸死了\n");
				DisplayBoard(mine, ROW, COL);
				break;
	}?
    else
      //
}
else//玩家輸入非法坐標,重新輸入
{
	printf("坐標非法,請重新輸入\n");
}
非雷計算
  • ?坐標不為雷,mine計算雷,show展示雷
  • ?計算l雷個數(shù)的函數(shù)GetMineCount
//統(tǒng)計雷的個數(shù)
int GetMineCount(char mine[ROWS][COLS], int x, int y)
{
	return mine[x - 1][y - 1] + mine[x - 1][y] + mine[x - 1][y + 1]
		+ mine[x][y - 1] +  mine[x][y + 1]
		+ mine[x + 1][y - 1] + mine[x + 1][y] + mine[x + 1][y + 1]
		-8*'0';
}


int win=0;
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
   if
   {

   }
   else if
//
   else//沒有被炸死,顯示雷的個數(shù)
   {
	 //不是雷,就統(tǒng)計x,y坐標周圍有幾個雷
	 int c = GetMineCount(mine, x, y);
	 show[x][y] = c + '0';//數(shù)字+'0'=字符數(shù)字放置到字符數(shù)組里去
	 DisplayBoard(show, ROW, COL);//展示字符數(shù)字——雷的個數(shù),每排查一次都要顯示雷的個數(shù)
	 win++;//每排查一次雷,雷的個數(shù)減少一次,距離循環(huán)結(jié)束++一次
   }?
}
else//玩家輸入非法坐標,重新輸入
{
	printf("坐標非法,請重新輸入\n");
}
找完雷
  • ?坐標找完雷,游戲結(jié)束
//炸死和排排完雷都跳出循環(huán)
if (win == row * col - EASY_COUNT)//設(shè)置條件只有排完雷才通關(guān)
{
	printf("恭喜你排雷成功,游戲通關(guān)\n");
    DisplayBoard(mine, ROW, COL);
}

總循環(huán)

int GetMineCount(char mine[ROWS][COLS], int x, int y)
{
	return mine[x - 1][y - 1] + mine[x - 1][y] + mine[x - 1][y + 1]
		+ mine[x][y - 1] +  mine[x][y + 1]
		+ mine[x + 1][y - 1] + mine[x + 1][y] + mine[x + 1][y + 1]
		-8*'0';
}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
	int x = 0;
	int y = 0;
	int win = 0;
	while (win<row*col-EASY_COUNT)
	{
		printf("請輸入要查找的雷\n");
		scanf("%d %d", &x, &y);
		if (x >= 1 && x <= row && y >= 1 && y <= col)//輸入的坐標要合法
		{
            if(show[x][y] != "*")
            {
                printf("該坐標被排查過了,請重新輸入坐標\n");
            }
			else if (mine[x][y] == '1')//被炸死的條件
			{
				printf("很遺憾,你被炸死了\n");
				DisplayBoard(mine, ROW, COL);
				break;
			}
			else//沒有被炸死,顯示雷的個數(shù)
			{
				//不是雷,就統(tǒng)計x,y坐標周圍有幾個雷
				int c = GetMineCount(mine, x, y);
				show[x][y] = c + '0';//數(shù)字+'0'=字符數(shù)字放置到字符數(shù)組里去
				DisplayBoard(show, ROW, COL);//展示字符數(shù)字——雷的個數(shù)
				//每排查一次都要顯示雷的個數(shù)
				win++;//每排查一次雷,雷的個數(shù)減少一次,距離循環(huán)結(jié)束++一次
			}
		}
		else//玩家輸入非法坐標,重新輸入
		{
			printf("坐標非法,請重新輸入\n");
		}
	}
	//炸死和排排完雷都跳出循環(huán)
	if (win == row * col - EASY_COUNT)//設(shè)置條件只有排完雷才通關(guān)
	{
		printf("恭喜你排雷成功,游戲通關(guān)\n");
		DisplayBoard(mine, ROW, COL);
	}
}

game.c總代碼

#include"game.h"
#define _CRT_SECURE_NO_WARNINGS 1
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < rows; i++)//i=0~10
	{
		for (j = 0; j < cols; j++)//j=0~10
		{
			board[i][j] = set;
		}
	}
}
//分別傳兩個數(shù)組,初始化自己想要初始化的字符

void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
	int i = 0;
	int j = 0;
	//打印列號
	printf("--------------掃雷--------------\n");
	for (i = 0; i <= col; i++)
	{
		printf("%d ", i);
	}
	printf("\n");
	//打印數(shù)字
	for (i = 1; i <= row; i++)
	{
		printf("%d ", i);//打印行號
		for (j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);
		}
		printf("\n");
	}
	printf("--------------掃雷--------------\n");
}

void SetMine(char board[ROWS][COLS], int row, int col)
{
	//布置雷——循環(huán)隨機數(shù)直到布置完10個雷停止
	int count = EASY_COUNT;
	while (count)//直到10個雷布置完畢退出循環(huán)
	{
		int x = rand() % row + 1;
		int y = rand() % col + 1;
		//產(chǎn)生的坐標就是(0,0)~(9,9)
		if (board[x][y] == '0')
			//條件設(shè)置,不能重復(fù)計算已經(jīng)設(shè)置過的地方即為1的地方
		{
			board[x][y] = '1';
			count--;
		}
	}
}
int GetMineCount(char mine[ROWS][COLS], int x, int y)
{
	return mine[x - 1][y - 1] + mine[x - 1][y] + mine[x - 1][y + 1]
		+ mine[x][y - 1] +  mine[x][y + 1]
		+ mine[x + 1][y - 1] + mine[x + 1][y] + mine[x + 1][y + 1]
		-8*'0';
}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
	int x = 0;
	int y = 0;
	int win = 0;
	while (win<row*col-EASY_COUNT)
	{
		printf("請輸入要查找的雷\n");
		scanf("%d %d", &x, &y);
		if (x >= 1 && x <= row && y >= 1 && y <= col)//輸入的坐標要合法
		{
            if(show[x][y] != "*")
            {
                printf("該坐標被排查過了,請重新輸入坐標\n");
            }
			else if (mine[x][y] == '1')//被炸死的條件
			{
				printf("很遺憾,你被炸死了\n");
				DisplayBoard(mine, ROW, COL);
				break;
			}
			else//沒有被炸死,顯示雷的個數(shù)
			{
				//不是雷,就統(tǒng)計x,y坐標周圍有幾個雷
				int c = GetMineCount(mine, x, y);
				show[x][y] = c + '0';//數(shù)字+'0'=字符數(shù)字放置到字符數(shù)組里去
				DisplayBoard(show, ROW, COL);//展示字符數(shù)字——雷的個數(shù)
				//每排查一次都要顯示雷的個數(shù)
				win++;//每排查一次雷,雷的個數(shù)減少一次,距離循環(huán)結(jié)束++一次
			}
		}
		else//玩家輸入非法坐標,重新輸入
		{
			printf("坐標非法,請重新輸入\n");
		}
	}
	//炸死和排排完雷都跳出循環(huán)
	if (win == row * col - EASY_COUNT)//設(shè)置條件只有排完雷才通關(guān)
	{
		printf("恭喜你排雷成功,游戲通關(guān)\n");
		DisplayBoard(mine, ROW, COL);
	}
}

C語言之掃雷游戲?qū)崿F(xiàn)篇,c語言,游戲程序

?????最后,感謝大家的閱讀,后續(xù)可能會函數(shù)遞歸優(yōu)化,若有錯誤和不足,歡迎指正!

迎來新的學期,希望大家繼續(xù)堅持在每天敲代碼的路上。??????學習的小伙伴

代碼---------→【gitee:https://gitee.com/TSQXG】

聯(lián)系---------→【郵箱:2784139418@qq.com】文章來源地址http://www.zghlxwxcb.cn/news/detail-668304.html

到了這里,關(guān)于C語言之掃雷游戲?qū)崿F(xiàn)篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C語言實現(xiàn)簡單的掃雷游戲

    C語言實現(xiàn)簡單的掃雷游戲

    目錄 1 - test.c 2 - game.c 3 - game.h 代碼里的注釋感覺已經(jīng)很清楚啦,就不多講解啦 感謝各位大佬的支持?。?!

    2024年01月22日
    瀏覽(48)
  • C語言:輕松實現(xiàn)掃雷小游戲

    C語言:輕松實現(xiàn)掃雷小游戲

    目錄 一、前言 二、掃雷步驟 1.創(chuàng)建項目 2.設(shè)計整體框架 1.定義數(shù)組長度和雷的個數(shù) 2.game函數(shù)功能 三、頭文件game.h代碼實現(xiàn)? 四、測試文件test.c代碼實現(xiàn) 五、game函數(shù)功能實現(xiàn) 1.初始化棋盤 2.打印棋盤 ?3.布置雷 4. 獲得雷的個數(shù) ?5.排查雷 6.game函數(shù)實現(xiàn)代碼 六、總結(jié) 大家好

    2024年02月03日
    瀏覽(90)
  • 【C】C語言實現(xiàn)掃雷小游戲

    相信大家一定都玩過掃雷小游戲,今天我就帶大家來用C語言實現(xiàn)一個簡易版的掃雷小游戲。 這里我們還是需要三個文件來封裝我們的寫的代碼: test.c ----- 用于我們代碼的測試,以及游戲整體框架的實現(xiàn)。 game .c ------ 用來封裝實現(xiàn)我們游戲的相關(guān)函數(shù)。 game.h ------ 主要用來

    2024年02月11日
    瀏覽(646)
  • 【C語言實現(xiàn)掃雷小游戲——可展開一片】

    【C語言實現(xiàn)掃雷小游戲——可展開一片】

    學習完了函數(shù)和數(shù)組,讓我們做個掃雷小游戲鞏固一下所學的知識把! 使用控制臺操作 通過菜單實現(xiàn)選擇 棋盤為9×9 默認隨機布置10個雷 排查雷 如果排查的位置不是雷,就顯示周圍有幾個雷 排查位置是雷,游戲結(jié)束,玩家失敗 把10個雷全部排除,游戲結(jié)束,玩家成功 掃雷

    2024年02月08日
    瀏覽(91)
  • 帶你實現(xiàn)初階掃雷小游戲—【C語言】

    帶你實現(xiàn)初階掃雷小游戲—【C語言】

    ? 目錄 1. 掃雷游戲?qū)崿F(xiàn)的思路 注意點1? 注意點2? 2. 函數(shù)實現(xiàn)掃雷功能 2.1 初始化棋盤 2.2 顯示棋盤 2.3 設(shè)置雷 2.4 排查雷 2.5 返回附近雷的個數(shù) 3.源碼 3.1 game.h 3.2 game.c? 3.3 test.c 我們這里拿9*9的棋盤(其中包含10個雷)來實現(xiàn)(這里也可以自定義棋盤大小和雷的個數(shù) 》我們這

    2024年02月05日
    瀏覽(104)
  • C語言之掃雷小游戲的實現(xiàn)【含遞歸展開】

    C語言之掃雷小游戲的實現(xiàn)【含遞歸展開】

    掃雷游戲是1992年發(fā)行的一款大眾類益智游戲,對于許多80后、90后來說都是童年的回憶。如今三十年過去了,這款游戲依舊受到很多網(wǎng)友的喜愛,今天我們一起來模擬實現(xiàn)一下掃雷游戲。 本文所用的編譯器是VS2022 這里我們使用模塊化設(shè)計,模塊化設(shè)計就是把各個模塊的代碼分

    2024年02月02日
    瀏覽(92)
  • 【C語言】代碼實現(xiàn) 掃雷 游戲及進階功能(初學者詳解)

    【C語言】代碼實現(xiàn) 掃雷 游戲及進階功能(初學者詳解)

    掃雷游戲的起源可以追溯到20世紀60年代,當時這款游戲是由IBM開發(fā)出來的。在80年代初,微軟公司將其收歸旗下,并將其作為Windows操作系統(tǒng)自帶的一款游戲。自此以后,掃雷成為了Windows用戶最喜歡的休閑游戲之一,也受到了全球范圍內(nèi)的玩家喜愛。 現(xiàn)在,我們使用C語言,來

    2024年01月20日
    瀏覽(27)
  • 【C語言】萬字教學,帶你分步實現(xiàn)掃雷游戲(內(nèi)含遞歸函數(shù)解析),劍指掃雷,一篇足矣

    【C語言】萬字教學,帶你分步實現(xiàn)掃雷游戲(內(nèi)含遞歸函數(shù)解析),劍指掃雷,一篇足矣

    君兮_的個人主頁 勤時當勉勵 歲月不待人 C/C++ 游戲開發(fā) Hello,這里是君兮_,今天更新一篇關(guān)于利用C語言實現(xiàn)掃雷游戲的博客。對于初學者來說,這也是一個非常容易上手的小項目,看完不妨自己試試哦! 廢話不多說,我們直接開始吧! 相信很多人在小時候都玩過掃雷游戲,但

    2024年02月11日
    瀏覽(32)
  • 微信小程序?qū)崿F(xiàn)window經(jīng)典的掃雷游戲

    微信小程序?qū)崿F(xiàn)window經(jīng)典的掃雷游戲

    打開手機游戲列表發(fā)現(xiàn)了一款經(jīng)典的掃雷游戲,在玩的過程中發(fā)現(xiàn)游戲邏輯應(yīng)該不難,想著是不是能自己寫寫這個游戲,后來用了1天實現(xiàn)了整體游戲開發(fā),于是有了這篇文章來總結(jié)整體的游戲開發(fā)思路。 1、游戲為在10*10或其它排序組合網(wǎng)格中找雷 2、網(wǎng)格中隱藏著一定數(shù)量的

    2024年02月09日
    瀏覽(24)
  • C語言實戰(zhàn)——掃雷游戲

    C語言實戰(zhàn)——掃雷游戲

    1.1掃雷游戲的功能說明 使用控制臺實現(xiàn)經(jīng)典的掃雷游戲 游戲可以通過菜單實現(xiàn)繼續(xù)玩或者退出游戲 掃雷的棋盤是9*9的格子 默認隨機布置10個雷 可以排查雷 如果位置不是雷,就顯示周圍有幾個雷 如果位置是雷,就炸死游戲結(jié)束 把除10個雷之外的所有?雷都找出來,排雷成功

    2024年03月15日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包