_____________________________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________________________________________________

cuaca

$province_id = substr(trim(strip_tags(@$_GET['province_id'])), 0, 2); require('lib/bmkg.php'); $bmkg = new BMKG(); $data = $bmkg->weather($province_id); header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); echo json_encode($data, JSON_PRETTY_PRINT);

Minggu, 06 Mei 2012

Game Menggunakan Bahasa Asembly IV (Mobil)

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!!!