-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tank.h
415 lines (349 loc) · 12.7 KB
/
Tank.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
#ifndef Tank_h
#define Tank_h
/*Defenisi Library*/
#include <graphics.h>
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <mmsystem.h>
/*Defenisi Control Key*/
#define UP 72
#define DOWN 80
#define RIGHT 77
#define LEFT 75
#define FIRE 32
#define ENTER 13
#define ESC 27
/*Defenisi Kondisi TANK*/
#define SPEED 5
/*Defenisi Size*/
#define Object 29
#define Item 15
#pragma GCC diagnostic ignored "-Wwrite-strings"
/*Defenisi TankPosition*/
/*Struck yang digunakan oleh TANK untuk pengkondisian TANK*/
typedef struct{
int Row;
int Colom;
int countHor;
int countVer;
}TankPosition;
/*Defenisi TankControl*/
/*Struck yang digunakan oleh TANK untuk pengkondisian TANK*/
typedef struct{
int KEY;
int coorX;
int coorY;
int direc;
int score;
int life;
TankPosition *Pos;
}TankControl;
/*Defenisi ItemControl*/
/*Struck yang digunakan untuk menghitung dan mengetahui jumlah Item pada Array MAP*/
typedef struct{
int Brick;
int Steel;
int Bush;
int Water;
}ItemControl;
/*Defenisi PeluruControl*/
/*Struck yang digunakan oleh Peluru untuk pengkondisian Peluru*/
typedef struct{
int coorX;
int coorY;
int direc;
}PeluruControl;
/****** Modul PETA *******/
void drawBRICK(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Brick belum ditampilkan */
/*FS : Item Brick telah ditampilkan sesuai Row dan Colom pada MAP */
void drawSTEEL(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Steel belum ditampilkan */
/*FS : Item Steel telah ditampilkan sesuai Row dan Colom pada MAP */
void drawSTEEL2(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Steel pada MAP setelah tertembak belum ditampilkan */
/*FS : Item Steel telah ditampilkan sesuai Row dan Colom pada MAP */
void drawBUSH(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Bush belum ditampilkan */
/*FS : Item Bush telah ditampilkan sesuai Row dan Colom pada MAP */
void drawBUSH2(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Steel pada MAP setelah tertembak belum ditampilkan */
/*FS : Item Steel telah ditampilkan sesuai Row dan Colom pada MAP */
void drawWATER(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Water belum ditampilkan */
/*FS : Item Water telah ditampilkan sesuai Row dan Colom pada MAP */
void drawWATER2(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Water pada MAP setelah tertembak belum ditampilkan */
/*FS : Item Water telah ditampilkan sesuai Row dan Colom pada MAP */
void drawROAD(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Road belum ditampilkan */
/*FS : Item Road telah ditampilkan sesuai Row dan Colom pada MAP */
void drawCROWN(int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Item Crown belum ditampilkan */
/*FS : Item Crown telah ditampilkan sesuai Row dan Colom pada MAP */
void createMAP(int level, int *CrRow, int *CrColom, int *Row, int *Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : Nilai index Array MAP sembarang */
/*FS : Nilai index Array MAP telah diisi oleh Nilai tertentu*/
void drawMAP(int CrRow, int CrColom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : MAP belum ditampilkan */
/*FS : MAP telah ditampilkan sesuai Row dan Colom pada MAP */
/****** Modul PAPAN NILAI *******/
void drawBOARDITEM(ItemControl ITEM);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck ITEM : Parameter by Value*/
/*IS : Item pada Papan Nilai belum ditampilkan*/
/*FS : Item pada Papan Nilai telah ditambilkan*/
void countBOARDITEM(ItemControl *ITEM);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck ITEM : Parameter by Address*/
/*IS : Jumlah Item pada Array MAP belum diketahui*/
/*FS : Jumlah item pada Array MAP telah diketahui*/
/*Menghitung jumlah item pada Array MAP*/
void drawBOARDENEMY();
/*Pembuat : MUGHIE ARIEF M.S*/
/*Belum Terpakai*/
/*IS : Item Enemy pada Papan Nilai belum ditampilkan*/
/*FS : Item Enemy pada Papan Nilai telah ditambilkan*/
void drawBOARDLIFE(TankControl TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck TANK : Parameter by Value*/
/*IS : Item Life pada Papan Nilai belum ditampilkan*/
/*FS : Item Life pada Papan Nilai telah ditampilkan*/
void drawBOARDSCORE(TankControl TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck TANK : Parameter by Value*/
/*IS : Score pada Papan Nilai belum ditampilkan*/
/*FS : Score pada Papan Nilai telah ditampilkan*/
void countLIFE(TankControl *TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Pembuat : NOVILAWATI*/
/*Struck TANK : Parameter by Address*/
/*IS : Jumlah LIFE masih sembarang*/
/*FS : Jumlah LIFE telah bertambah*/
/*Menambahkan LIFE sesuai dengan score yang diperoleh*/
void drawBOARD(TankControl TANK, ItemControl ITEM);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck TANK : Parameter by Value*/
/*Struck ITEM : Parameter by Value*/
/*IS : Papan Nilai belum ditampilkan*/
/*FS : Papan Nilai telah ditampilkan*/
void walkBOARD(TankControl *TANK, ItemControl ITEM);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Struck TANK : Parameter by Address*/
/*Struck ITEM : Parameter by Value*/
/*IS : Nilai pada Papan Nilai sembarang*/
/*FS : Nilai pada Papan Nilai telah sesuai dengan keadaan Permainan*/
/*Menampilkan Score, Menghitung LIFE, Menampilkan LIFE, dan Menampilkan Item pada Papan nilai*/
/****** Modul Check Kondisi ******/
void devTANK(int turn, int countHor, int countVer, int Row, int Colom, TankControl TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/* int turn, countHor, countVer, Row, Colom : Parameter by Value*/
/* STRUCT TANK : Parameter by Value*/
/* IS : Belum menampilkan kondisi-kondisinya*/
/* FS : Menampilkan kondisi - kondisinya*/
/* Menampilkan turn, countHor, countVer, Row, Colom, dan STRUCT TANK */
void devPeluru(PeluruControl Peluru, int countHorpel, int countVerpel, int Row, int Colom, int DOOR);
/*Pembuat : MUGHIE ARIEF M.S*/
/* int countHorpel, countVerpel, Row, Colom, DOOR : Parameter by Value*/
/* STRUCT Peluru : Parameter by Value*/
/* IS : Belum menampilkan kondisi-kondisinya*/
/* FS : Menampilkan kondisi - kondisinya*/
/* Menampilkan countHorpel, countVerpel, Row, Colom, DOOR, dan STRUCT Peluru */
void devMAP(int x, int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*x : Parameter by Value*/
/*Row : Parameter by Value*/
/*Colom : Parameter by Value*/
/*IS : Nilai index pada Row dan Colom belum diketahui */
/*FS : Menampilkan index pada Row dan Colom di MAP */
/****** Modul TANK *******/
void goTANK(TankControl *TANK);
/*Pembuat : KARTIKA SARI*/
/* STRUCT TANK : Parameter by Address*/
/* IS : Posisi tank di koordinat tertentu*/
/* FS : Posisi tank berubah sesuai dengan arah yang ditentukan sebanyak SPEED*/
void delTANK(TankControl TANK);
/*Pembuat : KARTIKA SARI*/
/* STRUCT TANK : Parameter by Value */
/* IS : Tank belum tehapus */
/* FS : Tank telah terhapus */
void drawTANK(TankControl TANK);
/*Pembuat : KARTIKA SARI*/
/* STRUCT TANK : Parameter by Value */
/* IS : Tank belum ditampilkan */
/* FS : Menampilkan tank sesuai arahnya */
void rotateTANK(int turn, TankControl *TANK);
/*Pembuat : KARTIKA SARI*/
/*Pembuat : MUGHIE ARIEF M.S*/
/* STRUCT TANK : Parameter by Address */
/* int turn : Parameter by Value */
/* IS : Menampilkan arah tank yang tidak sesuai TANK.direct */
/* FS : Menampilkan arah tank yang sesuai TANK.direct */
void condiDRIVE(TankControl TANK, int *Count, int *Index);
/*Pembuat : MUGHIE ARIEF M.S*/
/* STRUCT TANK : Parameter by Value */
/* int Count, Index : Parameter by Address */
/* IS : Index sembarang */
/* FS : Index ditambah 1 */
/* Mengubah index Row atauColom pada kondisi tank */
void countDRIVE(TankControl TANK, int *Count, int *Index);
/*Pembuat : MUGHIE ARIEF M.S*/
/* STRUCT TANK : Parameter by Value */
/* int Count, Index : Parameter by Address */
/* IS : Count sembarang */
/* FS : Count ditambah 1 */
/* Menghitung perubahan kondisi tank pada Array MAP */
void REPLACE(TankControl *TANK, int *Count, int *Index);
/*Pembuat : KARTIKA SARI*/
/* STRUCT TANK : Parameter by Address */
/* int Count, Index : Parameter by Address */
/* IS : Menampilkan posisi tank di koordinat yang lama */
/* FS : Menghapus tank di posisi yang lama dan menampilkan tank di posisi baru */
void DRIVETANK(TankControl *TANK, int *countVer, int *countHor, int *Row, int *Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Pembuat : NOVILAWATI*/
/* STRUCT TANK : Parameter by Address */
/* int countVer, countHor, Row, Colom : Parameter by Address */
/* IS : Kondisi tank pada Array MAP sembarang */
/* FS : Mengetahui kondisi tank pada Array MAP */
/* Mengecek kondisi tank pada Array MAP */
void MOVETANK(TankControl *TANK, int *countHor, int *countVer, int *Row, int *Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/* STRUCT TANK : Parameter by Address */
/* int countHor, countVer, Row, Colom : Parameter by Address */
/* IS : Arah tank sembarang */
/* FS : Arah tank sesuai */
void respawnTANK(TankControl *TANK, int Row, int Colom);
/*Pembuat : MUGHIE ARIEF M.S*/
/* STRUCT TANK : Parameter by Address */
/* int Row, Colom : Parameter by Value */
/* IS : Tank belum ditampilkan */
/* FS : Tank telah ditampilkan */
/******* Modul Peluru ********/
void LAUNCHPeluru(PeluruControl *Peluru, TankControl TANK, int *DOOR);
/*Pembuat : AGIT PRASETYA*/
/* STRUCT Peluru : Parameter by Address */
/* STRUCT TANK : Parameter by Value */
/* int DOOR : Parameter by Address */
/* IS : Arah tembakan dan koordinat posisi awal peluru belum ditentukan, DOOR bernilai 0 */
/* FS : Arah tembakan dan koordinat posisi awal peluru sudah ditentukan, DOOR bernilai 1 */
void drawPeluru(PeluruControl Peluru);
/*Pembuat : AGIT PRASETYA*/
/* STRUCT Peluru : Parameter by Value */
/* IS : Peluru belum ditampilkan */
/* FS : Menampilkan Peluru */
void delPeluru(PeluruControl Peluru);
/*Pembuat : AGIT PRASETYA*/
/* STRUCT Peluru : Parameter by Value */
/* IS : Peluru belum terhapus */
/* FS : Peluru telah terhapus */
void goPeluru(PeluruControl *Peluru);
/*Pembuat : AGIT PRASETYA*/
/* STRUCT Peluru : Parameter by Address*/
/* IS : Posisi peluru di koordinat tertentu*/
/* FS : Posisi peluru berubah sesuai dengan arah yang ditentukan sebanyak SPEED*/
void replacePeluru(PeluruControl *Peluru);
/*Pembuat : AGIT PRASETYA*/
/* STRUCT Peluru : Parameter by Address */
/* IS : Peluru masih ada di koordinat lama */
/* FS : Menghapus peluru di koordinat lama dan menampilkan peluru di koordinat baru*/
/***************************/
/******* GAME UTAMA ********/
/***************************/
void choiceLEVEL();
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : Level permainan sembarang*/
/*FS : Level permainan adalah level 1*/
void checkLEVEL(ItemControl ITEM, TankControl TANK, int level, int *loop);
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : Level permainan sembarang*/
/*FS : Level permainan sesuai dengan score, life, dan item yeng telah ditentukan*/
void PLAY(int level, TankControl TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/*Pembuat : NOVILAWATI*/
/*Pembuat : AGIT PRASETYA*/
/*IS : Permainan belum dijalankan*/
/*FS : Permainan telah dijalankan*/
void PAUSE(int *loop);
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : Permainan sedang dijalankan*/
/*FS : Permainan berhenti berjalan*/
void GAMEOVER();
/*Pembuat : M. FAATIH SYAUQI*/
/*IS : Belum menampilkan layar Game Over*/
/*FS : Menampilkan layar Game Over*/
/******* OPERASI FILE ********/
void SAVESCORE(TankControl TANK);
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : nilai Score belum disimpan pada file*/
/*FS : nilai Score telah disimpan pada file*/
void SORTSCORE();
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : nilai Score sembarang*/
/*FS : nilai Score telah disort*/
/******* USER INTERFACE ********/
void INTRO();
/*Pembuat : M. FAATIH SYAUQI*/
/*IS : Belum menampilkan layar Intro*/
/*FS : Menampilkan layar Intro*/
void OPEN();
/*Pembuat : M. FAATIH SYAUQI*/
/*IS : Menu utama belum ditampilkan*/
/*FS : Menampilkan menu utama*/
void HOWTOPLAY();
/*Pembuat : M. FAATIH SYAUQI*/
/*Pembuat : NOVILAWATI*/
/*IS : Belum menampilkan layar How to Play dan Control*/
/*FS : Menampilkan layar How to Play dan Control*/
void HIGHSCORE();
/*Pembuat : M. FAATIH SYAUQI*/
/*Pembuat : MUGHIE ARIEF M.S*/
/*IS : Belum menampilkan layar High Score*/
/*FS : Menampilkan layar High Score*/
void EXITGAME();
/*Pembuat : M. FAATIH SYAUQI*/
/*IS : Program masih dijalankan*/
/*FS : Program di close*/
void MENU();
void cursorMENU();
void choiceMENU();
void EXIT();
void cursorEXIT();
void choiceEXIT();
void choosePLAY();
void chooseHOWTOPLAY();
void chooseHIGHSCORE();
void chooseEXIT();
#endif // Tank_h