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

C語言初階之掃雷代碼詳解(含遞歸展開)

這篇具有很好參考價值的文章主要介紹了C語言初階之掃雷代碼詳解(含遞歸展開)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C語言初階之掃雷代碼詳解(含遞歸展開)

掃雷代碼思路

主要分為下面幾個過程:
1、建立棋盤
2、初始化棋盤
3、設(shè)置棋盤雷數(shù)
4、打印棋盤
5、玩家找雷
6、判定勝負

頭文件解析

文件名:game.h
代碼如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ROW 9//展示的雷區(qū)棋盤行數(shù)
#define COL 9//展示的雷區(qū)棋盤列數(shù)

#define ROWS ROW+2//實際的雷區(qū)棋盤行數(shù)
#define COLS COL+2//實際的雷區(qū)棋盤列數(shù)



void InitBoard(char board[ROWS][COLS],char ret);//初始化棋盤


int Select();//難易選項函數(shù)


void SetMine(char board[ROWS][COLS], int num);//布雷


void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS],int num);//找雷

在game頭文件中,首先包含會使用到的庫頭文件,這里的ROW以及COL是雷區(qū)的行和列大小,也就是說這是玩家實際能看到的行數(shù)及列數(shù),而ROWS及COLS是實際棋盤大小,這樣做的目的是為了方便后面對找到周圍雷數(shù)函數(shù)的編寫,剩下的函數(shù)聲明是在test文件需要調(diào)用的函數(shù)聲明,也就是說,在test文件中需要調(diào)用什么函數(shù),在頭文件中就聲明什么函數(shù),比如,在代碼調(diào)試過程中,如果需要使用打印函數(shù),則需要在此文件中寫聲明,否則就調(diào)用不了,因為每個人的寫法不一樣,作者的打印函數(shù)都是被找雷函數(shù)調(diào)用,所以聲明中并沒有添加,如果需要使用,小伙伴記得自己添加哦!??!

主函數(shù)解析

首先先看主函數(shù)test.c文件
代碼如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
void menu()
{
	printf("*******************************************************************\n");
	printf("********       1.玩游戲               2.退出游戲          *********\n");
	printf("*******************************************************************\n");
	printf("請輸入你的選項:");
}
void game()
{


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

	InitBoard(mine, '0');
	InitBoard(show, '*');

	int num = Select();
	SetMine(mine, num);
	
	FindMine(mine, show, num);

}
int main()
{
	int n = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			game();
			printf("再來一局嗎?\n");
			printf("1.再來一局   2. 退出游戲\n");
			int again = 0;
			scanf("%d", &again);
			if (again == 1)
			{
				break;
			}
			else
				n = 0;
			break;
		case 2:
			printf("退出游戲");
			break;
		default:
			printf("選擇錯誤,請重新選擇\n");
			break;
		}
	} while (n);
}

第一個menu是菜單函數(shù),其目的為引導(dǎo)玩家選擇選項,這里作者沒有做這么多花里胡哨的菜單界面,簡單一點,重點放在后面
第二個game是游戲函數(shù),其中包括建立棋盤,初始化棋盤、布雷、找雷的函數(shù)調(diào)用以及難易選項函數(shù)的調(diào)用;這里使用num記錄難易值,也就是雷數(shù),然后再進行布雷和找雷的傳參,至于打印棋盤,作者放在找雷函數(shù)中,后面會提到
第三個為主函數(shù),首先設(shè)立了一個隨機數(shù)種子,類似之前的三子棋,同樣的,這里我們使用一個do…while循環(huán),首先調(diào)用菜單打印,再讓玩家輸入菜單選項,case1進入游戲,case2退出游戲,default重新選;需要注意的是,在game函數(shù)結(jié)束時,會再次提示玩家是否進入游戲,輸入1則再玩一把,其他數(shù)字則退出。
菜單效果:
C語言初階之掃雷代碼詳解(含遞歸展開)

函數(shù)文件解析

①初始化函數(shù)(InitBoard)

代碼如下:

void InitBoard(char board[ROWS][COLS],char ret)
{
	int i = 0, j = 0;
	for (i = 0; i < ROWS; i++)
	{
		for (j = 0; j < COLS; j++)
		{
			board[i][j] = ret;
		}
	}
}

這個函數(shù)的作用是將棋盤數(shù)組的值利用一個嵌套循環(huán)初始化為傳過來的值。

②打印函數(shù)

這個棋盤的打印可以有多種設(shè)計,以下有兩個版本,一個是簡易版的,另一個是稍微優(yōu)化的,你也可以發(fā)動自己的想象力,設(shè)計出更美觀的棋盤。
簡易版代碼如下:

void DisplayBoard(char board[ROWS][COLS])
{
	printf("--------掃雷游戲--------\n");
	int i = 0, j = 0;
	for (i = 0; i <= COL; i++)//打印列標(biāo)
	{
		printf("%2d", i);
	}
	printf("\n");
	for (i = 1; i <= ROW; i++)
	{
		printf("%2d", i);
		for (j = 1; j <= COL; j++)
		{
			printf("%2c", board[i][j]);
		}
		printf("\n");//打印一行后換行
	}
	printf("\n");
}

效果如下:
C語言初階之掃雷代碼詳解(含遞歸展開)

優(yōu)化版代碼如下:

void DisplayBoard(char board[ROWS][COLS])
{
	printf("   --------------掃雷游戲--------------\n");
	int i = 0, j = 0;
	printf("   ");
	for (i = 1; i <= COL; i++)
	{
		printf("%3d ", i);
	}
	printf("\n");
	printf("   +");
	for (i = 0; i < COL; i++)
	{
		printf("---+");
	}
	printf("\n");
	for (i = 1; i <= ROW; i++)
	{
		printf("%2d", i);
		printf(" |");
		for (j = 1; j <= COL; j++)
		{
			printf(" %c |", board[i][j]);
		}
		printf("\n");
		printf("   +");
		for (j = 0; j < COL; j++)
		{
			printf("---+");
		}
		printf("\n");
	}

}

效果圖如下:
C語言初階之掃雷代碼詳解(含遞歸展開)
其實具體的代碼實現(xiàn)并不復(fù)雜,看你自己的需要,可以不斷調(diào)試這個排版。

③難易選項函數(shù)(Select)

代碼如下:

int Select()
{
	system("cls");//清空屏幕
	int num = 0;
	while (1)
	{
		printf("請新選擇難度:\n");
		printf("1.簡單模式:5個雷	2.中等模式:10個雷	3.困難模式:15個雷	4.自定義難度(自由輸入雷的個數(shù))\n ");
		int select = 0;
		getchar();
		scanf("%d", &select);
		switch (select)
		{
		case 1:
			printf("簡單模式:5個雷\n");
			num = 5;
			return num;
		case 2:
			printf("中等模式:10個雷\n");
			num = 15;
			return num;
		case 3:
			printf("困難模式:15個雷\n");
			num = 30;
			return num;
		case 4:
			printf("自定義難度:");
			printf("請輸入布置雷的個數(shù):\n");
			getchar();
			int intput = 0;
			scanf("%d", &intput);
			num = intput;
			return num;
		default:
			printf("輸入錯誤,請重新選擇:\n");
			break;
		}
	}
	
}

這段代碼主要目的是通過玩家選擇這四個選項進而返回雷值,然后就可以作為布雷和找雷的雷參數(shù),主要有簡易5個雷、中等10個雷、困難15個雷、自定義雷4中。
效果如下:
C語言初階之掃雷代碼詳解(含遞歸展開)

④布雷(SetMine)

代碼如下:

void SetMine(char board[ROWS][COLS], int num)
{
	int x = 0, y = 0;
	int count = 0;
	while(count < num)
	{
		x = 1 + rand() % ROW;//1-9隨機值
		y = 1 + rand() % COL;//1-9隨機值
		if (board[x][y] == '0')
		{
			board[x][y] = '1';//布置雷點
			count++;
		}
	}
}

這里使用了隨機數(shù)1-9來生成雷的位置,設(shè)置為字符0才能布雷即可,字符1為雷。
效果如下:
簡單模式
C語言初階之掃雷代碼詳解(含遞歸展開)
中等模式
C語言初階之掃雷代碼詳解(含遞歸展開)
困難模式
C語言初階之掃雷代碼詳解(含遞歸展開)
自定義模式
C語言初階之掃雷代碼詳解(含遞歸展開)

⑤獲取周邊雷數(shù)(GetMine)

代碼如下:

int GetMine(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';
}

這里我們看下面這個圖:
C語言初階之掃雷代碼詳解(含遞歸展開)
這是該點位相對位置的表示,而且棋盤表示的是字符型數(shù)組所以這里返回的是周圍8個點位元素值相加再減去8乘上字符0??的ascii碼值,即為周圍雷個數(shù)的雷數(shù)的字符ascii碼值。
比如下面這個標(biāo)識的位置周圍有1個雷:
C語言初階之掃雷代碼詳解(含遞歸展開)

⑥展開函數(shù)(Expand)

代碼如下:

Expand(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y)
{

	if (x >= 1 && x <= ROW && y >= 1 && y <= COL)//防止越界
	{
		int count = GetMine(mine, x, y);//獲取該位置周圍雷數(shù)
		if (count == 0)//周圍沒雷
		{
			show[x][y] = ' ';//賦值為空字符
			int i = 0, j = 0;
			for (i = x - 1; i <= x + 1; i++)//限制行
			{
				for (j = y - 1; j <= y + 1; j++)//限制列
				{
					if (show[i][j] == '*' && (i != x || j != y))//防止重復(fù)訪問
					{
						Expand(mine, show, i, j);//遞歸調(diào)用
					}

				}
			}
		}
		else
		{
			show[x][y] = count + '0';//顯示雷數(shù)
		}
	}
}

展開函數(shù)的作用是為了達到周圍沒雷時直接展開周圍所有空間,利用遞歸不斷向外展開,直至周圍有雷為止
效果如下:
C語言初階之掃雷代碼詳解(含遞歸展開)

判定勝負函數(shù)(is_win)

代碼如下:

int is_win(char show[ROWS][COLS])
{
	int count1 = 0;
	int i = 0, j = 0;
	for (i = 1; i <= ROW; i++)
	{
		for (j = 1; j <= COL; j++)
		{
			if (show[i][j] != '*')
			{
				count1++;
			}
		}
	}
	return count1;
}

此函數(shù)是用于每次玩家輸入坐標(biāo)后,調(diào)用此函數(shù)返回不等于字符*的值,以此判定勝負。

找雷函數(shù)(FindMine)

代碼如下:

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int num)
{
	system("cls");//清空屏幕
	DisplayBoard(show);//打印展示的棋盤
	int x = 0, y = 0;
	int win = 0;
	while (win < (ROW * COL - num))//條件為win值是否到達界限值
	{
		printf("請輸入排查雷的坐標(biāo):");
		scanf("%d%d", &x, &y);
		if (x >= 1 && x <= ROW && y >= 1 && y <= COL)//防止越界
		{
			if (mine[x][y] == '1')//踩雷
			{
				system("cls");
				printf("很遺憾,你被炸死了\n");
				DisplayBoard(mine);//打印布雷棋盤
				break;
			}
			else//不是雷
			{

				Expand(mine, show, x, y);//展開周圍
				system("cls");//清空屏幕
				win = is_win(show);//更新win值
				DisplayBoard(show);//打印玩家棋盤
			}
		}
		else
		{

			printf("坐標(biāo)非法,請重新輸入:\n");//越界重新輸入
		}
	}
	if (win == (ROW * COL - num))//判定win值是否到達界限值
	{
		system("cls");//清空屏幕
		printf("恭喜你排雷成功\n");
		DisplayBoard(show);//打印玩家棋盤
	}
}

這里的找雷函數(shù)包含了游戲結(jié)束的判定,解析已在備注中
效果圖如下:
簡單模式
C語言初階之掃雷代碼詳解(含遞歸展開)
自定義模式
C語言初階之掃雷代碼詳解(含遞歸展開)

全部代碼

game.h

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>//清屏函數(shù)的頭文件
#include <time.h>//srand函數(shù)的頭文件

#define ROW 9//方便修改棋盤大小
#define COL 9

#define ROWS ROW+2
#define COLS COL+2


//聲明初始化雷盤函數(shù)
void InitBoard(char board[ROWS][COLS],char ret);


int Select();

//聲明布置雷函數(shù)
void SetMine(char board[ROWS][COLS], int num);

//聲明排查雷的函數(shù)
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS],int num);

game.c

#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"


void InitBoard(char board[ROWS][COLS],char ret)
{
	int i = 0, j = 0;
	for (i = 0; i < ROWS; i++)
	{
		for (j = 0; j < COLS; j++)
		{
			board[i][j] = ret;
		}
	}
}
//void DisplayBoard(char board[ROWS][COLS])
//{
//	printf("--------掃雷游戲--------\n");
//	int i = 0, j = 0;
//	for (i = 0; i <= COL; i++)//打印列標(biāo)
//	{
//		printf("%2d", i);
//	}
//	printf("\n");
//	for (i = 1; i <= ROW; i++)
//	{
//		printf("%2d", i);
//		for (j = 1; j <= COL; j++)
//		{
//			printf("%2c", board[i][j]);
//		}
//		printf("\n");//打印一行后換行
//	}
//	printf("\n");
//}


void DisplayBoard(char board[ROWS][COLS])
{
	printf("   --------------掃雷游戲--------------\n");
	int i = 0, j = 0;
	printf("   ");
	for (i = 1; i <= COL; i++)
	{
		printf("%3d ", i);
	}
	printf("\n");
	printf("   +");
	for (i = 0; i < COL; i++)
	{
		printf("---+");
	}
	printf("\n");
	for (i = 1; i <= ROW; i++)
	{
		printf("%2d", i);
		printf(" |");
		for (j = 1; j <= COL; j++)
		{
			printf(" %c |", board[i][j]);
		}
		printf("\n");
		printf("   +");
		for (j = 0; j < COL; j++)
		{
			printf("---+");
		}
		printf("\n");
	}

}


int Select()
{
	system("cls");
	int num = 0;
	while (1)
	{
		printf("請新選擇難度:\n");
		printf("1.簡單模式:5個雷	2.中等模式:10個雷	3.困難模式:15個雷	4.自定義難度(自由輸入雷的個數(shù))\n ");
		int select = 0;
		getchar();
		scanf("%d", &select);
		switch (select)
		{
		case 1:
			printf("簡單模式:5個雷\n");
			num = 5;
			return num;
		case 2:
			printf("中等模式:10個雷\n");
			num = 15;
			return num;
		case 3:
			printf("困難模式:15個雷\n");
			num = 30;
			return num;
		case 4:
			printf("自定義難度:");
			printf("請輸入布置雷的個數(shù):\n");
			getchar();//清楚緩存區(qū)
			int intput = 0;
			scanf("%d", &intput);
			num = intput;
			return num;
		default:
			printf("輸入錯誤,請重新選擇:\n");
			break;
		}
	}
	
}


void SetMine(char board[ROWS][COLS], int num)
{
	int x = 0, y = 0;
	int count = 0;
	while(count < num)
	{
		x = 1 + rand() % ROW;
		y = 1 + rand() % COL;
		if (board[x][y] == '0')
		{
			board[x][y] = '1';
			count++;
		}
	}
}



int GetMine(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';
}


Expand(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y)
{

	if (x >= 1 && x <= ROW && y >= 1 && y <= COL)
	{
		int count = GetMine(mine, x, y);
		if (count == 0)
		{
			show[x][y] = ' ';
			int i = 0, j = 0;
			for (i = x - 1; i <= x + 1; i++)
			{
				for (j = y - 1; j <= y + 1; j++)
				{
					if (show[i][j] == '*' && (i != x || j != y))
					{
						Expand(mine, show, i, j);
					}

				}
			}
		}
		else
		{
			show[x][y] = count + '0';
		}
	}
}


int is_win(char show[ROWS][COLS])
{
	int count1 = 0;
	int i = 0, j = 0;
	for (i = 1; i <= ROW; i++)
	{
		for (j = 1; j <= COL; j++)
		{
			if (show[i][j] != '*')
			{
				count1++;
			}
		}
	}
	return count1;
}

void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int num)
{
	system("cls");
	DisplayBoard(show);
	int x = 0, y = 0;
	int win = 0;
	while (win < (ROW * COL - num))
	{
		printf("請輸入排查雷的坐標(biāo):");
		scanf("%d%d", &x, &y);
		if (x >= 1 && x <= ROW && y >= 1 && y <= COL)
		{
			if (mine[x][y] == '1')
			{
				system("cls");
				printf("很遺憾,你被炸死了\n");
				DisplayBoard(mine);
				break;
			}
			else
			{

				Expand(mine, show, x, y);
				system("cls");
				win = is_win(show);
				DisplayBoard(show);
			}
		}
		else
		{

			printf("坐標(biāo)非法,請重新輸入:\n");
		}
	}
	if (win == (ROW * COL - num))
	{
		system("cls");
		printf("恭喜你排雷成功\n");
		DisplayBoard(show);
	}
}


test.c

#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
void menu()
{
	printf("*******************************************************************\n");
	printf("********       1.玩游戲               2.退出游戲          *********\n");
	printf("*******************************************************************\n");
	printf("請輸入你的選項:");
}
void game()
{


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


	InitBoard(mine, '0');
	InitBoard(show, '*');




	int num = Select();
	SetMine(mine, num);


	FindMine(mine, show, num);

}
int main()
{
	int n = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			game();
			printf("再來一局嗎?\n");
			printf("1.再來一局   2. 退出游戲\n");
			int again = 0;
			scanf("%d", &again);
			if (again == 1)
			{
				break;
			}
			else
				n = 0;
			break;
		case 2:
			printf("退出游戲");
			break;
		default:
			printf("選擇錯誤,請重新選擇\n");
			break;
		}
	} while (n);
}


結(jié)語

近期更新大量C語言的博客,希望大家多支持?。?!

有興趣的小伙伴可以關(guān)注作者,如果覺得內(nèi)容不錯,請給個一鍵三連吧,蟹蟹你喲?。。?br> 制作不易,如有不正之處敬請指出
感謝大家的來訪,UU們的觀看是我堅持下去的動力
在時間的催化劑下,讓我們彼此都成為更優(yōu)秀的人吧?。。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-438030.html

到了這里,關(guān)于C語言初階之掃雷代碼詳解(含遞歸展開)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【C語言】小游戲-掃雷(清屏+遞歸展開+標(biāo)記)

    【C語言】小游戲-掃雷(清屏+遞歸展開+標(biāo)記)

    大家好,我是深魚~ 目錄 一、游戲介紹 二、文件分裝 ?三、代碼實現(xiàn)步驟 1.制作簡易游戲菜單 ?2. 初始化棋盤(11*11) ?3.打印棋盤(9*9) 4.布置雷? ?5.計算(x,y)周圍8個坐標(biāo)的和? 6.排查雷? ?1清屏后打印棋盤 2遞歸展開 3標(biāo)記雷 四、完整代碼 game.h:相關(guān)函數(shù)的聲明,整個代碼要引用

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

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

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

    2024年02月02日
    瀏覽(92)
  • 入門C語言第三話:數(shù)組之實戰(zhàn)篇——掃雷(進階版——圖形化界面,遞歸展開,播放音樂與音效,標(biāo)記取消雷,記錄雷的個數(shù),鼠標(biāo)點擊,文末附有完整代碼)

    入門C語言第三話:數(shù)組之實戰(zhàn)篇——掃雷(進階版——圖形化界面,遞歸展開,播放音樂與音效,標(biāo)記取消雷,記錄雷的個數(shù),鼠標(biāo)點擊,文末附有完整代碼)

    ?不為模糊不清的未來過分擔(dān)憂,只為清清楚楚的現(xiàn)在奮發(fā)圖強。 ?如果思路不是特別清晰的兄弟,建議多看一下基礎(chǔ)版掃雷:數(shù)組之實戰(zhàn)篇——帶你從0到1實現(xiàn)掃雷(簡易版) ?如果EasyX圖形庫不是特別明白:可以看一下這篇文章:入門EasyX圖形庫(帶你進入不一樣的程序

    2024年02月09日
    瀏覽(26)
  • “純C”實現(xiàn)——掃雷游戲(遞歸實現(xiàn)展開功能)

    “純C”實現(xiàn)——掃雷游戲(遞歸實現(xiàn)展開功能)

    ??游戲動畫演示 ??掃雷實現(xiàn)思路 ??棋盤實現(xiàn) ??布置雷實現(xiàn) ??玩家掃雷實現(xiàn) ??帶展開功能的掃雷 ??小結(jié)語 ??text.c文件 ??game.h文件 ??game.c文件 游戲?qū)崿F(xiàn)完成的模樣: 實現(xiàn)掃雷游戲的前提是要知道: 掃雷游戲的玩法 (會玩的跳過這步) 掃雷游戲也就是排雷,讓玩家點

    2024年02月03日
    瀏覽(24)
  • 童年回憶--掃雷(包括標(biāo)記功能和遞歸展開)--萬字講解讓你學(xué)會掃雷制作

    童年回憶--掃雷(包括標(biāo)記功能和遞歸展開)--萬字講解讓你學(xué)會掃雷制作

    魔王的介紹:??????一名雙非本科大一小白。 魔王的目標(biāo):??努力趕上周圍卷王的腳步。 魔王的主頁:??????大魔王.?????? ?????大魔王與你分享:人生人山人海人來人往,自己自尊自愛自由自在。 小時候我們在家里剛買電腦的時候,網(wǎng)絡(luò)還不是很發(fā)達(兩三

    2023年04月14日
    瀏覽(18)
  • C語言300行代碼實現(xiàn)掃雷(可展開+可標(biāo)記+可更改困難級別+內(nèi)附圖形界面版本)

    C語言300行代碼實現(xiàn)掃雷(可展開+可標(biāo)記+可更改困難級別+內(nèi)附圖形界面版本)

    掃雷是一個經(jīng)典的游戲,是一個益智類小游戲,在80、90年代曾風(fēng)靡一時,當(dāng)然現(xiàn)在也是十分受歡迎; 廢話不多說; 讓我們來了解一下如何用C語言去實現(xiàn)它吧?。?!(?′?`?) 運行環(huán)境:VS2019 圖形化界面版本 先實現(xiàn)一個初級版本的: 1、我們得有一個9*9的棋盤; 2、我們在棋

    2024年01月25日
    瀏覽(23)
  • C語言初階之三子棋

    C語言初階之三子棋

    首先我們建立game.h,game.c,test.c三個文件,如下圖 在game.h文件中我們引用需要使用到的頭文件和定義標(biāo)識符以及函數(shù)定義,其余兩個文件包含game.h文件即可,即#include\\\"game.h\\\"。 game.h代碼如下: 其中ROW和COL兩個標(biāo)識符定義的是棋盤的行和列大小,方便我們在寫函數(shù)和使用是重復(fù)使

    2024年02月03日
    瀏覽(14)
  • C語言初階之轉(zhuǎn)義字符

    C語言初階之轉(zhuǎn)義字符

    轉(zhuǎn)義字符(Escape character) ,所有的ASCII碼都可以用“”加數(shù)字(一般是8進制數(shù)字)來表示。而C語言中定義了一些字母前加\\\"\\\"來表示常見的那些不能顯示的ASCII字符,如\\0,t,n等,就稱為轉(zhuǎn)義字符;在平常的代碼編寫中,printf函數(shù)經(jīng)常會用到。 轉(zhuǎn)義字符雖然由兩個及兩個以上

    2023年04月10日
    瀏覽(20)
  • C語言初階之?dāng)?shù)據(jù)類型

    C語言初階之?dāng)?shù)據(jù)類型

    ? 1.1 整形 ? ? ? ?首先在C語言中整型分為int、short、long、long long、float、double、long double、char,最大的特點就是 在不同平臺或編譯器下所分配的內(nèi)存空間不同,分為32位/64位平臺,作者在這主要以64位為例 。 (1)整形int(4字節(jié)) 取值范圍: -2,147,483,648 到 2,147,483,647 無符號整

    2024年02月01日
    瀏覽(21)
  • C語言初階之常量和變量

    C語言初階之常量和變量

    在C程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。它們可與數(shù)據(jù)類型結(jié)合起來分類。例如,可分為整型常量、整型變量、浮點常量、浮點變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中, 直接常量是可以不經(jīng)說明而直接引用的,而符

    2024年02月03日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包