1

http://jbwyatt.com/253/a/a5Mazes.htm

それは私の宿題へのリンクです。

私は迷路を描いており、私を混乱させる終点と始点は、他のタスクをどのように開始するかです. 私は通常、プログラミング言語をすぐに習得しますが、アセンブリは私にとって大きな頭痛の種です。

誰かが私にいくつかの例を与えて正しい方向に向けることができれば、私はスピードバンプを乗り越えてガスを打つことができるはずです.

INCLUDE "emu8086.inc"
ORG 100h

; LINE 1 -------------
lea si, maz1
mov cx, 20
wall1:
     cmp [si], 0 ; path
     je p1
     PUTC    219       ;  white block:
     jmp nx1
p1:  PUTC    32        ;  blank space
nx1: inc si
loop wall1
PRINTN ;****

; LINE 2 -------------
lea si, maz2
mov cx, 20
wall2:
     cmp [si], 0 ; path
     je p2
     PUTC    219       ;  white block:
     jmp nx2
p2:  PUTC    32        ;  blank space
nx2: inc si
loop wall2
PRINTN ;****

; LINE 3 -------------
lea si, maz3
mov cx, 20
wall3:
     cmp [si], 0 ; path
     je p3
     PUTC    219       ; white block:
     jmp nx3
p3:  PUTC    32        ; blank space
nx3: inc si
loop wall3
PRINTN ;****


; LINE 4 -------------
lea si, maz4
mov cx, 20
wall4:
     cmp [si], 0 ; path
     je p4
     PUTC    219       ;  white block:
     jmp nx4
p4:  PUTC    32        ;  blank space
nx4: inc si
loop wall4
PRINTN ;****

; LINE 5 -------------
lea si, maz5
mov cx, 20
wall5:
     cmp [si], 0 ; path
     je p5
     PUTC    219       ;  white block:
     jmp nx5
p5:  PUTC    32        ;  blank space
nx5: inc si
loop wall5
PRINTN ;****

; LINE 6 -------------
lea si, maz6
mov cx, 20
wall6:
     cmp [si], 0 ; path
     je p6
     PUTC    219       ;  white block:
     jmp nx6
p6:  PUTC    32        ; blank space
nx6: inc si
loop wall6
PRINTN ;****

; LINE 7 -------------
lea si, maz7
mov cx, 20
wall7:
     cmp [si], 0 ; path
     je p7
     PUTC    219       ; white block:
     jmp nx7
p7:  PUTC    32        ;   blank space
nx7: inc si
loop wall7
PRINTN ;****


; LINE 8 -------------
lea si, maz8
mov cx, 20
wall8:
     cmp [si], 0 ; path
     je p8
     PUTC    219       ;  white block:
     jmp nx8
p8:  PUTC    32        ;  blank space
nx8: inc si
loop wall8
PRINTN ;****

; LINE 9 -------------
lea si, maz9
mov cx, 20
wall9:
     cmp [si], 0 ; path
     je p9
     PUTC    219       ;  white block:
     jmp nx9
p9:  PUTC    32        ;  blank space
nx9: inc si
loop wall9
PRINTN ;****

; LINE 10 -------------
lea si, maz10
mov cx, 20
wall10:
     cmp [si], 0 ; path
     je p10
     PUTC    219       ;  white block:
     jmp nx10
p10:  PUTC    32        ;  blank space
nx10: inc si
loop wall10
PRINTN ;****

; LINEW 11 -------------
lea si, maz11
mov cx, 20
wall11:
     cmp [si], 0 ; path
     je p11
     PUTC    219       ;  white block:
     jmp nx11
p11:  PUTC    32        ;   blank space
nx11: inc si
loop wall11
PRINTN ;****


; LINE 12 -------------
lea si, maz12
mov cx, 20
wall12:
     cmp [si], 0 ; path
     je p12
     PUTC    219       ;  white block:
     jmp nx12
p12:  PUTC    32        ;   blank space
nx12: inc si
loop wall12
PRINTN ;****

; LINE 13 -------------
lea si, maz13
mov cx, 20
wall13:
     cmp [si], 0 ; path
     je p13
     PUTC    219       ;  white block:
     jmp nx13
p13:  PUTC    32        ;  blank space
nx13: inc si
loop wall13
PRINTN ;****

; LINE 14 -------------
lea si, maz14
mov cx, 20
wall14:
     cmp [si], 0 ; path
     je p14
     PUTC    219       ; white block:
     jmp nx14
p14:  PUTC    32        ; blank space
nx14: inc si
loop wall14
PRINTN ;****

; LINE 15 -------------
lea si, maz15
mov cx, 20
wall15:
     cmp [si], 0 ; path
     je p15
     PUTC    219       ;  white block:
     jmp nx15
p15:  PUTC    32        ;  blank space
nx15: inc si
loop wall15
PRINTN ;****


; LINE 16 -------------
lea si, maz16
mov cx, 20
wall16:
     cmp [si], 0 ; path
     je p16
     PUTC    219       ; white block:
     jmp nx16
p16:  PUTC    32        ;  blank space
nx16: inc si
loop wall16
PRINTN ;****

; LINE 17 -------------
lea si, maz17
mov cx, 20
wall17:
     cmp [si], 0 ; path
     je p17
     PUTC    219       ;  white block:
     jmp nx17
p17:  PUTC    32        ;  blank space
nx17: inc si
loop wall17
PRINTN ;****

; LINE 18 -------------
lea si, maz18
mov cx, 20
wall18:
     cmp [si], 0 ; path
     je p18
     PUTC    219       ;  white block:
     jmp nx18
p18:  PUTC    32        ;  blank space
nx18: inc si
loop wall18
PRINTN ;****

; LINE 19 -------------
lea si, maz19
mov cx, 20
wall19:
     cmp [si], 0 ; path
     je p19
     PUTC    219       ;  white block:
     jmp nx19
p19:  PUTC    32        ;  blank space
nx19: inc si
loop wall19
PRINTN ;****


; LINE 20 -------------
lea si, maz20
mov cx, 20
wall20:
     cmp [si], 0 ; path
     je p20
     PUTC    219       ; white block:
     jmp nx20
p20:  PUTC    32        ;  blank space
nx20: inc si
loop wall20
PRINTN ;****




; PUT GUY AND END IN MAZE
GOTOXY 1, 1       ;guy at start position
PUTC 01

GOTOXY 18, 17     ;finish point
PUTC 03         
ret

  maz1  DB  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
  maz2  DB  1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1
  maz3  DB  1,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,0,1
  maz4  DB  1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,1
  maz5  DB  1,0,0,0,0,1,0,1,1,0,1,1,0,0,0,1,1,1,0,1
  maz6  DB  1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1
  maz7  DB  1,1,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,1
  maz8  DB  1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,1,1,1,1
  maz9  DB  1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1
  maz10 DB  1,0,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1
  maz11 DB  1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1
  maz12 DB  1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1
  maz13 DB  1,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1
  maz14 DB  1,1,0,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,1
  maz15 DB  1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1
  maz16 DB  1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1
  maz17 DB  1,1,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1
  maz18 DB  1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1
  maz19 DB  1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,3,1
  maz20 DB  1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
end
4

2 に答える 2

0

* * *20 ではなく、1 つの配列で迷路を定義します。

* * *1 行ずつ印刷したくない... ループを作成します。

* * *wasd でキャラクターが動く:

W = char position - 20 (maze[pos-20] != 1 または == エンドポイントかどうかを確認)

A = 文字位置 - 1

D = 文字位置 + 1

S = 文字位置 + 20

これらは、上記のコードで見た問題です。

他にどこに問題がありますか?やり方がわからない具体的なことはありますか?

1- 迷路の 1 つの配列を作成し、ループで画面に印刷します。

2-入力を取得し、壁と端点を確認しながら1と20を加算/減算することにより、wasdでキャラクターを移動します

3- この宿題のグラフィック部分をこの言語で実装する方法がわかりません。迷路ゲームを作りましたが、それはデバッグ コンテスト用でした。(画面上ではなく、メモリ内にマップします) したがって、コードを少し更新すると、ロジックを支援できます。

于 2011-10-28T01:13:52.353 に答える
0

あなたがよく知っている言語でそれを行う方法を知っていますか? 次に、どのようにするかの計画を立てます。次に、その計画を少しずつアセンブリに変換してみてください。そうすれば、より具体的な問題があれば、答えを得やすくなります。

于 2011-10-27T22:06:57.577 に答える