Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions ASD_Task_4.depend
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,23 @@
"player.h"
<ctime>

1583584086 source:d:\asd task\asd_task_4\list.cpp
"list.h"

1583584086 d:\asd task\asd_task_4\list.h
<string>
<windows.h>
<iostream>

1583584086 source:d:\asd task\asd_task_4\player.cpp
"player.h"
<ctime>

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"
<conio.h>

Binary file removed asset/airpump2.wav
Binary file not shown.
Binary file added asset/bruh.wav
Binary file not shown.
Binary file removed asset/clapping.wav
Binary file not shown.
Binary file removed asset/game_start.WAV
Binary file not shown.
Binary file added asset/mission_failed.wav
Binary file not shown.
Binary file added asset/oof.wav
Binary file not shown.
Binary file added asset/sans.wav
Binary file not shown.
Binary file added bin/Debug/ASD_Task_4.exe
Binary file not shown.
183 changes: 124 additions & 59 deletions list.cpp
Original file line number Diff line number Diff line change
@@ -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"<<endl;
}
P = first(L);
if (next(first(L))!= P)
{
first(L) = next(P);
next(prev(P)) = first(L);
prev(first(L)) = prev(P);
next(P) = NULL;
prev(P) = NULL;
}
else
{
next(P) = NULL;
prev(P) = NULL;
first(L) = NULL;
}
}

void deleteLast(List &L, address &P) {
void deleteLast(List &L, address &P)
{
/**
* IS : List L mungkin kosong
* FS : elemen tarakhir di dalam List L dilepas dan disimpan/ditunjuk oleh P
*/
//------------- YOUR CODE HERE -------------

//----------------------------------------
P = prev(first(L));
next(prev(P))= first(L);
prev(first(L)) = prev(prev(P));
next(P) = NULL;
prev(P) = NULL;
}

void insertAfter(List &L, address &Prec, address P) {
void insertAfter(List &L, address &Prec, address P)
{
/**
* IS : Prec dan P tidak NULL
* FS : elemen yang ditunjuk P menjadi elemen di belakang elemen yang
* ditunjuk pointer Prec
*/
//------------- YOUR CODE HERE -------------

//----------------------------------------

if (first(L) == NULL)
{
insertFirst(L,P);
}
else
{
next(P) = next(Prec);
prev(P) = Prec;
prev(next(Prec)) = P;
next(Prec) = P;
}
}
void deleteAfter(List &L, address &Prec, address &P) {
void deleteAfter(List &L, address &Prec, address &P)
{
/**
* IS : Prec tidak NULL
* FS : elemen yang berada di belakang elemen Prec dilepas
* dan disimpan/ditunjuk oleh P
*/
//------------- YOUR CODE HERE -------------

//----------------------------------------
P = next(Prec);
if (next(Prec) != first(L))
{
next(Prec) = next(P);
prev(next(P)) = Prec;
next(P) = NULL;
prev(P) = NULL;
}
else
{
next(P) = NULL;
prev(P) = NULL;
P = NULL;
}
}

12 changes: 4 additions & 8 deletions list.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,13 @@ typedef struct elmlist *address;
*/

struct elmlist {
//------------- YOUR CODE HERE -----------


//----------------------------------------
infotype info;
address next;
address prev;
};

struct List {
//------------- YOUR CODE HERE -----------


//----------------------------------------
address first;
};


Expand Down
14 changes: 10 additions & 4 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,25 @@ int main() {
//-----------------------------------------
x.ID = index_ID++;
x.location = "asset";
x.name = "do.wav";
x.name = "bruh.wav";
P = allocate(x);
insertFirst(L,P);
insertLast(L,P);

x.ID = index_ID++;
x.location = "asset";
x.name = "sans.wav";
P = allocate(x);
insertLast(L,P);

x.ID = index_ID++;
x.location = "asset";
x.name = "re.wav";
x.name = "oof.wav";
P = allocate(x);
insertLast(L,P);

x.ID = index_ID++;
x.location = "asset";
x.name = "mi.wav";
x.name = "mission_failed.wav";
P = allocate(x);
insertLast(L,P);

Expand Down
Binary file added obj/Debug/list.o
Binary file not shown.
Binary file added obj/Debug/main.o
Binary file not shown.
Binary file added obj/Debug/player.o
Binary file not shown.
Loading