Berikut adalah tampilan Game Makan
Berikut Source code Game Makan bahasa asembly
=================================================================
; MACRO untuk menuliskan satu karakter pada posisi X Y di layar
; Punyanya S'to :)
Tulis_Kar MACRO X,Y,Kar,Attr
MOV AX,0B800h
MOV ES,AX ; ES Menunjuk pada segment layar
MOV AH,Y
MOV AL,160
MUL AH ; Hitung offset baris
MOV BX,AX ; Simpan hasilnya pada BX
MOV AH,X
MOV AL,2
MUL AH ; Hitung offset kolom
ADD BX,AX ; Tambahkan hasilnya pada BX
MOV AL,Kar ; AL=karakter yang akan ditampilkan
MOV AH,Attr
MOV ES:[BX],AL ; Tampilkan Karakter
MOV ES:[BX+1],AH ; pada posisi kolom X dan baris Y
ENDM
CekF MACRO X,Y,Kar,Attr
LOCAL Beres
CMP X,Kar
PUSHF
POP AX
CMP Y,Attr
PUSHF
POP BX
ADD AL,BL
CMP AL,8Ch
JNE Beres
INC Nilai
Tulis_Kar 7,23,Nilai,240
Beres:
ENDM
.MODEL SMALL
.STACK 100h
.DATA
Score DB 'Score: 000',13,10,'$'
Nilai DB 48
Frame DB 47, 23 DUP (45), 92,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 124,' ',124,13,10
DB 124,' ',124,13,10
DB 124,' * ',124,13,10
DB 92, 23 DUP (45),47,13,10,'$'
Ouch DB 'Game over...',7,'$'
Yeah DB 'Selamat! Anda berhasil!$'
X DB 12
Y DB 11
.CODE
Program:
MOV AX,@DATA
MOV DS,AX
; FULL SCREEN
MOV AX,0600h
XOR CX,CX
MOV DX,284Fh
MOV BH,11110000b ; Warna layar
INT 10h ; Hapus layar (supaya bisa fullscreen)
; GOTO 0,0
MOV AH,02
XOR BX,BX
MOV DH,0 ; posisi X
MOV DL,0 ; posisi Y
INT 10h ; pindahkan kursor ke posisi 0,0
; Frame & Scoreboard
MOV AH,09
LEA DX,Frame
INT 21h
LEA DX,Score
INT 21h
MOV DX,28
Tulis_Kar X,Y,88,240
Jalan:
MOV AH,0
INT 16h
PUSH AX
CMP AH,77
JE Kanan
CMP AH,75
JE Kiri
CMP AH,72
JE Atas
CMP AH,80
JE Bawah
JMP Jalan
Kanan:
Tulis_Kar X,Y,32,248
INC X
CMP X,24
JE Gagal
; Cek posisi "makanan"
CekF X,Y,3,2
CekF X,Y,14,4
CekF X,Y,5,6
CekF X,Y,18,9
CekF X,Y,8,13
CekF X,Y,21,14
CekF X,Y,4,18
CekF X,Y,12,21
Tulis_Kar X,Y,88,240
CMP Nilai,'8'
JE Sukses
JMP Jalan
Kiri:
Tulis_Kar X,Y,32,248
DEC X
CMP X,0
JE Gagal
; Cek posisi "makanan"
CekF X,Y,3,2
CekF X,Y,14,4
CekF X,Y,5,6
CekF X,Y,18,9
CekF X,Y,8,13
CekF X,Y,21,14
CekF X,Y,4,18
CekF X,Y,12,21
Tulis_Kar X,Y,88,240
CMP Nilai,'8'
JE Sukses
JMP Jalan
Atas:
Tulis_Kar X,Y,32,248
DEC Y
CMP Y,0
JE Gagal
; Cek posisi "makanan"
CekF X,Y,3,2
CekF X,Y,14,4
CekF X,Y,5,6
CekF X,Y,18,9
CekF X,Y,8,13
CekF X,Y,21,14
CekF X,Y,4,18
CekF X,Y,12,21
Tulis_Kar X,Y,88,240
CMP Nilai,'8'
JE Sukses
JMP Jalan
Bawah:
Tulis_Kar X,Y,32,248
INC Y
CMP Y,22
JE Gagal
; Cek posisi "makanan"
CekF X,Y,3,2
CekF X,Y,14,4
CekF X,Y,5,6
CekF X,Y,18,9
CekF X,Y,8,13
CekF X,Y,21,14
CekF X,Y,4,18
CekF X,Y,12,21
Tulis_Kar X,Y,88,240
CMP Nilai,'8'
JE Sukses
JMP Jalan
Gagal:
LEA DX,Ouch
MOV AH,9h
INT 21h
JMP Beres
Sukses:
LEA DX,Yeah
MOV AH,9h
INT 21h
Beres:
MOV AH,4Ch
INT 33
END Program
Tidak ada komentar:
Posting Komentar
ketikan komentarmu disini!!!