Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- proc check_state
- ;ПОСЛЕ ХОДА ИДЁТ ПРОВЕРКА
- ;ГОЛОВА 1-ОЙ ЧТО-ТО ТАРАНИТ
- mov si, self_len_snake
- dec si
- mov ah, self_snake_x[si]
- mov al, self_snake_y[si]
- ;свое тело
- dec si
- @@cycle1:
- mov bh, self_snake_x[si]
- mov bl, self_snake_y[si]
- cmp ax, bx
- je @@lose_1
- dec si
- cmp si, 0
- jge @@cycle1
- ;вражескую голову
- mov si, other_len_snake
- dec si
- mov bh, other_snake_x[si]
- mov bl, other_snake_y[si]
- cmp ax, bx
- je @@draw
- ;вражеское тело
- dec si
- @@cycle2:
- mov bh, other_snake_x[si]
- mov bl, other_snake_y[si]
- cmp ax, bx
- je @@win_1
- dec si
- cmp si, 0
- jge @@cycle2
- jmp @@2
- @@lose_1:
- mov flag_was_crash, 1
- dec result
- jmp @@2
- @@draw:
- mov flag_was_crash, 1
- jmp @@check
- @@win_1:
- mov flag_was_crash, 1
- inc result
- jmp @@2
- ;ГОЛОВА 2-ОЙ ЧТО-ТО ТАРАНИТ
- @@2:
- mov si, other_len_snake
- dec si
- mov ah, other_snake_x[si]
- mov al, other_snake_y[si]
- ;свое тело
- dec si
- @@cycle3:
- mov bh, other_snake_x[si]
- mov bl, other_snake_y[si]
- cmp ax, bx
- je @@lose_2
- dec si
- cmp si, 0
- jge @@cycle3
- ;вражеское тело
- mov si, self_len_snake
- dec si
- dec si
- @@cycle4:
- mov bh, self_snake_x[si]
- mov bl, self_snake_y[si]
- cmp ax, bx
- je @@win_2
- dec si
- cmp si, 0
- jge @@cycle4
- jmp @@check
- @@lose_2:
- mov flag_was_crash, 1
- inc result
- jmp @@check
- @@win_2:
- mov flag_was_crash, 1
- dec result
- jmp @@check
- @@check:
- cmp flag_was_crash, 0
- jne @@go_out
- ret
- @@go_out:
- call sys_exit
- ret
- endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement