Cara Membuat Game Puzzle Sederhana Dari Bahasa C++
Cara Membuat Game Puzzle Sederhana Dari Bahasa C++
Cara Membuat Game Puzzle Sederhana Dari Bahasa C++
Pada pertengahan semester, saya di beri tugas untuk mencari contoh penggunaan C ++ dalam
Aplikasi atau Program dalam game. Awalnya saya bingung harus bagaimana, soalnya saya baru
belajar tentang bahasa pemograman.
Tapi karna niat dan perjuangan yang pantang menyerah :D. akhirnya tugas ini selesai tepat pada
waktunya :):D
Saya mengambil tema tentang game, Game Puzzle jelasnya. sebenernya saya mengambil judul
game mobil-mobilan. karna sudah ada yang membuat, walhasil saya mencari lagi. :) yang penting
tetep pantang menyerah :p
berikut tugasnya :
Tentang Program
• Nama Program
• Fungsi Program
Fungsi dari program ini hanyalah untuk mengurutkan angka-angka yang telah acak menjadi
angka-angka yang berurutan.
• Bahasa Pemrograman
Cara Pengoperasian
1. Saat tampilan pertama tampil, lakukan intruksi awal yaitu menekan tombol apapun
untuk memulai permainan.
2. Lakukan intruksi selanjutnya, yaitu memilih level yang ingin dimainkan, dengan angka 1
= easy, 2 = medium, atau 3 = hard. Lalu tekan enter
3. Maka akan tampil puzzle dengan angka acak sesuai dengan level yang telah anda pilih.
4. Urutkan angka-angka yang acak menjadi angka yang berurutan benar.
5. Apabila anda keluar atau reset permainan tekan tombol Esc, lalu pilih ‘y’ untuk keluar,
dan ‘t’ untuk reset.
Tampilan Program beserta Penjelasannya
Setelah program di kompile maka tampilan pertama yang akan muncul adalah
Gambar 1
Saat program di kompile, tampilan pertama yang muncul adalah seperti gambar diatas. Tampilan
pertama memperlihatkan susunan angka-angka yang benar. Untuk melanjutkan ke tahap
berikutnya, kita diintruksikan agar menekan sembarang tombol.
Gambar 2
Tampilan diatas adalah tampilan kedua setelah di awal tadi kita menekan tombol sembarang.
Didalam Tampilan kedua kita di instruksikan lagi untuk menginput level yang diinginkan. Input 1
jika ingin level easy, input 2 jika ingin level hard, dan input 3 jika ingin level hard.
Gambar 3
Gambar diatas adalah tampilan setelah menginput level yang diinginkan, setelah tampilan diatas
muncul gunakan tombol panah untuk menggerakkan kotak yang kosong hingga angka yang acak
tersusun dengan benar.
Gambar 4
Jika ingin keluar atau reset pada saat bermain belum selesai, tekan esc. Maka akan mucul
tampilan diatas. Lalu tekan ‘y’ untuk keluar dan tekan ‘t’ untuk reset.
Gambar 5
Setelah angka telah tersusun dengan benar, maka akan mucul tampilan diatas. Jika ingin
memainkan kembali maka tekan ‘y’, dan jika ingin keluar tekan ‘t’.
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define atas 1
#define kiri 2
#define bawah 3
#define kanan 4
#define true 1
#define false 0
#define easy 10
#define medium 20
#define hard 30
#define fieldSize 4
char field[fieldSize][fieldSize];
char field2[fieldSize][fieldSize];
int x, y;
void generateOutput();
int cekUrut();
int acak(int i) {
int a;
seed += 5;
srand(seed);
a = (rand() % i) + 1;
return(a);
int c = 1, i, j;
char temp;
srand(time(NULL));
seed = rand();
x = y = (fieldSize - 1);
field[i][j] = field2[i][j] = c;
c++;
}
}
c = 0;
while (c != nPindah) {
xOld = x;
yOld = y;
arah = acak(4);
if (arah != 0) {
if ( c != 0) {
if ((arah + 2) % 4 == arahOld) {
continue;
switch (arah) {
case atas :
if (y > 0) y--;
else continue;
break;
case kiri:
if (x > 0) x--;
else continue;
break;
case kanan :
else continue;
break;
case bawah :
else continue;
break;
default :
break;
}
if (x >= 0 && y >= 0 && x <= (fieldSize - 1) && y <= (fieldSize - 1)) {
temp = field[y][x];
field[y][x] = field[yOld][xOld];
field[yOld][xOld] = temp;
c++;
arahOld = arah % 4;
} else {
x = xOld;
y = yOld;
char temp;
xOld = x;
yOld = y;
switch (arah) {
case atas :
if (y > 0) y--;
break;
case kiri:
if (x > 0) x--;
break;
case kanan :
break;
case bawah :
break;
default :
break;
if (x >= 0 && y >= 0 && x <= (fieldSize - 1) && y <= (fieldSize - 1)) {
temp = field[y][x];
field[y][x] = field[yOld][xOld];
field[yOld][xOld] = temp;
} else {
x = xOld;
y = yOld;
generateOutput();
void generateOutput() {
int i, j, k;
clrscr();
puts(caption);
if (i == y && j == x) {
} else {
puts("|");
}
int cekUrut() {
int c, d;
if (field[c][d] != field2[c][d]) {
if (match == true) {
match = false;
return(match);
main() {
int i, j, k, level;
char key;
system("cls");
puts(caption);
initField(0);
if (i == y && j == x) {
} else {
puts("|");
for(k = 1; k <= fieldSize; k++) printf("+----"); puts("+");
getch();
for(;;) {
system("cls");
puts("Level : ");
puts("\t1. Easy");
puts("\t2. Medium");
puts("\t3. Hard");
scanf("%i", &level);
switch (level) {
case 1 :
initField(easy);
break;
case 2 :
initField(medium);
break;
case 3 :
initField(hard);
break;
default :
puts("Level salah!!");
getch();
continue;
system("cls");
generateOutput();
switch(key) {
case keyUp :
move(atas);
break;
case keyDown :
move(bawah);
break;
case keyLeft :
move(kiri);
break;
case keyRight :
move(kanan);
break;
if (cekUrut() == true) {
puts("\nANDA MENANG!!!");
break;
if (key == 27) {
printf("Apakah anda ingin keluar ?\n['y' utk keluar / 't' utk reset] : ");
else continue;
} else {
if (toupper(getchar()) == 'T') {
getch();
break;
else continue;