使用 C 開發智慧型手機軟體 推箱子 三

2021-04-13 12:23:31 字數 2532 閱讀 2384

這是「

使用 c# 開發智慧型手機軟體:推箱子

」系列文章的第三篇。在這篇文章中,介紹 common/block.cs 源程式檔案。

1namespace

skyiv.ben.pushbox.common223

24public

static

char

getchar(

ushort

block)

2528

29public

static

byte

getbyte(

char

block)

3033

34public

static

bool

isok(

ushort

block)

3538

39public

static

void

cleanallmark(

ushort

[,] bb)

4045

46public

static

void

mark(

refushort

block, 

intvalue)

4750

51public

static

intvalue(

ushort

block)

5255

56public

static

void

update(

refushort

block, 

byte

pen)

5762

6**ublic

static

void

manin(

refushort

block)

6467

68public

static

void

manout(

refushort

block)

6972

7**ublic

static

void

boxin(

refushort

block)

7477

78public

static

void

boxout(

refushort

block)

7982

8**ublic

static

bool

isslot(

ushort

block)

8487

88public

static

bool

isblank(

ushort

block)

8992

9**ublic

static

bool

isbox(

ushort

block)

9497

98public

static

bool

i**an(

ushort

block)

99102

}103

}104

靜態類 block 用來表示基本單元格: 空地、槽(箱子最終要存放的目的地)、牆、磚(在本程式中等同於「牆」,一般放在牆的外圍,使圖形看起來漂亮些)、箱子、工人。其中「箱子」和「工人」都 可以位於「空地」或「槽」上,所以總共有八種狀態,用 0 到 7 表示,總共只需要三個二進位,可以放入乙個位元組中。在資料檔案(*.bxb)中,每個基本單元格就是用乙個位元組儲存的,這在以後介紹的 common/datafile.cs 源程式檔案中會看到。

這個類還是比較簡單的,現簡要說明如下:

getpenname 方法返回在設計關卡時所用畫筆的名稱。

update 方法用來在設計關卡時更新地圖中的基本單元格。

getchar 方法返回將資料檔案(data/*.bxb)匯出為文字檔案(text/*.bxa)所用的字元。

getbyte 方法返回將文字檔案(text/*.bxa)匯入為資料檔案(data/*.bxb)所用的位元組。

isok 方法判斷表示基本單元格的位元組是否合法,也用在資料匯入時。

mark 方法在尋找工人最短移動路線演算法中用來標記已經搜尋過的基本單元格。

cleanallmark 方法在上述演算法結束時用來清除地圖中的所有基本單元格的標記。

value 方法返回上述演算法搜尋過程中所作的標記。

manin、manout、boxin、boxout 方法用來更新推箱子過程中地圖各基本單元格的狀態。

isslot、isblank、isbox、i**an 方法用來判斷各基本單元格的型別。

補充:尋找工人最短移動路線的演算法已經作了改進,地圖使用 byte 儲存就行了,所以靜態類 block 中的所有「ushort」都要修改為「byte」。請參見「

使用 c# 開發智慧型手機軟體:推箱子(五)

」中的說明。 

使用 C 開發智慧型手機軟體 推箱子 十四

這是 使用 c 開發智慧型手機軟體 推箱子 系列文章的第十四篇。在這篇文章中,介紹 window errormsgdlg.cs 源程式檔案。這個源程式檔案包含 errormsgdlg 類,該類繼承自 system.windows.forms.form 類,表示推箱子的 錯誤資訊 對話方塊。如下圖所示...

使用 C 開發智慧型手機軟體 推箱子 二

在上篇文章 使用 c 開發智慧型手機軟體 推箱子 一 中,我對推箱子程式作了總體介紹。這次,我先介紹 common fcl.cs 源程式檔案。1using system 2using system.io 3using system.drawing 45 namespace skyiv.ben.pus...

使用 C 開發智慧型手機軟體 推箱子 十七

這是 使用 c 開發智慧型手機軟體 推箱子 系列文章的第十七篇。在這篇文章中,介紹 window selectgroupdlg.cs 源程式檔案。這個源程式檔案包含 selectgroupdlg 類,該類繼承自 system.windows.forms.form 類,表示推箱子的 選組 對話方塊。如...