Hmm... Ini dia nih postinganku yang baru.. Kali ini aku akan share tugas akhir Algoritma dan Pemrograman yang aku selesaikan pada akhir semester 1. Tugasnya adalah membuat sebuah program dengan menggunakan Bahasa C, dan compiler yang digunakan adalah Code Block versi 10.05.
Setelah berpikir keras tentang ide apa yang akan aku ajukan sama dosen, akhirnya ketemu juga idenya. Aku ngajuin sebuah program permainan yang aku beri judul GAME MEMBIDIK. Awalnya aku dapet ide ini dari seorang temanku yang kuliah di Jakarta, dan aku modifikasi sourcodenya. Dan... ini dia source code-nya :
#include <stdio.h>
#include <windows.h>
static int score;
int xc=40, yc=10;
int xt,yt;
char tekan;
char tulis[10];
void garis()
{
int x1, y1;
for (x1=1; x1<78;x1++)
{
gotoxy(x1,yc);setcolor(10); printf("+");
}
for (y1=1; y1<23;y1++)
{
gotoxy(xc,y1); setcolor(10); printf("+");
}
gotoxy(xc,yc);printf(" ");
}
void layar()
{
system("cls");
setcolor(13);
gotoxy(10,24);printf("Score kamu : %d\n", score);
gotoxy(35,24);printf("Koordinat aktif : %d, %d", xc, yc);
}
void start()
{
xt=20;
yt=11;
score=0;
do{
system("cls");
layar();
garis();
gotoxy(xt,yt); setcolor(4); printf("\3");
tekan=getch();
switch(tekan)
{
case 72 : if(yc>0)yc--;break;
case 75 : if(xc>0)xc--;break;
case 77 : if(xc<78)xc++;break;
case 80 : if(yc<22)yc++;break;
case 13 : if(xc==xt&&yc==yt)
{ gotoxy(xt,yt);
setcolor(14);printf("\3");
xt=rand() % 75;
yt=rand() % 20;
score=score+10;
}break;
}
if(score==100){break;}
} while(tekan != 27);
if(score==100)
{system("cls"); setcolor(13); gotoxy(35,8);printf("You win");
gotoxy(32, 10); printf("Score kamu %d\n\n\n", score);
gotoxy(25, 14);printf("Ketik nama kamu : ");
scanf("%s", &tulis);
}
else
{system("cls"); setcolor(14); gotoxy(35,8); printf("You lose");
gotoxy(32, 10); printf("Score kamu %d\n\n\n", score);
gotoxy(25, 14); printf("Ketik nama kamu : ");
scanf("%s", &tulis);
}
}
void petunjuk()
{
system("cls");
setcolor(13);
printf("\n\t\t\t\t====================\n");
printf("\t\t\t\t Petunjuk Permainan\n");
printf("\t\t\t\t====================\n\n");
setcolor(10);
printf("1. Arahkan garis horisontal dan vertikal sehingga tepat pada objek yang\n");
printf(" akan dibidik dengan menekan tombol panah pada keyboard.\n");
printf("2. Setelah koordinat garis tepat pada objek yang akan dibidik, tekan enter.\n");
printf("3. Setelah menekan enter maka nilai kamu akan bertambah 10 poin.\n");
printf("4. Habiskan semua objek bidikan, maka kamu akan menjadi pemenang.\n");
printf("5. Tekan esc untuk keluar dari permainan.");
}
void akhir()
{
system("cls");
gotoxy(30, 8); setcolor(13); printf("*** Score Akhir ***");
gotoxy(25, 12); printf("%s, score kamu adalah %d", tulis, score);
}
void quit()
{
system("cls");
gotoxy(18, 12); setcolor(10); printf("*** Terimakasih Sudah Mencoba Game Ini... ***\n\n");
}
int main()
{
int pilihan;
do
{
system("cls");
setcolor(13);
printf("\n\n\t\t\t\t===============\n");
printf("\t\t\t\t GAME MEMBIDIK\n");
printf("\t\t\t\t===============\n\n");
gotoxy(20, 10); setcolor(10); printf("\tMain Menu :");
setcolor(14);
printf("\t1. Mulai Permainan\n\n");
gotoxy(20, 12); printf("\t\t\t2. Petunjuk\n\n");
gotoxy(20, 14); printf("\t\t\t3. Score Akhir\n\n");
gotoxy(20, 16); printf("\t\t\t4. Keluar\n\n\n\n");
setcolor(13);
gotoxy(20, 20); printf("\tInput nomor menu : ");
scanf("%d", &pilihan);
switch(pilihan)
{
case 1:start();getch();break;
case 2:petunjuk();getch();break;
case 3:akhir();getch();break;
case 4:quit();getch();return(0);break;
}
}
while (pilihan != 4);
}
void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
void setcolor(unsigned short color)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hCon,color);
}
Kalo ini tampilan permainannya :
Monggo dipahami dan dicoba sendiri. hehe... Semoga bermanfaat bagi temen-temen mahasiswa yang sedang kebingungan membuat tugas akhir Algoritma dan Pemrograman, atau buat siapapun deh, semoga bermanfaat... ^_^
