diff --git a/ASD_Task_4.depend b/ASD_Task_4.depend index a544662..94259a5 100644 --- a/ASD_Task_4.depend +++ b/ASD_Task_4.depend @@ -19,3 +19,23 @@ "player.h" +1583584086 source:d:\asd task\asd_task_4\list.cpp + "list.h" + +1583584086 d:\asd task\asd_task_4\list.h + + + + +1583584086 source:d:\asd task\asd_task_4\player.cpp + "player.h" + + +1583582893 d:\asd task\asd_task_4\player.h + "list.h" + +1583586421 source:d:\asd task\asd_task_4\main.cpp + "player.h" + "list.h" + + diff --git a/asset/airpump2.wav b/asset/airpump2.wav deleted file mode 100644 index 5d371e7..0000000 Binary files a/asset/airpump2.wav and /dev/null differ diff --git a/asset/bruh.wav b/asset/bruh.wav new file mode 100644 index 0000000..4cb45e7 Binary files /dev/null and b/asset/bruh.wav differ diff --git a/asset/clapping.wav b/asset/clapping.wav deleted file mode 100644 index 84c2031..0000000 Binary files a/asset/clapping.wav and /dev/null differ diff --git a/asset/game_start.WAV b/asset/game_start.WAV deleted file mode 100644 index 4e196ab..0000000 Binary files a/asset/game_start.WAV and /dev/null differ diff --git a/asset/mission_failed.wav b/asset/mission_failed.wav new file mode 100644 index 0000000..09f9c4d Binary files /dev/null and b/asset/mission_failed.wav differ diff --git a/asset/oof.wav b/asset/oof.wav new file mode 100644 index 0000000..aa60655 Binary files /dev/null and b/asset/oof.wav differ diff --git a/asset/sans.wav b/asset/sans.wav new file mode 100644 index 0000000..63eab71 Binary files /dev/null and b/asset/sans.wav differ diff --git a/bin/Debug/ASD_Task_4.exe b/bin/Debug/ASD_Task_4.exe new file mode 100644 index 0000000..60830e0 Binary files /dev/null and b/bin/Debug/ASD_Task_4.exe differ diff --git a/list.cpp b/list.cpp index 847a957..e028416 100644 --- a/list.cpp +++ b/list.cpp @@ -1,123 +1,188 @@ #include "list.h" -void createList(List &L) { +void createList(List &L) +{ /** * FS : first(L) diset Nil */ - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- + first(L) = NULL; } - -address allocate(infotype x) { +address allocate(infotype x) +{ /** * FS : mengembalikan elemen list baru dengan info = x, * next dan prev elemen = Nil */ - address P = NULL; - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- + P = new elmlist; + info(P) = x; + next(P) = NULL; + prev(P) = NULL; return P; } - -void deallocate(address &P) { +void deallocate(address &P) +{ /** * FS : menghapus elemen yang ditunjuk oleh P (delete) */ - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- + delete P; } - -void insertFirst(List &L, address P) { +void insertFirst(List &L, address P) +{ /** * IS : List L mungkin kosong * FS : elemen yang ditunjuk P menjadi elemen pertama pada List L */ - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- + if (first(L) != NULL) + { + next(P) = first(L); + prev(P) = prev(first(L)); + next(prev(first(L))) = P; + prev(first(L)) = P; + first(L) = P; + } + else + { + first(L) = P; + next(P) = first(L); + prev(P) = P; + } } - -void insertLast(List &L, address P) { +void insertLast(List &L, address P) +{ /** * IS : List L mungkin kosong * FS : elemen yang ditunjuk P menjadi elemen terakhir pada List L */ - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- + if (first(L)==NULL) + { + insertFirst(L,P); + } + else + { + next(P) = first(L); + prev(P) = prev(first(L)); + next(prev(first(L))) = P; + prev(first(L)) = P; + } } - -address findElmByID(List L, infotype x) { +address findElmByID(List L, infotype x) +{ /** * IS : List L mungkin kosong * FS : mengembalikan elemen dengan info.ID = x.ID, mengembalikan Nil jika tidak ditemukan */ - address P = NULL; - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- - return P; + P = first(L); + do + { + P = next(P); + } + while( P != first(L)&& info(P).ID != x.ID); + if (info(P).ID == x.ID) + { + return P; + } + return NULL; } - -address findElmByName(List L, infotype x) { +address findElmByName(List L, infotype x) +{ /** * IS : List L mungkin kosong * FS : mengembalikan elemen dengan info.name = x.name, mengembalikan Nil jika tidak ditemukan */ - address P = NULL; - //------------- YOUR CODE HERE ------------- - - //---------------------------------------- - return P; + P = first(L); + do + { + P = next(P); + } + while( P != first(L) && info(P).name != x.name); + if (info(P).name == x.name) + { + return P; + } + return NULL; } - -void deleteFirst(List &L, address &P) { +void deleteFirst(List &L, address &P) +{ /** * IS : List L mungkin kosong * FS : elemen pertama di dalam List L dilepas dan disimpan/ditunjuk oleh P */ - //------------- YOUR CODE HERE ------------- - //---------------------------------------- + if (first(L)==NULL) + { + cout<<"List Kosong"< -int randomInt(int max_int) { +int randomInt(int max_int) +{ /** YOU DON'T NEED TO MODIFY THIS */ srand(time(NULL)); return (rand() % max_int) + 1; } - -void printInfo(List L) { +void printInfo(List L) +{ /** * PR : menampilkan informasi ID, nama, dan lokasi file * YOU DON'T NEED TO MODIFY THIS */ - address Q = first(L); - do { + do + { cout<<"name : "< 0) + { + P = first(L); + int i = randomInt(panjang); + while (i != 0) + { + P = next(P); + i--; + } + address Q = P; + deleteAfter(L,prev(P),Q); + insertFirst(L,Q); + panjang--; + } + cout<<"Shuffle Done"<