Tahap awal dalam membuat game Labirin ini adalah menentukan rintangan (jalan). untuk mendesign jalan keluar (labirin) saya mengguakan Ms Excel untuk mempermudah koordinat si rintangan tersebut. Berikut adalah design rintangan dalam Ms Excel:
Berikut adalah source code Game Labirin:
=================================================================
Tulis_Kar MACRO X,Y,Kar
MOV AX,0B800hMOV 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 ES:[BX],AL ; Tampilkan Karakter
ENDM
Tes MACRO X,Y,N1,N2
LOCAL CIP
CMP X,N1
JNE CIP
CMP Y,N2
JE Gagal
CIP:
Tulis_Kar X,Y,1
ENDM
.MODEL SMALL
.STACK 100h
.DATA
.CODE
TData: JMP Proses
Rintangan DB 0b2h, 15 DUP (0b2h),0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,0b2h,13,10
DB 0b2h,,0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,' ',0b2h,0b2h,0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,' ',0b2h,0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,13,10
DB 0b2h,0b2h,0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,' ',0b2h,0b2h,0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,0b2h,' ',0b2h,' ',0b2h,0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,' ',0b2h,0b2h,' ',0b2h,' ',0b2h,0b2h,13,10
DB 0b2h,' ',0b2h,' ',0b2h,0b2h,0b2h,0b2h,' ',0b2h,0b2h,' ',13,10
DB 0b2h, 15 DUP (0b2h),0b2h,13,10,'$'
GO DB 'Game over...',7,7,7,7,7,'$'
Selamat DB 'SELAMAT!',13,10,'Anda berhasil!!!!!!$'
X DB 1
Y DB 1
Proses:
MOV AX,@DATA
MOV DS,AX
MOV AX,0600h
XOR CX,CX
MOV DX,284Fh
MOV BH,11111001b
INT 10h
MOV AH,02
XOR BX,BX
MOV DH,0 ; posisi X
MOV DL,0 ; posisi Y
INT 10h ; pindahkan kursor ke posisi 0,0
;Cetak Rintangan
MOV AH,09
LEA DX,Rintangan
INT 21h
MOV DX,28
Tulis_Kar X,Y,1
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 Y,15
JNE wuih
CMP X,16
JE Sukses
wuih:
CMP X,16
JE Gagal
JMP Ngecek
Kiri:
Tulis_Kar X,Y,32,248
DEC X
CMP X,0
JE Gagal
JMP Ngecek
Atas:
Tulis_Kar X,Y,32,248
DEC Y
CMP Y,0
JE Gagal
JMP Ngecek
Bawah:
Tulis_Kar X,Y,32,248
INC Y
CMP Y,16
JE Gagal
JMP Ngecek
Ngecek:
;=====================Baris 1
Tes X,Y,4,1
Tes X,Y,8,1
Tes X,Y,13,1
Tes X,Y,14,1
Tes X,Y,15,1
;=====================Baris2
Tes X,Y,1,2
Tes X,Y,2,2
Tes X,Y,4,2
Tes X,Y,8,2
Tes X,Y,10,2
Tes X,Y,11,2
Tes X,Y,14,2
Tes X,Y,15,2
;====================Baris3
Tes X,Y,4,3
Tes X,Y,6,3
Tes X,Y,8,3
Tes X,Y,10,3
Tes X,Y,12,3
;====================Baris4
Tes X,Y,2,4
Tes X,Y,3,4
Tes X,Y,4,4
Tes X,Y,6,4
Tes X,Y,8,4
Tes X,Y,10,4
Tes X,Y,12,4
Tes X,Y,13,4
Tes X,Y,14,4
;===================Baris5
Tes X,Y,4,5
Tes X,Y,6,5
Tes X,Y,8,5
Tes X,Y,12,5
;==================Baris6
Tes X,Y,2,6
Tes X,Y,4,6
Tes X,Y,5,6
Tes X,Y,6,6
Tes X,Y,8,6
Tes X,Y,9,6
Tes X,Y,10,6
Tes X,Y,12,6
;=================Baris7
Tes X,Y,2,7
Tes X,Y,4,7
Tes X,Y,8,7
Tes X,Y,10,7
Tes X,Y,12,7
Tes X,Y,14,7
;=================Baris8
Tes X,Y,2,8
Tes X,Y,7,8
Tes X,Y,8,8
Tes X,Y,10,8
Tes X,Y,12,8
Tes X,Y,14,8
;================Baris9
Tes X,Y,2,9
Tes X,Y,3,9
Tes X,Y,4,9
Tes X,Y,5,9
Tes X,Y,8,9
Tes X,Y,12,9
Tes X,Y,14,9
;===============Baris10
Tes X,Y,2,10
Tes X,Y,4,10
Tes X,Y,10,10
Tes X,Y,11,10
Tes X,Y,14,10
;===============Baris11
Tes X,Y,4,11
Tes X,Y,5,11
Tes X,Y,6,11
Tes X,Y,7,11
Tes X,Y,11,11
;===============Baris12
Tes X,Y,2,12
Tes X,Y,4,12
Tes X,Y,9,12
Tes X,Y,10,12
Tes X,Y,11,12
Tes X,Y,14,12
Tes X,Y,15,12
;===============Baris13
Tes X,Y,4,13
Tes X,Y,6,13
Tes X,Y,7,13
Tes X,Y,12,13
Tes X,Y,15,13
;===============Baris14
Tes X,Y,2,14
Tes X,Y,4,14
Tes X,Y,9,14
Tes X,Y,10,14
Tes X,Y,12,14
Tes X,Y,15,14
;===============Baris15
Tes X,Y,2,15
Tes X,Y,6,15
Tes X,Y,7,15
Tes X,Y,8,15
Tes X,Y,9,15
Tes X,Y,12,15
Tes X,Y,13,15
JMP Jalan
Gagal:
MOV AH,9h
LEA DX,GO
INT 21h
JMP Akhir
Sukses:
MOV AH,9h
LEA DX,Selamat
INT 21h
MOV AH,0
INT 16h
Akhir:
MOV AH,4Ch
INT 33
END TData
Tidak ada komentar:
Posting Komentar
ketikan komentarmu disini!!!