国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

C語言學習筆記—P12(掃雷游戲<初級>+圖解+題例)

lykops / 2154人閱讀

目錄

?前言:●由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚語成篇,懇望指教!

???????? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——By 作者:新曉·故知

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2021.11.11

?掃雷游戲(初級)編寫:

?創建文件項目:

菜單打印:test.c

?打印棋盤:

?布置雷:

?字符±(*/)ASCII碼 " 0 "=字符

?掃雷游戲(初級)完整代碼:

1.創建頭文件:game.h??

2.創建源文件:? game.c?

3.創建源文件: test.c

4.按照提示運行程序即可?

運行結果示例:

?題例:

遞歸例1:

?遞歸例題2:

?遞歸例題3:

?遞歸例題4:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——Since?新曉-故知

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2021.11.11



?前言:
●由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚語成篇,懇望指教!

???????? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——By 作者:新曉·故知

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2021.11.11


?掃雷游戲(初級)編寫:

?創建文件項目:

菜單打印:test.c

菜單打印  test.c#includevoid menu(){	printf("******掃雷游戲(初級)C語言版********/n");	printf("*************************************/n");	printf("*****  1.Play(輸入1:開始游戲)*****/n");	printf("*****  0.Exit(輸入0:退出游戲)*****/n");	printf("*************************************/n");	printf("/n");	printf("              ——By 作者:新曉·故知/n");}void game(){	printf("掃雷/n");}void test(){	int input = 0;	//srand((unsigned int)time(NULL));	do	{		menu();		printf("請選擇:>");		scanf("%d", &input);		switch (input)		{		case 1:			//掃雷			game();			break;		case 0:			printf("退出游戲/n");			break;		default:			printf("選擇錯誤/n");			break;		}	} while (input);}int main(){	test();	return 0;}

?

?打印棋盤:

1.game.h頭文件的包含#include //#include //#include 符號的聲明#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);2.game.c#include "game.h"void InitBoard(char board[ROWS][COLS], int rows, int cols, char set){	int i = 0;	int j = 0;	for (i = 0; i < rows; i++)	{		for (j = 0; j < cols; j++)		{			board[i][j] = set;		}	}}void DisplayBoard(char board[ROWS][COLS], int row, int col){	//1~9	int i = 0;	int j = 0;	列號的打印	//for (i = 0; i <= col; i++)	//{	//	printf("%d ", i);	//}	//printf("/n");	for (i = 1; i <= row; i++)	{		//printf("%d ", i);//打印行號		for (j = 1; j <= col; j++)		{			printf("%c ", board[i][j]);		}		printf("/n");	}}3.test.c#include "game.h"void menu(){	printf("******掃雷游戲(初級)C語言版********/n");	printf("*************************************/n");	printf("*****  1.Play(輸入1:開始游戲)*****/n");	printf("*****  0.Exit(輸入0:退出游戲)*****/n");	printf("*************************************/n");	printf("/n");	printf("              ——By 作者:新曉·故知/n");}void game(){	 //printf("掃雷/n");	 //創建數組	char mine[ROWS][COLS] = { 0 };//存放布置好的雷的信息	char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息	//初始化mine數組為全"0"	InitBoard(mine, ROWS, COLS, "0");	//初始化show數組為全"*"	InitBoard(show, ROWS, COLS, "*");	打印棋盤	DisplayBoard(mine, ROW, COL);	DisplayBoard(show, ROW, COL);}void test(){	int input = 0;	//srand((unsigned int)time(NULL));	do	{		menu();		printf("請選擇:>");		scanf("%d", &input);		switch (input)		{		case 1:			//掃雷			game();			break;		case 0:			printf("退出游戲!/n");			break;		default:			printf("選擇錯誤,請重新輸入!/n");			break;		}	} while (input);}int main(){	test();	return 0;}

??

?

?布置雷:

布置雷:1.game.h//頭文件的包含#include #include //#include //符號的聲明#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 mine[ROWS][COLS], int row, int col);2.gamer.c#include "game.h"void InitBoard(char board[ROWS][COLS], int rows, int cols, char set){	int i = 0;	int j = 0;	for (i = 0; i < rows; i++)	{		for (j = 0; j < cols; j++)		{			board[i][j] = set;		}	}}void DisplayBoard(char board[ROWS][COLS], int row, int col){	//1~9	int i = 0;	int j = 0;	//列號的打印	for (i = 0; i <= col; i++)	{		printf("%d ", i);	}	printf("/n");	for (i = 1; i <= row; i++)	{		printf("%d ", i);//打印行號		for (j = 1; j <= col; j++)		{			printf("%c ", board[i][j]);		}		printf("/n");	}}void SetMine(char mine[ROWS][COLS], int row, int col){	int count = 10; 此處控制布置雷的個數!	while (count)	{		int x = rand() % row + 1;		int y = rand() % col + 1;		if (mine[x][y] == "0")		{			mine[x][y] = "1";			count--;		}	}}3.test.c#include "game.h"void menu(){	printf("******掃雷游戲(初級)C語言版********/n");	printf("*************************************/n");	printf("*****  1.Play(輸入1:開始游戲)*****/n");	printf("*****  0.Exit(輸入0:退出游戲)*****/n");	printf("*************************************/n");	printf("/n");	printf("              ——By 作者:新曉·故知/n");}void game(){	 //printf("掃雷/n");	 //創建數組	char mine[ROWS][COLS] = { 0 };//存放布置好的雷的信息	char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息	//初始化mine數組為全"0"	InitBoard(mine, ROWS, COLS, "0");	//初始化show數組為全"*"	InitBoard(show, ROWS, COLS, "*");	打印棋盤	//DisplayBoard(mine, ROW, COL); //真正進行排雷會屏蔽此語句,此語句可查看雷的位置坐標	//DisplayBoard(show, ROW, COL); //真正進行排雷會屏蔽此語句,此語句可查看雷的位置坐標	//布置雷	SetMine(mine, ROW, COL);	DisplayBoard(mine, ROW, COL);}void test(){	int input = 0;	srand((unsigned int)time(NULL));//時間隨機生成數	do	{		menu();		printf("請選擇:>");		scanf("%d", &input);		switch (input)		{		case 1:			//掃雷			game();			break;		case 0:			printf("退出游戲!/n");			break;		default:			printf("選擇錯誤,請重新輸入!/n");			break;		}	} while (input);}int main(){	test();	return 0;}

?

?知識點:字符±(*/)ASCII碼 " 0 "=字符

?

?

?

?掃雷游戲(初級)完整代碼:

1.創建頭文件:game.h??

代碼如下:

game.h//頭文件的包含#include #include #include //符號的聲明#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 mine[ROWS][COLS], int row, int col);//排查雷void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);

2.創建源文件:? game.c?

代碼如下:

game.c#include "game.h"void InitBoard(char board[ROWS][COLS], int rows, int cols, char set){	int i = 0;	int j = 0;	for (i = 0; i < rows; i++)	{		for (j = 0; j < cols; j++)		{			board[i][j] = set;		}	}}void DisplayBoard(char board[ROWS][COLS], int row, int col){	//1~9	int i = 0;	int j = 0;	//列號的打印	for (i = 0; i <= col; i++)	{		printf("%d ", i);	}	printf("/n");	for (i = 1; i <= row; i++)	{		printf("%d ", i);//打印行號		for (j = 1; j <= col; j++)		{			printf("%c ", board[i][j]);		}		printf("/n");	}}void SetMine(char mine[ROWS][COLS], int row, int col){	int count = EASY_COUNT;//此處控制布置雷的個數,最終版將會設置成時間隨機生成雷的個位數	while (count)	{		int x = rand() % row + 1;		int y = rand() % col + 1;		if (mine[x][y] == "0")		{			mine[x][y] = "1";			count--;		}	}}static int get_mine_count(char mine[ROWS][COLS], int x, int y){	return mine[x - 1][y] +		mine[x - 1][y - 1] +		mine[x][y - 1] +		mine[x + 1][y - 1] +		mine[x + 1][y] +		mine[x + 1][y + 1] +		mine[x][y + 1] +		mine[x - 1][y + 1] - 8 * "0"; //n + "0" 可以得到字符n !!!}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("請輸入要排查雷的坐標:>");		scanf("%d %d", &x, &y);		if (x >= 1 && x <= row && y >= 1 && y <= col)		{			if (mine[x][y] == "1")			{				printf("很遺憾,你被炸死了!/n");				DisplayBoard(mine, row, col);				break;			}			else			{				//計算x,y坐標周圍有幾個雷				int n = get_mine_count(mine, x, y);				show[x][y] = n + "0";                  //n + "0" 可以得到字符n !!!				DisplayBoard(show, row, col);				win++;			}		}		else		{			printf("輸入坐標非法,無法排雷,請重新輸入!/n");		}	}	if (win == row * col - EASY_COUNT)	{		printf("恭喜你,排雷成功!/n");		DisplayBoard(mine, row, col);	}}

3.創建源文件: test.c

代碼如下:

test.c#define  _CRT_SECURE_NO_WARNINGS#include "game.h"void menu(){	printf("******掃雷游戲(初級)C語言版********/n");	printf("*************************************/n");	printf("*****  1.Play(輸入1:開始游戲)*****/n");	printf("*****  0.Exit(輸入0:退出游戲)*****/n");	printf("*************************************/n");	printf("/n");	printf("              ——By 作者:新曉·故知/n");}void game(){	 //printf("掃雷/n");	 //創建數組	char mine[ROWS][COLS] = { 0 };//存放布置好的雷的信息	char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息	//初始化mine數組為全"0"	InitBoard(mine, ROWS, COLS, "0");	//初始化show數組為全"*"	InitBoard(show, ROWS, COLS, "*");	打印棋盤	//DisplayBoard(mine, ROW, COL); //真正進行排雷會屏蔽此語句,此語句可查看雷的位置坐標	//DisplayBoard(show, ROW, COL); //真正進行排雷會屏蔽此語句,此語句可查看雷的位置坐標	//布置雷	SetMine(mine, ROW, COL);	//DisplayBoard(mine, ROW, COL);	//DisplayBoard(mine, ROW, COL);	//排雷	FindMine(mine, show, ROW, COL);}void test(){	int input = 0;	srand((unsigned int)time(NULL));//時間隨機生成數	do	{		menu();		//printf("請選擇:>");		printf("請選擇游戲開始或結束:>/n");		printf("#輸入數字1代表游戲開始,輸入數字0代表游戲結束#/n");		printf("#坐標輸入方式:數字-空格鍵-數字#/n");		scanf("%d", &input);		switch (input)		{		case 1:			//掃雷			game();			break;		case 0:			printf("退出游戲!/n");			break;		default:			printf("選擇錯誤,請重新輸入!/n");			break;		}	} while (input);}int main(){	test();	return 0;}

4.按照提示運行程序即可?



運行結果示例:

使用說明:
(1)紅框標記語句可控制“雷”的位置坐標的顯示與隱藏:


(2)紅框標記語句可更改“雷”的數量 :

因本程序設置棋盤大小為9*9,故此處數量區間為[0,81],

(3)紅框標記語句可進行棋盤大小更改 :

將數字9更改即可,數字9代表棋盤操作大小,ROW+2代表棋盤總大小,

即操作棋盤大小為9*9,總棋盤大小(加上外框)為11*11

?

?題例:

遞歸例1:

#include int Fun(int n){    if (n == 5)        return 2;    else        return 2 * Fun(n + 1);}int main(){    int ret = Fun(2);    printf("%d/n", ret);    return 0;}

?

?

?遞歸例題2:

//編寫一個函數 reverse_string(char* string)(遞歸實現)//實現:將參數字符串中的字符反向排列,不是逆序打印。//要求:不能使用C函數庫中的字符串操作函數。//比如 ://char arr[] = "abcdef";//逆序之后數組的內容變成:fedcba#include int my_strlen(char* s){	int count = 0;	while (*s != "/0")	{		count++;		s++;	}	return count;}//[a b c d e f g /0]遞歸版本void reverse_string(char* arr){	int len = my_strlen(arr);	char tmp = *arr;	*arr = *(arr + len - 1);	*(arr + len - 1) = "/0";	if(my_strlen(arr+1)>1)		reverse_string(arr+1);		*(arr + len - 1) = tmp;}int main(){	char arr[] = "abcdefg";	reverse_string(arr);	printf("%s/n", arr);//fedcba	return 0;}

參數用指針的形式void reverse_string(char* str){	char* left = str;	char* right = str + my_strlen(str) - 1;	while (left

?

參數是數組的形式void reverse_string(char arr[]){	int left = 0;	int right = my_strlen(arr)-1;	//交換	while (left

?遞歸例題3:

寫一個遞歸函數DigitSum(n),輸入一個非負整數,返回組成它的數字之和例如,調用DigitSum(1729),則應該返回1 + 7 + 2 + 9,它的和是19輸入:1729,輸出:19int DigitSum(size_t n){	if (n <= 9)		return n;	else		return DigitSum(n / 10) + n % 10;}int main(){	size_t num = 0;	scanf("%u", &num);	int ret = DigitSum(num);	printf("%d/n", ret);	return 0;}

?

?遞歸例題4:

double Pow(int n, int k){	if (k == 0)		return 1;	else if (k > 0)		return n * Pow(n, k - 1);	else		return 1.0 / Pow(n, -k);}int main(){	int n = 0;	int k = 0;	scanf("%d %d", &n, &k);	double ret = Pow(n, k);	printf("%lf/n", ret);	return 0;}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——Since?新曉-故知

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2021.11.11

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123189.html

相關文章

  • C語言學習筆記—P17(函數棧幀的創建與銷毀<超詳解版>+圖解+題例

    摘要:目錄前言由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚語成篇,懇望指教前言由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚語成篇,懇望指教作者新曉故知作者新曉故知那些代碼背后的故事那些代碼背后的故事通過 目錄 前言:●由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚...

    gnehc 評論0 收藏0
  • C語言學習筆記—P15(指針<初階>+圖解+題例

    摘要:變量占用個字節的空間,這里是將的個字節的第一個字節的地址存放在變量中,就是一個之指針變量。是指針變量作者新曉故知總結指針變量,用來存放地址的變量。 目錄 前言:●由于作者水平有限,文章難免存在謬誤之處,敬請讀者斧正,俚語成篇,懇望指教! ???????? ? ? ?? ? ? ? ? ? ...

    weknow619 評論0 收藏0
  • C語言實現初級掃雷

    摘要:文章目錄一游戲簡介二代碼實現調用函數打印菜單函數函數初始化函數布置雷函數排雷函數三總代碼一游戲簡介一款小游戲,一張棋盤可以自己設計,,,都可以,或是添加一些自己喜歡的元素布滿許多未知是雷或是安全的格子,輸入坐標,若觸雷,游戲結束,反之,顯 文章目錄 一、游戲簡介 二、代碼實現 1.調用tes...

    Rango 評論0 收藏0
  • C/C++游戲項目詳細教學:《掃雷

    摘要:掃雷最原始的版本可以追溯到年一款名為方塊的游戲。兩年后,湯姆安德森在的基礎上又編寫出了游戲地雷,由此奠定了現代掃雷游戲的雛形。年,微軟公司的羅伯特杜爾和卡特約翰遜兩位工程師在系統上加載了該游戲,掃雷游戲才正式在全世界推廣開來。 掃雷最原始的版本可以追溯到1973年一款名為方塊的游戲。 不久,...

    meteor199 評論0 收藏0
  • C語言實現入門級小游戲——掃雷

    摘要:上一期咱們用語言實現了三子棋的小游戲語言實現三子棋今天我們再來寫個掃雷的游戲,說起掃雷,相信大家都不陌生,可能許多朋友還是玩掃雷的高手。 ? ? ?上一期咱們用C語言實現了三子棋的小游戲? C語言實現三子棋? ? ? ?今天我們再來寫個掃雷的游戲,說起掃雷,相信大家都不陌生,可能許多朋友還是...

    nevermind 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<