529 掃雷遊戲

2022-06-21 11:00:12 字數 2305 閱讀 1965

題目描述

讓我們一起來玩掃雷遊戲!

給定乙個代表遊戲板的二維字元矩陣。 'm' 代表乙個未挖出的地雷,'e' 代表乙個未挖出的空方塊,'b' 代表沒有相鄰(上,下,左,右,和所有4個對角線)地雷的已挖出的空白方塊,數字('1' 到 '8')表示有多少地雷與這塊已挖出的方塊相鄰,'x' 則表示乙個已挖出的地雷。

如果乙個地雷('m')被挖出,遊戲就結束了- 把它改為 'x'。

如果乙個沒有相鄰地雷的空方塊('e')被挖出,修改它為('b'),並且所有和其相鄰的未挖出方塊都應該被遞迴地揭露。

如果乙個至少與乙個地雷相鄰的空方塊('e')被挖出,修改它為數字('1'到'8'),表示相鄰地雷的數量。

如果在此次點選中,若無更多方塊可被揭露,則返回面板。

示例 1:

輸入: 

[['e', 'e', 'e', 'e', 'e'],

['e', 'e', 'm', 'e', 'e'],

['e', 'e', 'e', 'e', 'e'],

['e', 'e', 'e', 'e', 'e']]

click : [3,0]

輸出:

[['b', '1', 'e', '1', 'b'],

['b', '1', 'm', '1', 'b'],

['b', '1', '1', '1', 'b'],

['b', 'b', 'b', 'b', 'b']]

示例 2:

輸入: 

[['b', '1', 'e', '1', 'b'],

['b', '1', 'm', '1', 'b'],

['b', '1', '1', '1', 'b'],

['b', 'b', 'b', 'b', 'b']]

click : [1,2]

輸出:

[['b', '1', 'e', '1', 'b'],

['b', '1', 'x', '1', 'b'],

['b', '1', '1', '1', 'b'],

['b', 'b', 'b', 'b', 'b']]

注意:輸入矩陣的寬和高的範圍為 [1,50]。

點選的位置只能是未被挖出的方塊 ('m' 或者 'e'),這也意味著面板至少包含乙個可點選的方塊。

輸入面板不會是遊戲結束的狀態(即有地雷已被挖出)。

簡單起見,未提及的規則在這個問題中可被忽略。例如,當遊戲結束時你不需要挖出所有地雷,考慮所有你可能贏得遊戲或標記方塊的情況。

題解:

當前點選的是【未挖出來的雷】,我們將其改為x即可,表示點到了雷,然後結束。

當前點選的是【為挖出的空方塊】,我們需要統計他周圍相鄰(八個)的方塊裡的地雷的數量cnt(即m的數量)。

如果cnt>0,就將當前方塊改為cnt的數字(附近的雷數)

如果cnt為0,則將其改為b,並遞迴計算周圍八個未挖出的方塊,如果沒有更多方塊可以被揭露,則返回面板。

實現:

public char updateboard (char board, int click)  else 

return board;

}//左、左上、上、右上、右、右下、下、左下

int vx = new int ;

int vy = new int ;

private void dfs (char board, int x, int y)

if (board[currentx][currenty] == 'm')

}//周圍m個數不為0時,將[x,y]處的值設定成cnt數字

if (cnt > 0)

//如果周圍沒有m(雷)時

LeetCode 529 掃雷遊戲

529.掃雷遊戲 讓我們一起來玩掃雷遊戲!給定乙個代表遊戲板的二維字元矩陣。m 代表乙個未挖出的地雷,e 代表乙個未挖出的空方塊,b 代表沒有相鄰 上,下,左,右,和所有4個對角線 地雷的已挖出的空白方塊,數字 1 到 8 表示有多少地雷與這塊已挖出的方塊相鄰,x 則表示乙個已挖出的地雷。典型的bf...

Leetcode 廣搜 深搜 掃雷遊戲(529)

讓我們一起來玩掃雷遊戲!給定乙個代表遊戲板的二維字元矩陣。m 代表乙個未挖出的地雷,e 代表乙個未挖出的空方塊,b 代表沒有相鄰 上,下,左,右,和所有4個對角線 地雷的已挖出的空白方塊,數字 1 到 8 表示有多少地雷與這塊已挖出的方塊相鄰,x 則表示乙個已挖出的地雷。如果乙個地雷 m 被挖出,遊...

小遊戲 掃雷

c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...