跳轉到內容

LOLGraphics 3.4 程式設計/製作簡單的 LOLGraphics 遊戲

100% developed
來自華夏公益教科書,開放世界開放書籍

在本教程中,我們將製作一個簡單的 WASD 控制遊戲,你將控制一個方塊。如果你掉進熔岩池,你就會輸,如果你到達紫色地毯,你將會被問到一個多項選擇題(美國第一任總統是誰)。如果你答對了,你就贏了。如果你答錯了,你就輸了。足夠簡單吧。

由於程式碼將分段編寫,本章將遵循以下約定:新行(在先前版本中不存在的)將以綠色突出顯示,應刪除的行將以紅色突出顯示,應保留的行將以藍色突出顯示。

繪製場地

[編輯 | 編輯原始碼]

你將從一個空程式開始。讓我們開始繪製場地。背景將像草地一樣是綠色的,將有一個紅色方塊代表熔岩池,還有一個洋紅色方塊。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DRAW_FIELD

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
IM OUTTA UR SUBPROGRAM

請注意,延遲被設定為 1。這是可能的最低值,出於使遊戲儘可能流暢執行的目的,我們特意這樣設定。

繪製玩家

[編輯 | 編輯原始碼]

玩家將是一個可以在螢幕上移動的橙色方塊。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DRAW_FIELD
PLZ RUN SUBPROGRAM DEFALT_VARIABLES

IM OUTTA UR CODE

 IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

 IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
IM OUTTA UR SUBPROGRAM

請注意,繪製操作是在設定預設變數的相同子程式中完成的。這將改變。

玩家移動

[編輯 | 編輯原始碼]

就目前而言,我們還沒有太多遊戲。讓我們實現玩家移動。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DEFALT_VARIABLES
PLZ RUN SUBPROGRAM DRAW_FIELD
PLZ RUN SUBPROGRAM DEFALT_VARIABLES
FOREVER RUN MOVE

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
I HAS A TWO BYTE DAT IZ CALLED BUTTON
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ SET TWO BYTE BUTTON -1
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED MOVE
PLZ READ CHAR BUTTON
SWITCH [[BUTTON]]
CASE 56,87,119 UP
CASE 52,65,97 LEFT
CASE 50,83,115 DOWN
CASE 54,68,100 RIGHT
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED UP
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DOWN
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED LEFT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED RIGHT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

請注意,玩家繪製例程已移至場地,並且程式現在在開始繪製之前設定預設值。此外,在 switch/case 語句中,它將變數與 WASD 和 8462 鍵的 ASCII 值進行比較。

檢測熔岩

[編輯 | 編輯原始碼]

現在我們已經完成了移動,但你可以隨意走動,包括在熔岩之上。讓我們來解決這個問題。讓我們新增檢測你是否掉入熔岩並結束遊戲的程式碼。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DEFALT_VARIABLES
PLZ RUN SUBPROGRAM DRAW_FIELD
FOREVER RUN MOVE

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
I HAS A TWO BYTE DAT IZ CALLED BUTTON
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ SET TWO BYTE BUTTON -1
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED MOVE
PLZ READ CHAR BUTTON
SWITCH [[BUTTON]]
CASE 56,87,119 UP
CASE 52,65,97 LEFT
CASE 50,83,115 DOWN
CASE 54,68,100 RIGHT
PLZ RUN SUBPROGRAM CKECK_LAVA_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED UP
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DOWN
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED LEFT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED RIGHT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED FELL_IN_LAVA
PLZ PRINT TEXT YOU FELL IN LAVA
IM OUTTA UR CODE
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_X
SWITCH [[X]]
CASE 80,90,100,110,120,130,140 CKECK_LAVA_Y
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_Y
SWITCH [[Y]]
CASE 80,90,100,110,120,130,140 FELL_IN_LAVA
IM OUTTA UR SUBPROGRAM

現在,如果你掉進熔岩,你會收到一條資訊,告知你這一點,並且遊戲結束。請注意,由於玩家從座標 (200,150) 開始,並以 10 畫素/迭代的速度移動,因此 x 和 y 值將始終是可以被 10 整除的數字。

檢測地毯

[編輯 | 編輯原始碼]

現在我們可以檢測玩家是否進入熔岩,讓我們也檢測玩家是否踏在地毯上。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DEFALT_VARIABLES
PLZ RUN SUBPROGRAM DRAW_FIELD
FOREVER RUN MOVE

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
I HAS A TWO BYTE DAT IZ CALLED BUTTON
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ SET TWO BYTE BUTTON -1
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED MOVE
PLZ READ CHAR BUTTON
SWITCH [[BUTTON]]
CASE 56,87,119 UP
CASE 52,65,97 LEFT
CASE 50,83,115 DOWN
CASE 54,68,100 RIGHT
PLZ RUN SUBPROGRAM CKECK_LAVA_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED UP
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DOWN
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED LEFT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED RIGHT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED FELL_IN_LAVA
PLZ PRINT TEXT YOU FELL IN LAVA
IM OUTTA UR CODE
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_X
SWITCH [[X]]
CASE 80,90,100,110,120,130,140 CKECK_LAVA_Y
PLZ RUN SUBPROGRAM CKECK_CARPET_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_Y
SWITCH [[Y]]
CASE 80,90,100,110,120,130,140 FELL_IN_LAVA
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED ON_CARPET
PLZ PRINT TEXT YOU WIN
IM OUTTA UR CODE
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_X
SWITCH [[X]]
CASE 280,290,300,310,320,330,340 CKECK_CARPET_Y
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_Y
SWITCH [[Y]]
CASE 180,190,200,210,220,230,240 ON_CARPET
IM OUTTA UR SUBPROGRAM

瑣事問題

[編輯 | 編輯原始碼]

現在,當你踏上地毯時,你就會立即獲勝。讓我們把它改成你需要回答一個瑣事問題,只有答對了才能獲勝。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DEFALT_VARIABLES
PLZ RUN SUBPROGRAM DRAW_FIELD
FOREVER RUN MOVE

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
I HAS A TWO BYTE DAT IZ CALLED BUTTON
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ SET TWO BYTE BUTTON -1
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50
PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED MOVE
PLZ READ CHAR BUTTON
SWITCH [[BUTTON]]
CASE 56,87,119 UP
CASE 52,65,97 LEFT
CASE 50,83,115 DOWN
CASE 54,68,100 RIGHT
PLZ RUN SUBPROGRAM CKECK_LAVA_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED UP
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DOWN
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED LEFT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED RIGHT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED FELL_IN_LAVA
PLZ PRINT TEXT YOU FELL IN LAVA
PLZ PRINT TEXT
PLZ PRINT TEXT YOU LOSE
IM OUTTA UR CODE
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_X
SWITCH [[X]]
CASE 80,90,100,110,120,130,140 CKECK_LAVA_Y
PLZ RUN SUBPROGRAM CKECK_CARPET_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_Y
SWITCH [[Y]]
CASE 80,90,100,110,120,130,140 FELL_IN_LAVA
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED ON_CARPET
PLZ PRINT TEXT WHO WAS THE FIRST 
PLZ PRINT TEXT WHO PRESIDENT OF THE 
PLZ PRINT TEXT UNITED STATES?
PLZ PRINT TEXT
PLZ PRINT TEXT 1) RICHARD NIXON
PLZ PRINT TEXT 2) GEORGE WASHINGTON
PLZ PRINT TEXT 3) DONALD TRUMP
PLZ PRINT TEXT 4) JOHN ADAMS

I HAS A ONE BYTE DAT IZ CALLED ANSWER
PLZ ASK TEH USR 2 GIMME A ONE BYTE ANSWER
PLZ CLEAR TEH CONSOLE
SWITCH [ANSWER]
LABELCASE 2 WIN
PLZ PRINT TEXT YOU LOSE!
PLZ GOTO LABEL END
DIS IZ MY LABEL! IT IZ KALLED WIN
PLZ PRINT TEXT YOU WIN!
DIS IZ MY LABEL! IT IZ KALLED END
IM OUTTA UR CODE
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_X
SWITCH [[X]]
CASE 280,290,300,310,320,330,340 CKECK_CARPET_Y
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_Y
SWITCH [[Y]]
CASE 180,190,200,210,220,230,240 ON_CARPET
IM OUTTA UR SUBPROGRAM

現在,當你踏上地毯時,你會被問到美國第一任總統是誰。此外,當你掉進熔岩時,除了 “你掉進熔岩” 之外,還會顯示 “你輸了” 的文字。這個 “遊戲” 可以被認為是完成了,但是我們還要新增一件事情。

略微改進

[編輯 | 編輯原始碼]

你會期望玩家掉進熔岩後,他不會被繪製在螢幕上。然而,這並非目前遊戲中發生的事情。讓我們來解決這個問題。有多種方法可以做到這一點。

  1. 一種方法是將玩家的 x 和 y 值設定為越界值,然後重新繪製螢幕。這會導致玩家被 “繪製”,但由於它將位於螢幕外,所以你不會看到他。你可以隨意使用這種方法,但這並不是我們將在本書中使用的。
  2. 第二種方法是建立一個名為 IN_LAVA 的單位元組變數,將其設定為 0,當玩家掉進熔岩時,將其設定為 1。繪製例程將檢查該變數的值,如果等於 1,則不會繪製玩家。你可以在程式碼中隨意使用它,但這也不是我們將在本書中做的。
  3. 第三種方法是將 x 或 y 的值設定為一個數字,例如 -1,然後在繪製例程中檢查 x 是否等於 -1,如果是,則不會繪製玩家。你可以使用任何不能被 10 整除的數字,它不會影響程式碼的執行方式,因為玩家以 10 畫素/迭代的速度移動,並且以 x、y 座標開始,這些座標可以被 10 整除。這就是我們將要做的。

所以,以下是改進後的程式碼。


HAI 3.4 0 1
IM IN UR CODE EXECUTIN UR KOMANDZ

PLZ RUN SUBPROGRAM DEFALT_VARIABLES
PLZ RUN SUBPROGRAM DRAW_FIELD
FOREVER RUN MOVE

IM OUTTA UR CODE

IM IN UR SUBPROGRAM DAT IZ KALLED DEFALT_VARIABLES
I HAS A TWO BYTE DAT IZ CALLED X
I HAS A TWO BYTE DAT IZ CALLED Y
I HAS A TWO BYTE DAT IZ CALLED BUTTON
PLZ SET TWO BYTE X 200
PLZ SET TWO BYTE Y 150
PLZ SET TWO BYTE BUTTON -1
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DRAW_FIELD
PLZ CHANGE PAINT BRUSH 0 154 23
PLZ FILL RECT 0 0 630 430
PLZ CHANGE PAINT BRUSH RED
PLZ FILL RECT 100 100 50 50
PLZ CHANGE PAINT BRUSH MAGENTA
PLZ FILL RECT 300 200 50 50

SWITCH [[X]]
LABELCASE -1 END

PLZ CHANGE PAINT BRUSH ORANGE
PLZ FILL RECT X Y 25 25
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED MOVE
PLZ READ CHAR BUTTON
SWITCH [[BUTTON]]
CASE 56,87,119 UP
CASE 52,65,97 LEFT
CASE 50,83,115 DOWN
CASE 54,68,100 RIGHT
PLZ RUN SUBPROGRAM CKECK_LAVA_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED UP
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED DOWN
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE Y Y+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED LEFT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X-10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED RIGHT
PLZ SET TWO BYTE BUTTON -1
PLZ SET TWO BYTE X X+10
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED FELL_IN_LAVA
PLZ PRINT TEXT YOU FELL IN LAVA
PLZ PRINT TEXT
PLZ PRINT TEXT YOU LOSE
PLZ SET TWO BYTE X -1
PLZ RUN SUBPROGRAM DRAW_FIELD
IM OUTTA UR CODE

IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_X
SWITCH [[X]]
CASE 80,90,100,110,120,130,140 CKECK_LAVA_Y
PLZ RUN SUBPROGRAM CKECK_CARPET_X
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_LAVA_Y
SWITCH [[Y]]
CASE 80,90,100,110,120,130,140 FELL_IN_LAVA
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED ON_CARPET
PLZ PRINT TEXT WHO WAS THE FIRST 
PLZ PRINT TEXT WHO PRESIDENT OF THE 
PLZ PRINT TEXT UNITED STATES?
PLZ PRINT TEXT
PLZ PRINT TEXT 1) RICHARD NIXON
PLZ PRINT TEXT 2) GEORGE WASHINGTON
PLZ PRINT TEXT 3) DONALD TRUMP
PLZ PRINT TEXT 4) JOHN ADAMS

I HAS A ONE BYTE DAT IZ CALLED ANSWER
PLZ ASK TEH USR 2 GIMME A ONE BYTE ANSWER
PLZ CLEAR TEH CONSOLE
SWITCH [ANSWER]
LABELCASE 2 WIN
PLZ PRINT TEXT YOU LOSE!
PLZ GOTO LABEL END
DIS IZ MY LABEL! IT IZ KALLED WIN
PLZ PRINT TEXT YOU WIN!
DIS IZ MY LABEL! IT IZ KALLED END
IM OUTTA UR CODE

IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_X
SWITCH [[X]]
CASE 280,290,300,310,320,330,340 CKECK_CARPET_Y
IM OUTTA UR SUBPROGRAM

IM IN UR SUBPROGRAM DAT IZ KALLED CKECK_CARPET_Y
SWITCH [[Y]]
CASE 180,190,200,210,220,230,240 ON_CARPET
IM OUTTA UR SUBPROGRAM

請注意,標籤 “END” 與地毯子程式中的標籤相同。這無關緊要,因為在它之後是 IM OUTTA UR CODE,它會結束程式。

華夏公益教科書