用E語言做戰棋類遊戲

時間 2022-09-05 12:20:02

1樓:

.版本 2

.程式集 視窗程式集1

.程式集變數 棋盤左邊, 整數型

.程式集變數 棋盤頂邊, 整數型

.程式集變數 棋盤寬度, 整數型

.程式集變數 棋盤高度, 整數型

.程式集變數 棋盤, 整數型, , "5,4"

.程式集變數 棋子位置, 棋子位置, , "5,4"

.程式集變數 當前玩家, 整數型

.程式集變數 紅方棋子數, 整數型

.程式集變數 綠方棋子數, 整數型

.程式集變數 選棋子, 邏輯型

.程式集變數 落棋子, 邏輯型

.程式集變數 選子, 位置

.程式集變數 落子, 位置

.程式集變數 逃跑次數, 整數型

.子程式 __啟動視窗_建立完畢

棋盤左邊 = 30

棋盤頂邊 = 30

棋盤寬度 = 250

棋盤高度 = 322

初始化 ()

畫棋盤 ()

.子程式 初始化, , , 初始化棋盤,確定棋子的佈局

.區域性變數 rq, 整數型

.區域性變數 rq1, 整數型

.如果 (紅方先行.選中 = 真)

當前玩家 = #紅方

紅棋.調整層次 (#頂層)

.否則當前玩家 = #綠方

綠棋.調整層次 (#頂層)

.如果結束

選子.x = 0

選子.y = 0

落子.x = 0

落子.y = 0

選棋子 = 真

落棋子 = 取反 (選棋子)

逃跑次數 = 0

' 這裡用來確定棋子的位置

.計次迴圈首 (5, rq1)

.計次迴圈首 (4, rq)

棋盤 [rq1] [rq] = #空白

棋子位置 [rq1] [rq].左邊 = (rq - 1) × 72 + 6

棋子位置 [rq1] [rq].頂邊 = (rq1 - 1) × 72 + 6

棋子位置 [rq1] [rq].寬度 = (rq - 1) × 72 + 54

棋子位置 [rq1] [rq].高度 = (rq1 - 1) × 72 + 54

.計次迴圈尾 ()

.計次迴圈尾 ()

' 在這裡確定棋子的佈局

' 棋盤 [2] [1] = #紅方

' 棋盤 [1] [2] = #紅方

' 棋盤 [3] [1] = #綠方

' 棋盤 [5] [1] = #綠方

棋盤 [1] [1] = #紅方

棋盤 [1] [2] = #紅方

棋盤 [1] [3] = #紅方

棋盤 [1] [4] = #紅方

棋盤 [2] [1] = #紅方

棋盤 [2] [4] = #紅方

棋盤 [4] [1] = #綠方

棋盤 [4] [4] = #綠方

棋盤 [5] [1] = #綠方

棋盤 [5] [2] = #綠方

棋盤 [5] [3] = #綠方

棋盤 [5] [4] = #綠方

.子程式 畫棋盤, , , 畫出棋盤

.區域性變數 容器, 整數型

處理事件 ()

畫板2.清除 (, , , )

畫板2.畫筆顏色 = #灰色

畫板2.畫筆粗細 = 2

.變數迴圈首 (0, 4, 1, 容器)

畫板2.畫直線 (棋盤左邊, 容器 × 72 + 棋盤頂邊, 棋盤寬度 - 4, 容器 × 72 + 棋盤頂邊)

.變數迴圈尾 ()

.變數迴圈首 (0, 3, 1, 容器)

畫板2.畫直線 (容器 × 72 + 棋盤左邊, 棋盤頂邊, 容器 × 72 + 棋盤左邊, 棋盤高度 - 4)

.變數迴圈尾 ()

畫棋子 ()

畫板2.複製 (, , , , 畫板1, , , )

.子程式 畫棋子, , , 按陣列的值畫出棋子

.區域性變數 ys, 整數型

.區域性變數 rq, 整數型

.區域性變數 rq1, 整數型

紅方棋子數 = 0

綠方棋子數 = 0

.計次迴圈首 (5, rq1)

.計次迴圈首 (4, rq)

畫板2.畫筆顏色 = #灰色

.如果真 (選棋子 = 假 且 選子.x = rq 且 選子.y = rq1)

畫板2.畫筆顏色 = #白色

.如果真結束

ys = 棋盤 [rq1] [rq]

.判斷開始 (ys = #紅方)

ys = #紅色

紅方棋子數 = 紅方棋子數 + 1

.判斷 (ys = #綠方)

ys = #墨綠

綠方棋子數 = 綠方棋子數 + 1

.預設到迴圈尾 ()

.判斷結束

畫板2.刷子顏色 = ys

畫板2.畫橢圓 (棋子位置 [rq1] [rq].左邊, 棋子位置 [rq1] [rq].

頂邊, 棋子位置 [rq1] [rq].寬度, 棋子位置 [rq1] [rq].高度)

.計次迴圈尾 ()

.計次迴圈尾 ()

.如果真 (紅方棋子數 > 6 或 綠方棋子數 > 6)

資訊框 (#搞錯了吧, 0, 「嘻.搞錯了吧!」)

結束 ()

.如果真結束

.子程式 _畫板1_滑鼠左鍵被按下, 邏輯型, , 確定點選位置,移動棋子

.引數 橫向位置, 整數型

.引數 縱向位置, 整數型

.引數 功能鍵狀態, 整數型

.區域性變數 rq, 整數型

.區域性變數 rq1, 整數型

.計次迴圈首 (5, rq1)

.計次迴圈首 (4, rq)

.如果真 (棋子位置 [rq1] [rq].左邊 < 橫向位置 且 橫向位置 < 棋子位置 [rq1] [rq].寬度)

.如果真 (棋子位置 [rq1] [rq].頂邊 < 縱向位置 且 縱向位置 < 棋子位置 [rq1] [rq].高度)

.如果真 (棋盤 [rq1] [rq] = 當前玩家)

選子.x = rq

選子.y = rq1

選棋子 = 假

落棋子 = 取反 (選棋子)

.如果真結束

.如果真 (棋盤 [rq1] [rq] = #空白 且 落棋子 = 真)

落子.x = rq

落子.y = rq1

.如果真 (取絕對值 (選子.x - 落子.x) = 1 或 取絕對值 (選子.y - 落子.y) = 1)

.如果真 (位異或 (取絕對值 (選子.x - 落子.

x), 取絕對值 (選子.y - 落子.y)) = 1)  ' 使用位異或可以把棋子的移動範圍限制在橫.

縱兩個方向,避免斜向移動.

棋盤 [選子.y] [選子.x] = #空白

棋盤 [落子.y] [落子.x] = 當前玩家

處理事件 ()

判斷勝負 ()

選棋子 = 真

落棋子 = 取反 (選棋子)

.如果真結束

.如果真結束

.如果真結束

.如果真結束

.如果真結束

.計次迴圈尾 ()

.計次迴圈尾 ()

畫棋盤 ()

.如果真 (紅方棋子數 = 0)

資訊框 (「綠方勝!」, 0, )

初始化 ()

畫棋盤 ()

.如果真結束

.如果真 (綠方棋子數 = 0)

資訊框 (「紅方勝!」, 0, )

初始化 ()

畫棋盤 ()

.如果真結束

.子程式 判斷勝負, , , 是你贏?還是我贏?

.區域性變數 rq, 整數型

.區域性變數 txt, 文字型

.區域性變數 num, 整數型

.區域性變數 對家, 整數型

.如果 (當前玩家 = #紅方)

對家 = #綠方

綠棋.調整層次 (#頂層)

.否則對家 = #紅方

紅棋.調整層次 (#頂層)

.如果結束

txt = 「」

.計次迴圈首 (4, rq)

.判斷開始 (棋盤 [落子.y] [rq] = 當前玩家)

txt = txt + 「1」

.判斷 (棋盤 [落子.y] [rq] = 對家)

txt = txt + 「2」

.判斷 (棋盤 [落子.y] [rq] = #空白)

txt = txt + 「0」

.預設.判斷結束

.計次迴圈尾 ()

num = 到數值 (txt)

輸出除錯文字 (「x= 」 + txt)

.如果真 (num = 112 或 num = 211 或 num = 1120 或 num = 2110)

.計次迴圈首 (4, rq)

.如果真 (棋盤 [落子.y] [rq] = 對家)

棋盤 [落子.y] [rq] = #空白

.如果 (對家 = #紅方)

紅方棋子數 = 紅方棋子數 - 1

.否則綠方棋子數 = 綠方棋子數 - 1

.如果結束

.如果真結束

.計次迴圈尾 ()

.如果真結束

txt = 「」

.計次迴圈首 (5, rq)

.判斷開始 (棋盤 [rq] [落子.x] = 當前玩家)

txt = txt + 「1」

.判斷 (棋盤 [rq] [落子.x] = 對家)

txt = txt + 「2」

.判斷 (棋盤 [rq] [落子.x] = #空白)

txt = txt + 「0」

.預設.判斷結束

.計次迴圈尾 ()

num = 到數值 (txt)

輸出除錯文字 (「y= 」 + txt)

.如果真 (num = 112 或 num = 1120 或 num = 11200 或 num = 211 或 num = 2110 或 num = 21100)

.計次迴圈首 (5, rq)

.如果真 (棋盤 [rq] [落子.x] = 對家)

棋盤 [rq] [落子.x] = #空白

.如果 (對家 = #紅方)

紅方棋子數 = 紅方棋子數 - 1

.否則綠方棋子數 = 綠方棋子數 - 1

.如果結束

.如果真結束

.計次迴圈尾 ()

.如果真結束

.如果真 (紅方棋子數 = 1 或 綠方棋子數 = 1)

.如果真 (紅方棋子數 = 1 且 綠方棋子數 = 1)

資訊框 (#不可能, 0, 「不可能!」)

_重新開始_被選擇 ()

返回 ()

.如果真結束

.如果真 (紅方棋子數 = 1 且 當前玩家 = #紅方)

逃跑次數 = 逃跑次數 + 1

.如果真結束

.如果真 (綠方棋子數 = 1 且 當前玩家 = #綠方)

逃跑次數 = 逃跑次數 + 1

.如果真結束

標籤2.標題 = 「逃跑次數」 + 到文字 (逃跑次數)

.如果真 (逃跑次數 = 10)

獎勵棋子 ()

逃跑次數 = 0

標籤2.標題 = 「」

.如果真結束

.如果真結束

當前玩家 = 對家

.子程式 獎勵棋子, , , 給逃跑功夫一流的你一個機會

.區域性變數 wb, 文字型

.區域性變數 m, 整數型

.區域性變數 n, 整數型

畫棋盤 ()

.如果 (當前玩家 = #紅方)

wb = 「紅方」

.否則wb = 「綠方」

.如果結束

資訊框 (「因 」 + wb + 「與對手不斷周旋,爭取到足夠的時間,援軍趕來了!」, 0, )

置隨機數種子 ()

m = 取隨機數 (1, 4)

n = 取隨機數 (1, 5)

.判斷迴圈首 (棋盤 [n] [m] ≠ #空白)

m = 取隨機數 (1, 4)

n = 取隨機數 (1, 5)

.判斷迴圈尾 ()

棋盤 [n] [m] = 當前玩家

.子程式 _重新開始_被選擇

初始化 ()

畫棋盤 ()

.子程式 _撤消一步_被選擇

返回 ()

.子程式 _退出_被選擇

結束 ()

.子程式 _紅方先行_被選擇

紅方先行.選中 = 真

綠方先行.選中 = 假

.子程式 _綠方先行_被選擇

紅方先行.選中 = 假

綠方先行.選中 = 真

.子程式 _關於_被選擇

載入 (關於視窗, , 真)

.子程式 _按鈕1_被單擊

畫板1.獲取焦點 ()

_重新開始_被選擇 ()

.子程式 _按鈕2_被單擊

畫板1.獲取焦點 ()

_退出_被選擇 ()

.子程式 _按鈕3_被單擊

畫板1.獲取焦點 ()

_關於_被選擇 ()控制元件有

找些SLG戰棋類遊戲,要新出的哈

至尊食人蝦 呃,那個樓主呀,我要提醒一下,這個slg的意思是策略遊戲,那個戰棋遊戲就是走格子的遊戲,你到底是要策略的呢?還是走格子的呢?要是又要slg又要戰棋遊戲的話 國王的恩賜之戎裝公主 這是最最最最新的 它的中文版才發行不到2個月 而且也比較好玩.再就早就是 三國志 文明4 和 英雄無敵5 了....

找幾個像火焰紋章的戰棋遊戲,求一個戰棋類遊戲,非常非常像火焰紋章。

你玩過fe三作再來玩其它slg,會覺得真沒意思。真沒有一個slg系統和火紋類似的。其它gba上好玩一點的系統稍微接近類似火紋的 高階戰爭 高階戰爭2advance 公主同盟 這個是人設和關卡最接近的,不過玩法差別很大 機戰系列 ffta 皇騎系列 要看你怎麼理解火紋這種戰棋遊戲了,我玩遊戲到現在,個...

求幾個PC經典的戰棋類和角色扮演類遊戲

第一人稱射擊 榮譽勳章 神兵空降 即將於2006年第四季度上市。即時戰略 七王國 征服 即將於2006年6月上市 動作冒險 艾倫 韋克 即將於2007年上市 策略遊戲 戰爭的真相 上市日期由原來的4月25日推遲到今年夏季。動作射擊 敵對領域 雷神戰爭 2006年內發售 即時策略 斯巴達 古代戰爭 即...