Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <time.h>
- #include <ctype.h>
- #include <time.h>
- #include <windows.h>
- #include <process.h>
- #include <string.h>
- #define UP 72
- #define DOWN 80
- #define LEFT 75
- #define RIGHT 77
- struct adminuser{
- char nama[100], user[100] ,pass[100], acc[100], paket[50], status[50], srating[100];
- int saldo;
- }al, ur, ul;
- void admin();
- void user();
- void radmin();
- void ladmin();
- void ruser();
- void luser();
- void menuadmin();
- void menuuser();
- void isisaldoa();
- void isisaldou();
- void acc();
- void game();
- void snake();
- void tictactoe();
- void penukaran();
- int length;
- int bend_no;
- int len;
- char key;
- void record();
- void load();
- int life;
- void Delay(long double);
- void Move();
- void Food();
- int Score();
- void Print();
- void gotoxy(int x, int y);
- void GotoXY(int x,int y);
- void Bend();
- void Boarder();
- void Down();
- void Left();
- void Up();
- void Right();
- void ExitGame();
- int Scoreonly();
- struct coordinate{
- int x;
- int y;
- int direction;
- };
- typedef struct coordinate coordinate;
- coordinate head, bend[500],food,body[30];
- char accu[100], login[100], useradmin[10] = "admin", passadmin[10] = "admin";
- int n=0, i=0, l=0, saldob, umurl=0, paket1=100000, paket2=50000, paket3=30000;
- main()
- {
- int a;
- printf("===============================\n");
- printf("=SELAMAT DATANG DI GAME CENTER=\n");
- printf("===============================\n\n");
- printf("MENU UTAMA\n");
- printf("1.Admin\n2.User\n3.Exit\n");
- printf("Masukkan pilihan :");scanf("%d",&a);
- switch (a)
- {
- case 1 : admin();break;
- case 2 : user();break;
- case 3 : system("cls");printf("Terima Kasih telah mengunjungi GAME CENTER\n");exit(100);break;
- default : printf("\nPilihan menu tidak ada\n");system("pause");main();break;
- }
- }
- void admin(){
- int nc;
- system("cls");
- printf("\n[ Menu Admin ]\n\n");
- printf("1. Login\n");
- printf("2. Kembali\n");
- printf("Pilih menu : ");
- scanf("%d", &nc); getchar();
- system("cls");
- switch(nc){
- case 1 : ladmin(); break;
- case 2 : main(); break;
- default : printf("[ Menu Tidak Ada ]");
- getchar();
- getch();
- system("cls");
- admin(); break;
- }
- }
- void user(){
- int nu=0;
- system("cls");
- printf("\n-=-[ Menu User ]-=-\n\n");
- printf("1. Registrasi\n");
- printf("2. Login\n");
- printf("3. Kembali\n");
- printf("Pilih menu : ");
- scanf("%d", &nu); getchar();
- system("cls");
- switch(nu){
- case 1 : ruser(); break;
- case 2 : luser(); break;
- case 3 : main(); break;
- default : printf("-=-[ Menu Tidak ada ]-=-");
- getchar();
- getch();
- system("cls");
- user(); break;
- }
- }
- void ladmin (){
- i=0;
- char uadmin[5], padmin[5];
- while(i<3){
- printf("\n-=-[ Login Admin ]-=-\n\n");
- printf("Username : "); gets(uadmin);
- printf("Password : "); gets(padmin);
- system("cls");
- if(strcmp(uadmin, uadmin)==0 && strcmp(padmin, passadmin)==0){
- menuadmin();
- }
- printf("LOGIN GAGAL!!!");
- i=i+1;
- }
- admin();
- }
- void ruser(){
- FILE *r_user;
- r_user = fopen("user.dat","ab+");
- printf("-=-[ Registrasi User ]-=-\n");
- printf("Nama : "); gets(ur.nama);
- printf("Username : "); gets(ur.acc);
- printf("Password : "); gets(ur.pass);
- ur.saldo = 0;
- strcpy(ur.user, "bweift4e87ty78eg");
- strcpy(ur.status, "-=-[ Belum di ACC ]-=-");
- fwrite(&ur,sizeof(ur),1,r_user);
- getchar();
- fclose(r_user);
- system("cls");
- printf("\n\n-=-[ Silahkan tunggu konfirmasi dari admin ]-=-");
- getchar();
- system("cls");
- user();
- }
- void luser(){
- i=0;
- FILE *r_user;
- while(i<3){
- printf("\n-=-[ Login User ]-=-\n\n");
- printf("Username : "); gets(ul.user);
- printf("Password : "); gets(ul.pass);
- system("cls");
- r_user = fopen("user.dat","rb");
- while(fread(&ur,sizeof(ur),1,r_user)==1){
- if(strcmp(ur.user, ul.user)==0 && strcmp(ur.pass, ul.pass)==0){
- strcpy(login, ur.user);
- fclose(r_user);
- menuuser(); break;
- }
- }
- printf("LOGIN GAGAL!!!");
- i=i+1;
- }
- fclose(r_user);
- system("cls");
- user();
- }
- void menuadmin(){
- int nf;
- int mn;
- printf(".::[ Selamat Datang ]::.\n");
- printf(" -=-[ Menu Admin ]-=-\n\n");
- printf("1. Acc User\n");
- printf("2. Isi Saldo User\n");
- printf("3. Logout\n");
- printf("Pilih Menu : "); scanf("%d", &mn);
- getchar();
- system("cls");
- switch(mn){
- case 1 : acc(); break;
- case 2 : isisaldoa(); break;
- case 3 : system("cls");
- printf("-=-[ Berhasil Logout! ]-=-");
- getchar(); system("cls"); admin(); break;
- default : printf("-=-[ Menu Tidak ada ]-=-");
- getchar();
- getch();
- system("cls");
- menuadmin(); break;
- }
- }
- void menuuser(){
- int um;
- saldob = ur.saldo;
- printf(".::|S e l a m a t d a t a n g '%s'|::.\n", ur.nama);
- printf("Saldo anda : %d ", ur.saldo);
- printf("\n======================\n");
- printf("-=-[ USER MENU ]-=-");
- printf("\n======================\n");
- printf("1. Isi Saldo\n");
- printf("2. Main Game\n");
- printf("3. Logout\n");
- printf("Pilih Menu : "); scanf("%d", &um);
- getchar();
- system("cls");
- switch(um){
- case 1 : isisaldou(); break;
- case 2 : game(); break;
- case 3 : system("cls");
- printf("-=-[ Berhasil Logout! ]-=-");
- getchar(); system("cls");
- user(); break;
- default : printf("-=-[ Menu Tidak ada ]-=-");
- getchar();
- getch();
- system("cls");
- menuuser(); break;
- }
- }
- void acc(){
- FILE *r_user;
- r_user = fopen("user.dat","rb");
- printf("---[ Data User ]---\n");
- while(fread(&ur, sizeof(ur),1, r_user)==1){
- printf("Nama : %s\n", ur.nama);
- printf("Username : %s %s\n", ur.acc, ur.status);
- printf("Password : %s\n\n", ur.pass);
- }
- r_user = fopen("user.dat","rb+");
- printf("User yang ingin di ACC : "); gets(accu);
- while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.acc, accu)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- strcpy(ur.user, accu);
- strcpy(ur.status, " ");
- fwrite(&ur, sizeof(ur), 1, r_user);
- fclose(r_user);
- system("cls");
- printf("-=-[ %s Berhasil Di ACC ]-=-", accu);
- getchar();
- system("cls");
- menuadmin(); break;
- }
- }
- fclose(r_user);
- system("cls");
- printf("-=-[ %s Tidak ada dalam list User ]-=-", accu);
- getchar();
- system("cls");
- menuadmin();
- }
- void isisaldoa(){
- int s, jml;
- char isaldo[100], ipaket[100];
- FILE *r_user;
- r_user = fopen("user.dat","rb");
- while(fread(&ur,sizeof(ur),1,r_user)==1){
- printf("User : %s\n", ur.user);
- printf("Paket : %s\n", ur.paket);
- printf("\n");
- }
- fclose(r_user);
- r_user = fopen("user.dat","rb+");
- printf("User yang ingin di isi Saldo : "); gets(isaldo);
- printf("Paket yang ingin diisi : "); gets(ipaket);
- while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.user, isaldo)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- if(strcmp(ipaket, "A")==0){
- ur.saldo = ur.saldo + paket1;
- strcpy(ur.paket, " ");
- fwrite(&ur, sizeof(ur), 1, r_user);
- fclose(r_user);
- system("cls");
- printf("\n-=-[ Saldo dikirim ke %s ]-=-", ur.user);
- getchar();
- system("cls");
- menuadmin();break;
- }
- else if(strcmp(ipaket, "B")==0){
- ur.saldo = ur.saldo + paket2;
- strcpy(ur.paket, " ");
- fwrite(&ur, sizeof(ur), 1, r_user);
- fclose(r_user);
- system("cls");
- printf("\n-=-[ Saldo dikirim ke %s ]-=-", ur.user);
- getchar();
- system("cls");
- menuadmin();break;
- }
- else if(strcmp(ipaket, "C")==0){
- ur.saldo = ur.saldo + paket3;
- strcpy(ur.paket, " ");
- fwrite(&ur, sizeof(ur), 1, r_user);
- fclose(r_user);
- system("cls");
- printf("\n-=-[ Saldo dikirim ke %s ]-=-", ur.user);
- getchar();
- system("cls");
- menuadmin();break;
- }
- else {
- getchar();
- system("cls");
- menuadmin();
- }
- }
- }
- fclose(r_user);
- system("cls");
- printf("\n-=-[ User tidak ada dalam list ]-=-", ur.user);
- getchar();
- system("cls");
- menuadmin();
- }
- void isisaldou(){
- int s;
- FILE *r_user;
- r_user = fopen("user.dat","rb+");
- printf("-=-[ Menu Paket Saldo ]-=-\n");
- printf("1. Paket 1 : 100000 saldo\n");
- printf("2. Paket 2 : 50000 saldo\n");
- printf("3. Paket 3 : 30000 saldo\n");
- printf("Pilih paket 1/2/3 : "); scanf("%d", &s);
- switch(s){
- case 1 : while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.acc, login)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- strcpy(ur.paket, "A");
- fwrite(&ur, sizeof(ur), 1, r_user); break;
- }
- } break;
- case 2 : while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.acc, login)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- strcpy(ur.paket, "B");
- fwrite(&ur, sizeof(ur), 1, r_user); break;
- }
- } break;
- case 3 : while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.acc, login)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- strcpy(ur.paket, "C");
- fwrite(&ur, sizeof(ur), 1, r_user); break;
- }
- } break;
- default : printf("-=-[ Menu Tidak ada ]-=-");
- getchar();
- getch();
- system("cls");
- menuuser(); break;
- }
- getchar();
- fclose(r_user);
- system("cls");
- printf("\n--Silahkan tunggu saldo anda terkirim--");
- getchar();
- system("cls");
- menuuser();
- }
- void game(){
- int xx;
- system("cls");
- saldob = ur.saldo;
- printf("Saldo anda : Rp. %d ", ur.saldo);
- printf("\n\n[ MENU GAME ]\n1.SNAKE (Rp.10000)\n2.TIC-TAC-TOE (Rp.8000)\n3.Penukaran\n4.EXIT\n");
- printf("Pilih game : ");scanf("%d",&xx);
- switch (xx){
- case 1: snake();break;
- case 2: tictactoe();break;
- case 3: penukaran();
- case 4: user();break;
- default : printf("-=-[ Menu Tidak ada ]-=-");
- getchar();
- getch();
- system("cls");
- game(); break;
- }
- }
- void snake()
- {
- FILE *r_user;
- int n=100000;
- r_user = fopen("user.dat", "rb+");
- if(saldob >= n){
- while(fread(&ur,sizeof(ur),1,r_user)==1){
- if (strcmp(ur.user, login)==0){
- fseek(r_user, -sizeof(ur), SEEK_CUR);
- ur.saldo = ur.saldo - n;
- strcpy(ur.srating, "Main Game");
- fwrite(&ur, sizeof(ur), 1, r_user);
- }
- fclose(r_user);
- printf("SELAMAT DATANG\nSILAHKAN TEKAN 'ENTER' UNTUK MELANJUTKAN");
- getch();}}
- else if (ur.saldo<=n){
- printf("Sanda kurang, silahkan isi ulang saldo anda :)");
- getch();
- system("cls");
- game();
- }
- char key;
- Print();
- system("cls");
- load();
- length=5;
- head.x=25;
- head.y=20;
- head.direction=RIGHT;
- Boarder();
- Food();
- life=3;
- bend[0]=head;
- Move();
- }
- void Move()
- {
- int a,i;
- do{
- Food();
- fflush(stdin);
- len=0;
- for(i=0;i<30;i++)
- {
- body[i].x=0;
- body[i].y=0;
- if(i==length)
- break;
- }
- Delay(length);
- Boarder();
- if(head.direction==RIGHT)
- Right();
- else if(head.direction==LEFT)
- Left();
- else if(head.direction==DOWN)
- Down();
- else if(head.direction==UP)
- Up();
- ExitGame();
- }while(!kbhit());
- a=getch();
- if(a==27)
- {
- system("cls");
- exit(0);
- }
- key=getch();
- if((key==RIGHT&&head.direction!=LEFT&&head.direction!=RIGHT)||(key==LEFT&&head.direction!=RIGHT&&head.direction!=LEFT)||(key==UP&&head.direction!=DOWN&&head.direction!=UP)||(key==DOWN&&head.direction!=UP&&head.direction!=DOWN))
- {
- bend_no++;
- bend[bend_no]=head;
- head.direction=key;
- if(key==UP)
- head.y--;
- if(key==DOWN)
- head.y++;
- if(key==RIGHT)
- head.x++;
- if(key==LEFT)
- head.x--;
- Move();
- }
- else if(key==27)
- {
- system("cls");
- exit(0);
- }
- else
- {
- printf("\a");
- Move();
- }
- }
- void gotoxy(int x, int y)
- {
- COORD coord;
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- void GotoXY(int x, int y)
- {
- HANDLE a;
- COORD b;
- fflush(stdout);
- b.X = x;
- b.Y = y;
- a = GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleCursorPosition(a,b);
- }
- void load(){
- int row,col,r,c,q;
- gotoxy(36,14);
- printf("loading...");
- gotoxy(30,15);
- for(r=1;r<=20;r++){
- for(q=0;q<=100000000;q++);
- printf("%c",177);}
- }
- void Down()
- {
- int i;
- for(i=0;i<=(head.y-bend[bend_no].y)&&len<length;i++)
- {
- GotoXY(head.x,head.y-i);
- {
- if(len==0)
- printf("v");
- else
- printf("*");
- }
- body[len].x=head.x;
- body[len].y=head.y-i;
- len++;
- }
- Bend();
- if(!kbhit())
- head.y++;
- }
- void Delay(long double k)
- {
- Score();
- long double i;
- for(i=0;i<=(10000000);i++);
- }
- void ExitGame()
- {
- int i,check=0;
- for(i=4;i<length;i++)
- {
- if(body[0].x==body[i].x&&body[0].y==body[i].y)
- {
- check++;
- }
- if(i==length||check!=0)
- break;
- }
- if(head.x<=10||head.x>=70||head.y<=10||head.y>=30||check!=0)
- {
- life--;
- if(life>=0)
- {
- head.x=25;
- head.y=20;
- bend_no=0;
- head.direction=RIGHT;
- Move();
- }
- else
- {
- system("cls");
- printf("Yahhhh game over, coba lagi kedepan yah!!!\nTeken tombol terserah buat keluar dari game\n");
- record();
- exit(0);
- }
- }
- }
- void Food()
- {
- if(head.x==food.x&&head.y==food.y)
- {
- length++;
- time_t a;
- a=time(0);
- srand(a);
- food.x=rand()%70;
- if(food.x<=10)
- food.x+=11;
- food.y=rand()%30;
- if(food.y<=10)
- food.y+=11;
- }
- else if(food.x==0)
- {
- food.x=rand()%70;
- if(food.x<=10)
- food.x+=11;
- food.y=rand()%30;
- if(food.y<=10)
- food.y+=11;
- }
- }
- void Left()
- {
- int i;
- for(i=0;i<=(bend[bend_no].x-head.x)&&len<length;i++)
- {
- GotoXY((head.x+i),head.y);
- {
- if(len==0)
- printf("<");
- else
- printf("*");
- }
- body[len].x=head.x+i;
- body[len].y=head.y;
- len++;
- }
- Bend();
- if(!kbhit())
- head.x--;
- }
- void Right()
- {
- int i;
- for(i=0;i<=(head.x-bend[bend_no].x)&&len<length;i++)
- {
- body[len].x=head.x-i;
- body[len].y=head.y;
- GotoXY(body[len].x,body[len].y);
- {
- if(len==0)
- printf(">");
- else
- printf("*");
- }
- len++;
- }
- Bend();
- if(!kbhit())
- head.x++;
- }
- void Bend()
- {
- int i,j,diff;
- for(i=bend_no;i>=0&&len<length;i--)
- {
- if(bend[i].x==bend[i-1].x)
- {
- diff=bend[i].y-bend[i-1].y;
- if(diff<0)
- for(j=1;j<=(-diff);j++)
- {
- body[len].x=bend[i].x;
- body[len].y=bend[i].y+j;
- GotoXY(body[len].x,body[len].y);
- printf("*");
- len++;
- if(len==length)
- break;
- }
- else if(diff>0)
- for(j=1;j<=diff;j++)
- {
- body[len].x=bend[i].x;
- body[len].y=bend[i].y-j;
- GotoXY(body[len].x,body[len].y);
- printf("*");
- len++;
- if(len==length)
- break;
- }
- }
- else if(bend[i].y==bend[i-1].y)
- {
- diff=bend[i].x-bend[i-1].x;
- if(diff<0)
- for(j=1;j<=(-diff)&&len<length;j++)
- {
- body[len].x=bend[i].x+j;
- body[len].y=bend[i].y;
- GotoXY(body[len].x,body[len].y);
- printf("*");
- len++;
- if(len==length)
- break;
- }
- else if(diff>0)
- for(j=1;j<=diff&&len<length;j++)
- {
- body[len].x=bend[i].x-j;
- body[len].y=bend[i].y;
- GotoXY(body[len].x,body[len].y);
- printf("*");
- len++;
- if(len==length)
- break;
- }
- }
- }
- }
- void Boarder()
- {
- system("cls");
- int i;
- GotoXY(food.x,food.y);
- printf("F");
- for(i=10;i<71;i++)
- {
- GotoXY(i,10);
- printf("!");
- GotoXY(i,30);
- printf("!");
- }
- for(i=10;i<31;i++)
- {
- GotoXY(10,i);
- printf("!");
- GotoXY(70,i);
- printf("!");
- }
- }
- void Print()
- {
- system("cls");
- printf("\tInstruksi game:\n");
- printf("\n-> Gunakan tombol arah di keyboard.\n\n-> Kamu akan mendapatkan makanan secara acak. Setiap makanan diberi 1 poin.\n\n-> Kamu punya kesempatan tiga kali. Kesempatanmu berkurang jika kamu menabrak dinding dan tubuh ularmu.\n\n-> Kamu bisa pause sementara gamenya dengan menekan tombol spasi. Untuk melanjutkan game, tekan kembali spasi\n\n-> Jika ingin keluar tekan esc. \n");
- printf("\n\nTekan tombol secara acak untuk melanjutkan game...");
- if(getch()==27)
- exit(0);
- }
- void record(){
- char plname[20],nplname[20],cha,c;
- int i,j,px;
- FILE *info;
- info=fopen("record.txt","a+");
- getch();
- system("cls");
- printf("Enter your name\n");
- scanf("%[^\n]",plname);
- for(j=0;plname[j]!='\0';j++){
- nplname[0]=toupper(plname[0]);
- if(plname[j-1]==' '){
- nplname[j]=toupper(plname[j]);
- nplname[j-1]=plname[j-1];}
- else nplname[j]=plname[j];
- }
- nplname[j]='\0';
- fprintf(info,"Nama Pemain :%s\n",nplname);
- time_t mytime;
- mytime = time(NULL);
- fprintf(info,"Tanggal bermain:%s",ctime(&mytime));
- fprintf(info,"Score:%d\n",px=Scoreonly());
- for(i=0;i<=50;i++)
- fprintf(info,"%c",'_');
- fprintf(info,"\n");
- fclose(info);
- printf("Ingin lihat scorenya? tekan 'y'\n");
- cha=getch();
- system("cls");
- if(cha=='y'){
- info=fopen("record.txt","r");
- do{
- putchar(c=getc(info));
- }while(c!=EOF);}
- fclose(info);
- game();
- }
- int Score()
- {
- int score;
- GotoXY(20,8);
- score=length-5;
- printf("SCORE : %d",(length-5));
- score=length-5;
- GotoXY(50,8);
- printf("Life : %d",life);
- return score;
- }
- int Scoreonly()
- {
- int score=Score();
- system("cls");
- return score;
- }
- void Up()
- {
- int i;
- for(i=0;i<=(bend[bend_no].y-head.y)&&len<length;i++)
- {
- GotoXY(head.x,head.y+i);
- {
- if(len==0)
- printf("^");
- else
- printf("*");
- }
- body[len].x=head.x;
- body[len].y=head.y+i;
- len++;
- }
- Bend();
- if(!kbhit())
- head.y--;
- }
- void tictactoe(){
- system("cls");
- printf("GAME TICTACTOE");
- }
- void penukaran(){
- system ("cls");
- char plname[20],nplname[20],cha,c;
- int i,j,px,score;
- FILE *info;
- info=fopen("record.txt","a+");
- score=length-5;
- printf("SCORE : %d",(length-5));
- score=length-5;
- fclose(info);
- info=fopen("record.txt","r");
- do{
- putchar(c=getc(info));
- }
- while(c!=EOF);
- fclose(info);
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement