Ini adalah repository Tugas Besar Alstrukdat Kelompok 7 Kelas K03
- Install
gcc
danmake
di komputer anda. Jika menggunakan windows, kita bisa pake mingw, mingw-w64, msys2, atau yang lainnya. Jika menggunakan linux berdistro ubuntu, gunakan perintah berikut:
sudo apt install build-essential
- Setup PATH environment untuk
gcc
danmake
- Jika menggunakan debian atau turunannya, gunakan perintah berikut
sudo apt install check
- Jika menggunakan windows, lihat intruksi disini.
Untuk melakukan kompilasi, kita hanya perlu menjalankan perintah berikut
make build
Untuk melakukan kompilasi dan menjalankan program, kita dapat menggunakan perintaah berikut
make run
Untuk menjalankan ADT, gunakan perintah sebagai berikut:
./run_adt.sh <Nama ADT>
Berikut ini adalah contoh menjalankan main point ADT point
:
./run_adt.sh point
Pastikan anda telah mengubah file permission agar bisa dieksekusi:
chmod +x run_adt.sh
Jika pake WSL, coba install dos2unix
. Gunakan perintah
sudo apt install dos2unix -y
Lalu, jalankan perintah berikut untuk membuat run_adt versi wsl:
dos2unix -n -- run_adt.sh run_adt.wsl.sh
Lalu, jalankan perintah:
chmod +x run_adt.wsl.sh
./run_adt.wsl.sh
NOTE : Bila terjadi error "Failed to change permission of temporary output file", jalankan perintah berikut:
echo -e "[automount]\noption = \"metadata\"" | sudo tee -a /etc/wsl.conf
Setelah menjalankan perintah tersebut, lakukan restart PC kalian.
Source : Superuser - Unable to change file permissions on Ubuntu Bash for Windows 10
Selain menggunakan WSL, kita juga bisa gunakan powershell:
./run_adt.ps1 <Nama ADT>
Contoh:
./run_adt.ps1 pcolor
Note : Pastikan sudah setting PATH environment untuk gcc
dan make
. Selain itu, pastikan sudah mengatur Policy di Powershell. Untuk mengaturnya, jalankan perintah berikut:
Set-ExecutionPolicy Unrestricted
Untuk melakukan unit testing, kita dapat menjalankan perintah berikut
make test
Dalam project ini, kita menggunakan libcheck sebagai library untuk melakukan asersi, pastikan sudah menginstall libcheck. Jika belum, lihat Olympia carannya.
Dalam project ini ada beberapa folder diantaranya sebagai berikut:
- Folder
bin
merupakan isi program kita. - Folder
build
berisi object file dari setiap file pada src dan test. - Folder
src
merupakan source code kita. Dalam folder ini terdapat beberapa folder lagi, yaitu- Folder
components
, berisi prosedur yang dapat reusable untuk menampilkan ke layar. - Folder
lib
, berisi implementasi dari ADT beserta header filenya. Selain itu, bisa berisi fungsi/prosedur yang dapat membantu kita dalam menyusun file. - Folder
views
berisi prosedur yang digunakan untuk mencetak sebuah halaman pada layar. Contohnya seperti Menu Utama. - File
main.c
adalah start point program kita
- Folder
- Folder
test
berisi semua Unit Test.
- Main Menu (new game, load, save, dan exit) (selesai)
- Mekanisme Waktu (menampilkan waktu permainan) (selesai)
- Daftar Pesanan (waktu pesanan masuk, pick up & drop off point, jenis item, dan time expired) (selesai)
- To Do List (pick up & drop off point, jenis item, dan waktu expired) (selesai)
- In Progress List (list berisi item yang telah dipick up tetapi belom didrop off) (selesai)
- Tas (Menyimpan item yang bisa diambil di lokasi) (selesai)
- Jenis Item (normal item, heavy item, Perishable item, VIP item) (selesai)
- Ability (speed boost, increase capacity, return to sender) (selesai)
- Gadget (kain pembungkus waktu, senter pembesar, pintu kemana saja, mesin waktu) (selesai)
- Inventory gadget (tempat penyimpanan gadget) (selesai)
- Peta (peta permainan) (selesai)
- Lokasi dan Command (MOVE, PICK_UP, DROP_OFF, MAP, TO_DO, IN_PROGRESS, BUY, INVENTORY, HELP, SAVE_GAME, RETURN) (selesai)
- Game Flow (start game, end game jika semua pesanan di antar dan perishable item hangus/diantar) (selesai)
- Save/Load Game (selesai)
- Kevin Roni : merapihkan laporan, membuat page help, membuat page move, membuat page map, abstraksi ADT gadget, impelementasi ADT gadget, abstraksi ADT map, implementasi ADT map, beberapa ADT wajib
- Bayu Samudra : menulis laporan bab 2, membuat page return, membuat page drop-off, membuat page pick-up,membuat page return, abstraksi ADT order, implementasi ADT order, abstraksi dan impelementasi item, abstraksi dan impelmentasi data pesanan, beberapa ADT wajib
- Muhammad Alif Putra Yasa : menulis laporan bab 3, membuat page page inventory, membuat page main menu, implementasi dan abstraksi ADT tas, implementasi ADT dan abstraksi inventory gadget, beberapa ADT wajib
- Dimas Faidh Muzaki : membuat page save game dan load game, menulis laporan bab 4, membuat page to-do list, implementasi dan abstraksi ADT todo list, implementasi dan abstraksi modul file loader dan exporter, beberapa ADT wajib
- Ghazian Tsabit Alkamil : menulis laporan bab 1, membuat page progress list, membuat page buy, abstraksi dan implementasi ADT progress list dan status game, beberapa ADT wajib
Bisa dilihat di CONTRIBUTE.md