Berikut adalah source code Game Mobil Bahasa Asembly
=================================================================
cls macro ; untuk menghapus jejak rintangan 1
gotoxy xx,yh
inc yh
string hkar
endm
cls1 macro ;untuk menghapus jejak rintangan 2
gotoxy xxx,yyh
inc yyh
string hkar
endm
cls2 macro ; untuk menghapus jejak rintangan 3
gotoxy xxxx,yyyh
inc yyyh
string hkar
endm
bcls macro x ;menghapus jejak mobil
gotoxy X,18
string hkar
endm
gotoXY macro x,y ; untuk memindahkan kursor/menentukan posisi cetak
mov ah,02
xor bx,bx
mov dh,Y
mov dl,X
int 10h
endm
string macro s ;untuk mencetak karakter
mov ah,09h
lea dx, s
int 21h
endm
delay macro n
mov ah,2ch ;mengambil time di komputer
int 21h ;detik disimpan pada register dh
mov bh,dh ;menmpung nilai dh, yang kemudian dijadikan pembanding
balik:
mov ah,2ch
int 21h
sub dh,bh
cmp dh,n
jb balik
endm
.model small
.code
org 100h
jmp pro
Frame DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,32,32,32,47,16 DUP (176),92,13,10
DB 176,' ',176,32,32,32,176,' Nurul Arifin S ',176,13,10
DB 176,' ',176,32,32,32,176,' G64114018 ',176,13,10
DB 176,' ',176,32,32,32,176,' Noordama ',176,13,10
DB 176,' ',176,32,32,32,176,' G64114025 ',176,13,10
DB 176,' ',176,32,32,32,92,16 DUP (176),47,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 176,' ',176,13,10
DB 92,9 DUP (176),47,13,10
DB 13,10
DB 13,10
DB 13,10
DB 13,10,'$'
kiri equ 4bh ; keyboard arah kiri
kanan equ 4dh ;keyboard arah kanan
atas equ 48h ;keyboard arah atas
nilai db 'Nilai : $'
score db '0','$'
bscore db '00','$'
seribu db '1000','$'
stop db 'Tekan sembarang tombol untuk keluar..$'
mati db 'Game over...!!!$'
sukses db 'Anda Menang..!!!$'
baru db 0
kbaru db 0
kar db 223,223,223,'$' ; rintangan
hkar db 32,32,32,'$' ; hapus rintangan
zkar db 19,94,19,'$' ;mobil
y db 0 ; posisi y ritangnan 1 awal
yh db -1 ;hapus rintangan 1
yy db 0 ;posisi y ritangnan 2 awal
yyh db -1 ;hapus ritangnan 2
yyy db 0 ;posisi y ritangnan 3 awal
yyyh db -1 ;ritangnan 3
x db 4 ; mobil
xx db 1 ;posisi x ritangnan 1
xxx db 4 ;posisi x ritangnan 2
xxxx db 7 ;posisi x ritangnan 3
pro:
; untuk menghapus layar dan membuatnya warna putih, tulisan biru
mov ax,0600h
xor cx,cx
mov dx,184fh ;
mov bh,11111001b
int 10h
;mencetak frame
string Frame
;mencetak nilai
gotoxy 1,21
string nilai
process:
;cek score
cmp score,57
ja ribu
gotoxy 7,21
string score
gotoxy 8,21
string bscore
jmp biasa
ribu:
gotoxy 7,21
string seribu
je menang
biasa:
; menyembunykan kursor
mov ah, 1
mov ch, 2bh
mov cl, 0bh
int 10h
;cek inputan user
mov ah, 01h
int 16h
jz no_input
xor ax,ax
int 16h
cmp al, 1bh ; tekan esc keluar
je exit
cmp ah, kiri
je kekiri
cmp ah, kanan
je kekanan
no_input:
; cetak rintangan 1
cls
gotoxy xx,y
inc y
string kar
; cek dan rintangan 2
cmp baru,5
jb kbar
cls1
gotoxy xxx,yy
inc yy
string kar
; cek dan rintangan 3
kbar:
cmp kbaru,10
jb lewat
cls2
gotoxy xxxx,yyy
inc yyy
string kar
lewat:
gotoxy x,18
string zkar
;cek score ketika berhasil melewati rintangan
mov dh,xx
cmp dh,x
jne scorexx
cmp y,19
je over
scorexx:
cmp y,19
jne cek2
inc score
cek2:
mov dh,xxx
cmp dh,x
jne scorexxx
cmp yy,19
je over
scorexxx:
cmp yy,19
jne cek3
inc score
cek3:
mov dh,xxxx
cmp dh,x
jne scorexxxx
cmp yyy,19
je over
scorexxxx:
cmp yyy,19
jne trus
inc score
trus:
mov ah, 01h
int 16h
jz slow
xor ax,ax
int 16h
cmp ah, atas ; gas rintangan
je gas
slow:
delay 1
gas:
jmp keloop
;belok kiri
kekiri:
cmp x,1
je bs
bcls x
sub x,3
bs:
gotoxy x,18
string zkar
jmp no_input
;belok kiri
kekanan:
cmp x,7
je bsa
bcls x
add x,3
bsa:
gotoxy x,18
string zkar
jmp no_input
; cek sudah rintangan sudah sampai bawah belum
keloop:
inc baru
inc kbaru
cmp y,19
jne dua
cls
sub y,19
sub yh,20
dua:
cmp yy,19
jne tiga
cls1
sub yy,19
sub yyh,20
mov baru,0
tiga:
cmp yyy,19
jne process
cls2
sub yyy,19
sub yyyh,20
mov kbaru,0
jmp process
;jika mati
over:
gotoxy 0,23
string mati
jmp exit
;jika menang
menang:
gotoxy 0,23
string sukses
jmp exit
exit:
gotoxy 0,24
string stop
xor ax,ax
int 16h
int 20h
end
Tidak ada komentar:
Posting Komentar
ketikan komentarmu disini!!!