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

C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1 -> test.c

2 -> game.c

3 -> game.h



C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲,c語(yǔ)言,游戲

1 -> test.c

#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"

void menu()
{
	printf("************************************\n");
	printf("*********       1.play      ********\n");
	printf("*********       0.exit      ********\n");
	printf("************************************\n");
}

void game()
{
	//show數(shù)組為排查出的雷的信息
	char show[ROWS][COLS] = { 0 };
	//mine數(shù)組為布置好的雷的信息
	char mine[ROWS][COLS] = { 0 };

	//初始化棋盤(pán)
	InitBoard(show, ROWS, COLS, '*');
	InitBoard(mine, ROWS, COLS, '0');

	//打印棋盤(pán)
	DisplayBoard(show, ROW, COL);

	//布置雷
	SetMine(mine, ROW, COL);
	//DisplayBoard(mine, ROW, COL);

	//排查雷
	FineMine(mine, show, ROW, COL);
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("請(qǐng)選擇:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戲\n");
			break;
		default:
			printf("輸入錯(cuò)誤,請(qǐng)重新輸入。\n");
			break;
		}

	} while (input);

	return 0;
}

2 -> game.c

#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"

//初始化棋盤(pán)
void InitBoard(char board[ROWS][ROWS], int rows, int cols, char set)
{
	memset(&board[0][0], set, rows * cols * sizeof(board[0][0]));
}

//打印棋盤(pán)
void DisplayBoard(char board[ROWS][ROWS], int row, int col)
{
	printf("******  掃雷  ******\n");
	for (int j = 0; j <= col; j++)
	{
		printf("%d ", j);
	}
	printf("\n");
	for (int i = 1; i <= row; i++)
	{
		printf("%d ", i);
		for (int j = 1; j <= col; j++)
		{
			printf("%c ", board[i][j]);
		}
		printf("\n");
	}
}

//布置雷
void SetMine(char mine[ROWS][COLS], int row, int col)
{
	int cnt = EASY_COUNT;

	while (cnt)
	{
		int x = rand() % row + 1;
		int y = rand() % col + 1;
		if (mine[x][y] == '0')
		{
			mine[x][y] = '1';
			cnt--;
		}
	}
}

//計(jì)算周?chē)椎臄?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');
}

//排查雷
void FineMine(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("請(qǐng)輸入坐標(biāo):>");
		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
			{
				int cnt = GetMineCount(mine, x, y);
				show[x][y] = cnt + '0';
				DisplayBoard(show, ROW, COL);
				win++;
			}
		}
		else
		{
			printf("坐標(biāo)輸入錯(cuò)誤,請(qǐng)重新輸入\n");
		}
	}
	if (win == row * col - EASY_COUNT)
	{
		printf("恭喜你排雷成功!!!\n");
	}
}

3 -> game.h

#pragma once

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

//棋盤(pán)大小
#define ROW 9
#define COL 9
#define ROWS ROW + 2
#define COLS COL + 2
//雷的個(gè)數(shù)
#define EASY_COUNT 10

//初始化棋盤(pán)
void InitBoard(char board[ROWS][ROWS], int rows, int cols, char set);

//打印棋盤(pán)
void DisplayBoard(char board[ROWS][ROWS], int row, int col);

//布置雷
void SetMine(char mine[ROWS][COLS], int row, int col);

//計(jì)算周?chē)椎臄?shù)量
int GetMineCount(char mine[ROWS][COLS], int x, int y);

//排查雷
void FineMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);

代碼里的注釋感覺(jué)已經(jīng)很清楚啦,就不多講解啦

感謝各位大佬的支持?。。?/span>文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-814673.html

到了這里,關(guān)于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 探秘C語(yǔ)言掃雷游戲?qū)崿F(xiàn)技巧

    探秘C語(yǔ)言掃雷游戲?qū)崿F(xiàn)技巧

    本篇博客會(huì)講解,如何使用C語(yǔ)言實(shí)現(xiàn)掃雷小游戲。 使用2個(gè)二維數(shù)組mine和show,分別來(lái)存儲(chǔ)雷的位置信息和排查出來(lái)的雷的信息,前者隱藏,后者展示給玩家。假設(shè)盤(pán)面大小是9×9,這2個(gè)二維數(shù)組都要開(kāi)大一圈,也就是大小是11×11,這是為了更加方便的數(shù)邊角上雷的個(gè)數(shù),防止

    2024年02月10日
    瀏覽(24)
  • C語(yǔ)言:輕松實(shí)現(xiàn)掃雷小游戲

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

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

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

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

    2024年02月11日
    瀏覽(647)
  • 【C語(yǔ)言實(shí)現(xiàn)掃雷小游戲——可展開(kāi)一片】

    【C語(yǔ)言實(shí)現(xiàn)掃雷小游戲——可展開(kāi)一片】

    學(xué)習(xí)完了函數(shù)和數(shù)組,讓我們做個(gè)掃雷小游戲鞏固一下所學(xué)的知識(shí)把! 使用控制臺(tái)操作 通過(guò)菜單實(shí)現(xiàn)選擇 棋盤(pán)為9×9 默認(rèn)隨機(jī)布置10個(gè)雷 排查雷 如果排查的位置不是雷,就顯示周?chē)袔讉€(gè)雷 排查位置是雷,游戲結(jié)束,玩家失敗 把10個(gè)雷全部排除,游戲結(jié)束,玩家成功 掃雷

    2024年02月08日
    瀏覽(91)
  • C語(yǔ)言之掃雷小游戲的實(shí)現(xiàn)【含遞歸展開(kāi)】

    C語(yǔ)言之掃雷小游戲的實(shí)現(xiàn)【含遞歸展開(kāi)】

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

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

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

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

    2024年02月05日
    瀏覽(105)
  • 【C語(yǔ)言】代碼實(shí)現(xiàn) 掃雷 游戲及進(jìn)階功能(初學(xué)者詳解)

    【C語(yǔ)言】代碼實(shí)現(xiàn) 掃雷 游戲及進(jìn)階功能(初學(xué)者詳解)

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

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

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

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

    2024年02月11日
    瀏覽(33)
  • C語(yǔ)言實(shí)戰(zhàn)——掃雷游戲

    C語(yǔ)言實(shí)戰(zhàn)——掃雷游戲

    1.1掃雷游戲的功能說(shuō)明 使用控制臺(tái)實(shí)現(xiàn)經(jīng)典的掃雷游戲 游戲可以通過(guò)菜單實(shí)現(xiàn)繼續(xù)玩或者退出游戲 掃雷的棋盤(pán)是9*9的格子 默認(rèn)隨機(jī)布置10個(gè)雷 可以排查雷 如果位置不是雷,就顯示周?chē)袔讉€(gè)雷 如果位置是雷,就炸死游戲結(jié)束 把除10個(gè)雷之外的所有?雷都找出來(lái),排雷成功

    2024年03月15日
    瀏覽(25)
  • [C語(yǔ)言][游戲][掃雷]

    [C語(yǔ)言][游戲][掃雷]

    為了鞏固C語(yǔ)言,我運(yùn)用所學(xué)的知識(shí),寫(xiě)了一篇關(guān)于掃雷游戲的博客。如果有大佬看到這篇文章,如有不足之處,請(qǐng)你一定要指出來(lái)。 游戲的規(guī)則: 我們?cè)谄灞P(pán)格中任意點(diǎn)開(kāi)一個(gè)格子(輸入行和列確認(rèn)這個(gè)格子),若這個(gè)格子不是雷就排除了這個(gè)位置,排除后這個(gè)格子會(huì)顯示

    2024年02月13日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包