GummyBear09
Dipersiapkan oleh:
GummyBear09
Monika Tarsisia Nangoi
/ 18213007
Rana Nugramahesa
/ 18213013
Jessica Nathania
/ 18213038
Sekolah Teknik
Elektro dan
Informatika ITB
Nomor Dokumen
IF2111-TB-0901
Halaman
29
5 12 2014
Daftar Isi
1
Ringkasan..................................................................................................................................4
2 Penjelasan Tambahan Spesifikasi Tugas ................................................................................ 4
2.1
AssignGedung ........................................................................................................... 4
2.2
AssignBoard .............................................................................................................. 4
2.3
Register ................................................................................................................. 4
2.4
LogIn ................................................................................................................ 5
2.5
About ................................................................................................................. 5
2.6
PreparationMenu ....................................................................................................... 5
2.7
StatusGame ............................................................................................................... 5
2.8
StartGame .................................................................................................................. 6
2.9
HitungAsetGedung ................................................................................................... 6
2.10 IndeksGedung ........................................................................................................... 6
2.11 DapatSewa ................................................................................................................ 6
2.12 DapatSewaIfBankrupt ............................................................................................... 7
2.13 KepemilikanGedung ................................................................................................. 7
2.14 KocokDadu ............................................................................................................... 7
2.15 SellGedung ................................................................................................................ 7
2.16 BeliGedung ................................................................................................................ 7
2.17 ValidasiLokasi............................................................................................................ 8
2.18 PemainPadaGedung ................................................................................................... 8
2.19 PemainPadaPenjara ................................................................................................... 8
2.20 PemainPadaBusITB .................................................................................................. 8
2.21 ValidasiGedungPemain ............................................................................................. 9
2.22 ValidasiGedungLawan .............................................................................................. 9
2.23 NomorPosisi .............................................................................................. 9
2.24 PemainPadaTukarGedung ......................................................................................... 9
2.25 GameOver ......................................................................................................... 9
2.26 KompleksPemain ...................................................................................................... 10
2.27 ListHighScore ........................................................................................................... 10
2.28 Undian ................................................................................................................... 10
2.29 ChangeTurn ............................................................................................................... 11
2.30 Gotoxy............................................................................................................ 11
2.31 SetColor ..................................................................................................... 11
2.32 CetakBoard .................................................................................................... 11
2.33 Tulisan ................................................................................................... 11
2.34 Interdace Register .............................................................................................. 11
2.35 InterfaceDisplayUtama .............................................................................................. 12
2.36 InterfaceLogin ................................................................................................ 12
2.37 InterfaceAbout ................................................................................................ 12
2.38 Help ............................................................................................................ 12
2.39 InterfacePrepartionMenu ........................................................................................... 12
2.40 InterfaceHighScoreBoard........................................................................................... 12
2.41 TicTacToe.............................................................................................................. 13
3 Program Utama ..................................................................................................................... 14
3.1 FlowChart..................................................................................................................... 14
3.2 Ide Algoritma............................................................................................................... 15
4 Algoritma Menarik.................................................................................................................. 15
4.1 Algoritma Board Game ............................................................................................... 16
5 Pembagian Kerja dalam Kelompok ........................................................................................ 2
2
6 Lampiran ................................................................................................................................. 2
3
6.1 Deskripsi Tugas Besar................................................................................................. 23
6.2 Notulen Rapat.............................................................................................................. 25
6.3 Log Activity Anggota Kelompok................................................................................ 26
6.4
Lainnya ...................................................................................................................... 28
1 Ringkasan
Ganeca Lets Get Rich adalah sebuah program yang digunakan untuk mensimulasikan
permainan Line Lets Get Rich yang saat ini sedang popular. Fungsi dan/atau feature pada
game yang kami buat tidak jauh berbeda dari permainan Line Lets Get Rich dan permainan
monopoli pada umumnya. Permainan ini dapat dimainkan oleh 2-4 pemain yang masingmasing mendapat giliran untuk mengocok 2 buah dadu. Setiap pemain akan bergerak sesuai
angka yang ditunjukkan dadu dan mendapat kesempatan untuk membeli/menyewa gedung
yang ditempatinya, mengikuti undian, mendapat kartu kesempatan, dll. Apabila mendatangi
gedung yang sudah dimiliki pemain lain, seorang pemain harus membayar uang sewa, dan
apabila tidak memiliki cukup uang untuk membayar uang sewa, pemain tersebut dianggap
kalah dan harus keluar dari permainan. Jika ada pemain yang sudah memiliki 2 kompleks
gedung dan/atau memiliki semua kantin, pemain tersebut dianggap menang dan permainan
akan berakhir. Seorang pemain juga menjadi pemenang jika sudah tidak ada lagi pemain lain
yang mengikuti permainan (semua pemain lain sudah kalah).
Ada beberapa kesempatan yang bisa didapat pemain, diantaranya adalah penjara, bus ITB, dan
tukar gedung. Jika pemain masuk penjara, pemain tersebut harus tetap di dalam penjara (tidak
mendapat giliran main) selama 3 putaran, kecuali jika mendapatkan angka kembar pada saat
pengocokan dadu. Kartu kesempatan bus ITB memungkinkan pemain berpindah tempat
kemanapun Ia mau. Kartu kesempatan tukar gedung dapat digunakan untuk menukar gedung
yang sudah dimiliki dengan gedung pemain lain.
Fungsi IsGame
Fungsi ini berfungsi untuk mengembalikan nilai true bila kondisi menang
terpenuhi.
boolean IsGame(Board B);
//Mengembalikan true bila kondisi menang terpeneuhi
2.3
Prosedur Inisialisasi
Inisialisasi digunakan untuk meng-assign (menginisialisasi) Atribut Gedung ke
TabBoard
void Inisialisasi (Board *B);
//I.S. = Sembarang
//F.S. = Membuat board permainan
assign Gedung ke TabBoard
2.4
dengan
meng-
Prosedur JualGedung
JualGedung digunakan pada saat pemain tidak memiliki cukup uang untuk
membayar pajak ketika menginjak gedung milik pemain lain. Ketika prosedur ini
digunakan pemain akan menjual gedungnya hingga cukup untuk membayar pajak
dari gedung yang dia singgahi.
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
2.5
Fungsi KompleksGedung
Kompleksgedung berfungsi untuk mengembalikan komlpeks dari gedung yang
diminta.
char KompleksGedung (Board B, indeks i);
//Mengembalikan kompleks gedung yang diminta
2.6
Fungsi LokasiGedung
LokasiGedung berfungsi mengembalikan lokasi gedung yang diminta.
int LokasiGedung (Board B, indeks i);
//Mengembalikan lokasi gedung yang diminta
2.7
F u n g s i HargaGedung
HargaGedung berfungsi mengembalikan harga dari gedung yang diminta.
int HargaGedung (Board B, indeks i);
//Mengembalikan harga gedung yang diminta
2.8
Fungsi HargaPajak
HargaPajak berfungsi mengembalikan harga dari pajak sebuat gedung.
int HargaPajak (Board B, indeks i);
//Mengembalikan harga pajak gedung
2.9
Fungsi HitungAsetGedung
HitungAsetGedung berfungsi untuk menghitung asset yang dimiliki masingmasing pemain. Nilai asset didapat dengan menambahkan nilai asset awal
(10000000) dengan harga jual setiap gedung yang dimiliki.
int HitungAsetGedung (Pemain P, GedungArray G);
// Menghitung aset gedung yang dimiliki oleh
Head(Q)
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
integer
yang
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
START
3 Program Utama
3.1 Flowchart
Memanggil prosedur
Help();
Pilihan pada
main menu
Memanggil prosedur
LogIn();
LogIn
berhasil(?)
Memanggil prosedur
About();
Memanggil prosedur
Register();
END
Menampilkan Preparation
Menu
Memilih pilihan pada preparation
menu
STEI- ITB
Pilihan pada
preparation
menu
StartGame()
;
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumenLogOut();
ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
Menampilkan
HighScoreBoard
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
4 Algoritma Menarik
Ada algoritma menarik yang ditemukan.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
//Penutup atas
for (j=15; j<75; j=j+48){
gotoxy (j, 14);
printf ("%c", 197);
}
//Penutup bawah
for (j=15; j<75; j=j+48){
gotoxy (j, 50);
printf ("%c", 197);
}
//Penutup vertikal atas I
for (j=15; j<75; j=j+12){
gotoxy (j, 5);
printf ("%c", 194);
}
//Penutup vertikal atas II
for (j=27; j<63; j=j+12){
gotoxy (j, 14);
printf ("%c", 193);
}
//Penutup horizontal kiri I
for (j=14; j<59; j=j+9){
gotoxy (3, j);
printf ("%c", 195);
}
//Penutup horizontal kiri II
for (j=23; j<50; j=j+9){
gotoxy (15, j);
printf ("%c", 180);
}
//Penutup horizontal kanan I
for (j=23; j<50; j=j+9){
gotoxy (63, j);
printf ("%c", 195);
}
//Penutup horizontal kanan II
for (j=14; j<59; j=j+9){
gotoxy (75, j);
printf ("%c", 180);
}
//Penutup vertikal atas III
for (j=27; j<63; j=j+12){
gotoxy (j, 50);
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
SetColor(8);
printf("%s", (G).Gedung[17].Nama); //UNDIAN
gotoxy(17,9);
SetColor(9);
printf("%s", (G).Gedung[8].Nama); //AULA_BARAT
gotoxy(29,9);
SetColor(9);
printf("%s", (G).Gedung[9].Nama); //AULA_TIMUR
gotoxy(41,9);
SetColor(6);
printf("%s", (G).Gedung[16].Nama); //KESEMPATAN
gotoxy(53,9);
SetColor(3);
printf("%s", (G).Gedung[10].Nama); //K_BARRACK
gotoxy(66,9);
SetColor(8);
printf("%s", (G).Gedung[18].Nama); //BUS_ITB
gotoxy(65,18);
SetColor(6);
printf("%s", (G).Gedung[16].Nama); //KESEMPATAN
gotoxy(66,27);
SetColor(3);
printf("%s", (G).Gedung[11].Nama); //K_BORJU
gotoxy(64,36);
SetColor(5);
printf("%s", (G).Gedung[12].Nama); //LABTEK_VIII
gotoxy(66,45);
SetColor(5);
printf("%s", (G).Gedung[13].Nama); //LABTEK V
: Monika Tarsisia
: 18213007
Tugas yang dikerjakan
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
Nama
Mahasiswa
NIM
Nomo
r
1
2
3
4
: 18213011
Tugas yang dikerjakan
Membuat
Membuat
Membuat
Membuat
Nama
Mahasiswa
NIM
Nomo
r
1
2
3
4
: Rana Nugramahesa
laporan
ADT List untuk High Score
ADT Stack untuk Undian
laporan
: Jessica Nathania
: 18213038
Tugas yang dikerjakan
Membuat
Membuat
Membuat
Membuat
Interface
Bonus (Tic Tac Toe)
board permainan
laporan
6 Lampiran
6.1 Deskripsi Tugas Besar
Ganeca Lets Get Rich adalah permainan yang serupa dengan permainan monopoli biasa.
Permainan ini dapat dimainkan oleh 2-4 pemain. Urutan permainan ditentukan berdasarkan
urutan masukan nama pemain di awal permainan. Pemain kemudian bermain dengan cara
mengocok 2 buah dadu yang masing-masing dadu berisi rentang angka 1-6. Pemain
kemudian menempati kota sesuai angka pada dadu, dan berkesempatan membeli/menyewa
kota tersebut. Pemain kalah dari permainan jika uang yang dimiliki tidak cukup untuk
menyewa kota yang ditempati. Permainan selesai jika telah diperoleh pemenang.
Suatu pemain dinyatakan menang apabila memenuhi salah satu kondisi berikut.
1. Semua pemain lain bangkrut.
Suatu pemain dinyatakan bangkrut apabila tidak mampu membayar uang sewa sama
sekali.
2. Pemain menguasai 2 kompleks angka.
3. Pemain menguasai kompleks K (Kantin).
Spesifikasi Permainan
1. Pemain
- Jumlah pemain terdiri dari 2-4 pemain.
- Setiap pemain memiliki atribut sebagai berikut.
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
pemain lain. Pemain hanya dapat menggunakan kartu ini apabila memiliki minimal
1 buah gedung untuk ditukar
Batasan dan Asumsi
Implementasi tugas besar harus menggunakan bahasa C. Tidak diperkenankan
untuk menggunakan bahasa pemrograman lainnya.
Pembuatan Alur Game Ganeca Lets Get Rich harus sesuai dengan spesifikasi yang
telah disebutkan pada bagian sebelumnya. Atribut-atribut yang digunakan pun,
misalnya nama gedung dan harga beli harus sesuai dengan deskripsi soal ini
Input dari user harus selalu divalidasi. Apabila input user tidak sesuai, maka harus
ada peringatan yang menginformasikan bahwa input salah dan harus
memberitahukan user contoh input yang benar.
Untuk mengimplementasikan fungsionalitas penyimpanan pada game, misalnya
save game dan load game, gunakan konsep file eksternal.
Berikan komentar pada kode yang dibuat. Usahakan agar kode yang dibuat benarbenar well-commented
Bagian bonus dikerjakan apabila semua spesifikasi utama telah diimplementasikan.
Apabila bonus telah dikerjakan tetapi terdapat spesifikasi utama yang belum
dikerjakan, maka bonus tersebut akan gugur.
Asumsi yang digunakan dalam pembuatan tugas besar ini diantaranya:
Tidak diberikan spesifikasi untuk tampilan board (area permainan Ganeca Lets
Get Rich). Oleh karena itu, tampilan dapat didesain sebagus mungkin dan dapat
dengan mudah dipahami oleh user. Meskipun begitu, harus tetap berpedoman pada
spesifikasi program yang telah didefinisikan.
Board permainan dibuat dengan memanfaatkan ASCII Word Art dan fungsi go-to x y
ADT Queue digunakan untuk menyimpan data pemain dan menentukan urutan pemain
ADT List digunakan untuk menyimpan dan menampilkan data High Score
ADT File External Array digunakan untuk registrasi dan log in pemain
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
Tanggal
13 November
2014
14 November
2014
15 November
2014
16 November
2014
17 November
2014
18 November
2014
19 November
2014
20 November
2014
21 November
2014
22 November
2014
23 November
2014
24 November
2014
25 November
2014
26 November
STEI- ITB
Rana Nugramahesa
(18213011)
-
Jessica Nathania
(18213038)
Mulai mengerjakan board
Mengerjakan board
Membuat Queue
permainan
Memperbaiki Queue
permainan
-
Mengerjakan board
Mengerjakan board
Memperbaiki List
HighScore
-
Mulai mengerjakan
interface
Mengerjakan interface
Mengerjakan interface
Mengerjakan interface
Memperbaiki bug
Mulai mengerjakan
TicTacToe
Mengerjakan TicTacToe
Mengerjakan TicTacToe
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
15
16
17
18
2014
27 November
2014
28 November
2014
29 November
2014
30 November
2014
01 Desember 2014
19
20
21
02 Desember 2014
03 Desember 2014
Mengerjakan TicTacToe
Menerjakan TicTacToe
Mengerjakan TicTacToe
Memperbaiki bug
Memperbaiki bug
Memperbaiki bug
Mengerjakan prosedur
pembacaan&penulisan file
eksternal untuk list
highscore
Membuat program utama
Memperbaiki bug
Memperbaiki Stack
Undian
04 Desember 2014
Menggabungkan interface
dengan program utama
05 Desember 2014
Memperbaiki bug
22
23
of game
Mengerjakan ADT Rules
of game
-
STEI- ITB
Mengecek program
utama
Menggabungkan
semuanya dan
mengerjakan laporan
Membuat Laporan
IF2111-TB-09-01
Mengerjakan interface
Memperbaiki interface dan
memperbaiki bug
Menggabungkan semuanya
dan mengerjakan laporan
Menggabungkan semuanya
dan mengerjakan laporan
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
6.4 Lainnya
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.
STEI- ITB
IF2111-TB-09-01
Template dokumen ini dan informasi yang dimilikinya adalah milik Sekolah Teknik Elektro dan Informatika ITB dan bersifat
rahasia. Dilarang me-reproduksi dokumen ini tanpa diketahui oleh Sekolah Teknik Elektro dan Informatika ITB.