LAPORAN TUGAS BESAR
DASAR ALGORITMA & PEMOGRAMAN
JUDUL PROGRAM
“2048”
BIDANG KEGIATAN:
MATH GAMES
Diusulkan oleh:
Dhia Aziz Rizqi Arrahman (Ketua/1301140364/2014)
Lanny Septiani (Anggota1/1301144034/2014)
Renaldy Hardyanto (Anggota2/1301144334/2014)
Budi Santiko (Anggota3/1301144404/2014)
UNIVERSITAS TELKOM
BANDUNG
2014
RINGKASAN
A. JUDUL
Judul game yang kami ajukan adalah
2048.
B. LATAR BELAKANG MASALAH
Saat ini teknologi sudah sangat berkembang. Begitu pula berdampak pada game-game yang
ditawarkan pada gadget anda. Apabila kita mencari game, maka akan banyak bermunculan
banyak judul game yang tentunya memiliki ciri khas masing-masing. Dari sekian banyak
game yang sudah ada saat ini, beberapa diantaranya dapat dibuat melalui program pascal.
Termasuk salah satu game yang cukup menarik yakni game
2048
. Game ini sederhana,
namun dapat membuat penggunanya ketagihan untuk bermain. Selain menarik, game ini juga
dapat mengasah kemampuan berhitung anda. Sehingga kami memutuskan untuk membuat
game 2048 ini untuk tugas Dasar algoritma & pemograman kali ini.
C. RUMUSAN MASALAH
1. Apa itu game
2048
?
2. Bagaimana cara membuat game
2048
menggunakan pascal?
D. TUJUAN
1. Untuk mengetahui lebih dalam mengenai game
2048
2. Untuk mengetahui cara membuat game
2048
melalui pascal
E. PERSOALAN
Untuk memenuhi tugas Dasar algoritma & pemograman, kami membuat sebuah program
game dengan judul
2048
. Game
2048
adalah sebuah game puzzle matematika yang
membutuhkan strategi untuk mencapai angka
2048
. Dalam game ini, tersedia beberapa kotak
kosong yang nantinya beberapa kotak akan diisi oleh angka 2 atau 4 secara random. Kotak
akan bergeser ketika pemain menekan salah satu tombol arah pada keyboard. Angka-angka
dalam kotak tersebut hanya bisa dijumlahkan dengan angka yang sama (misalkan, angka 2
hanya bisa dijumlahkan dengan angka 2 lagi yang akan menghasilkan angka 4 pada satu
kotak), dan seterusnya. Tujuan dari game ini adalah menjumlahkan angka angka yang ada
pada kotak hingga muncul kotak dengan jumlah angka
2048
. Angka 2 atau 4 akan muncul
secara
random
ketika pemain menekan tombol arah.
Papan skor dikanan atas akan terus memperbarui skor pemain. Skor pemain berawal dari
angka nol, lalu bertambah ketika dua kotak bergabung dan membentuk kotak bernomor baru
dan seterusnya seiring dengan kotak kotak yang berhasil dijumlahkan. Seperti permainan
arcade
lainnya, skor terbaik pemain akan ditampilkan bersandingan dengan skor saat itu.
F. FUNGSIONALITAS
Menjawab persoalan diatas , kami membuat suatu program yang memiliki fungsionalitas sebagai berikut :
1. Input Direction Perintah yang diinputkan oleh user untuk menentukan arah sebagai langkah selanjutnya
2. Add, delete, edit nilai table Perintah untuk menambahkan nilai pada table kosong, mengedit nilai kolom bernilai sama, dan menghapuskan tabael penjumlah sebelumnya. 3. Pengisian table kosong secara random berisi perintah untuk mengecek posisi-posisi
tabel yang memiliki nilai kosong kemudian menginputkan nilai 2 atau 4 secara random di salah satu tabel kosong tadi.
4. 2048! perintah yang dilakukan secara berkala untuk mengecek ada tidaknya kolom yang bernilai 2048 yang merupakan kondisi untuk mengakhiri game.
5. Score merupakan perintah untuk menambah score dari perbuatan sesuai kolom-kolom yang saling di jumlahkan. Apabila telah menemukan agnka 2048 akan diberi score tambahan.
6. View rankingPerintah untuk menampilkan urutan score yang tersimpan. 7. Game over Perintah untuk pengecekan kondisi game telah berakhir atau tudak
G. SPESIFIKASI PENJELASAN PROGRAM DAN FUNGSIONALITAS
Pada program ini angka-angka genap yang akan dimainkan disimpan dalam array dua dimensi yang terdiri dari 4 buah kolom dan 4 buah baris. Sedangkan procedure dan function dibuat berdasarkan Fungsionalitas yang telah ditentukan, yakni:
1. Input Direction
Procedure InDirection = Procedure yang berisi perintah untuk menginputkan arah(up,down,left,right) sebagai langkah selanjutnya dalam permainan.
Function CekAvailable = Fungsi bertipe yang mengembalikan nilai boolean untuk mengecek apakah terdapat kolom yang bias kosong dan bisa dijumlahkan sesuai ketentuan, apabila false maka akan mengulang ke procedure InDirection.
2. Add, delete, edit nilai table
Terdiri dari fungsi add table yang mengembalikan nilai integer dari tabel kosong menjadi bernilai, fungsi edit table yang mengembalikan nilai integer dengan menjumlahkan antara 2 buah tabel, dan fungsi delete tabel yang mengembalikan nilai integer dengan merubah tabel yang menjumlahkan menjadi nol.
3. Pengisian table kosong secara random
Dengan memanfaatkan procedure IsiRandom yang menghasilkan nilai integer pada salah satu tabel yang bernilai kosong untuk dimasukkan nilai 2 atau 4 secara random, baik pemilihan tabelnya ataupun pemilihan angkanya.
4. 2048!
Berisi Fungsi Cek2048 yang berfungsi untuk mengecek keberadaan kolom yang bernilai 2048, apabila terdapat nilai 2048 maka game akan berakhir dengan kondisi menang.
5. Score
Score merupakan tujuan yang dicari pada game ini, untuk mendapatkan score digunakan fungsi sumscore yang mengembalikan nilai integer dengan menjumlahkan score itu sendiri berdasarkan penjumlah kolom yang diproses pada fungsi edit table sebelumnya. Score dimulai dari nilai nol. Score disimpan dalam bentuk file sederhana berupa bentuk teks.
6. View ranking
Berisi procedure ViewRank untuk memunculkan data ranking berdasarkan score yang telah disorting dari tinggi ke rendah sebelumnya. Ranking hanya menampung 10 data jadi data yang terkecil akan tereleminasi.
Berisi procedure CekStep untuk mengecek masih terdapat langkah atau tidak untuk melanjutkan permainan ini, yang dicek adalah ada tidaknya bilangan yang dapat dijumlah dan banyaknya kotak kosong, apabila tidak terdapat bilangan yang dapat dijumlah dan semua kotak penuh maka game akan berkahir.
Program dalam algoritma:
Program ketika di Run
KESIMPULAN