日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java写文字冒险类游戏_用木兰语言编写文字冒险游戏(十三、四章),又一个特性发现...

發布時間:2024/1/1 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java写文字冒险类游戏_用木兰语言编写文字冒险游戏(十三、四章),又一个特性发现... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續改寫 Python 文字冒險游戲,第十三章的主要添加了玩家在每格的行動限制:

func 選擇命令(位置, 玩家) {

行動 = nil

while !行動 {

可選行動 = 取可選行動(位置, 玩家)

選擇 = input("行動: ")

行動 = 可選行動.get(選擇)

if 行動 {

// 為避免如此特殊處理, 其他行動也需加"環境"參數

if (行動 == 玩家.攻擊) {

行動(位置.敵人)

} else {

行動()

}

} else {

println("選擇無效!")

}

}

}

另外地圖改成表示如下,連同對應解析方法:

地圖描述 =

"| |VT| |\n" +

"| |EN| |\n" +

"|EN|ST|EN|\n" +

"| |EN| |\n"

十四章又添加了一個商販角色,可以購買裝備。另外,將地圖解析方法改進為可以讀取起始位置:

func 解析地圖描述 {

if !檢查無誤(地圖描述) {

throw SyntaxError("描述 is invalid!")

}

各行 = 地圖描述.splitlines()

各行 = list(filter(x -> x, 各行))

for y, 行 in enumerate(各行) {

行數據 = []

各塊 = 行.split("|")

各塊 = list(filter(c -> c, 各塊))

for x, 塊 in enumerate(各塊) {

地塊類型 = 地塊類型表[塊]

if 地塊類型 == 起始位置 {

extern 起始點

起始點 = tuple(x, y)

}

行數據.append(地塊類型 ? 地塊類型(x, y) : nil)

}

地圖.append(行數據)

}

}

木蘭語言相關注意點

? : 是表達式,不能單獨作為聲明使用。因此 print( 2<4 ? 3 : 4) 這樣可以,if 2>1{ 2<4 ? print(3) : print(4) } 就不可以。

python 的 global 對應木蘭的 extern,發現在引用時有個奇特之處。簡化演示如下:

如下聲明 x,函數 a 對其作修改:

x = 1

func a() {

extern x

x = x * 3

}

println("原值:`x`")

如果這樣引用:

using * in 原值

a()

println("修改后:`x`")

輸出如下,可見修改未果:

原值:1

修改后:1

這樣調用才修改有效:

using 原值

原值.a()

println("修改后:`原值.x`")

輸出:

原值:1

修改后:3

Python 行為也相同。待研究,不知是否與之前發現的 引用機制 有何關聯。

總結

以上是生活随笔為你收集整理的Java写文字冒险类游戏_用木兰语言编写文字冒险游戏(十三、四章),又一个特性发现...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。