這是「
使用 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 類,表示推箱子的 選組 對話方塊。如...