Membuat Games Snake Dengan Memakai Bahasa C++ Di Code::Blocks

Diposting pada 20 views

Memainkan game merupakan dikala ini memang bukan saja sebagai sebuah cara untuk menghilangkan jenuh atau penat dikala bekerja melainkan sebagai sebuah pekerjaan yang sanggup menhasilkan jutaan rupiah. Seperti teladan saja Pewdiepie seorang youtuber populer yang sukses alasannya ialah aksinya yang hanya bermain game saja, nah bagaimana jikalau kita yang sukses dengan menciptakan game bukan memainkannya. Apakah bisa?

Tentu saja sanggup alasannya ialah dikala ini dunia game sudah sangat pesat berkembang dan terus maju dengan pinjaman dari pemerintah dan juga media yang hasilnya meliput dari para kreator game. Ini ialah sebuah pinjaman yang faktual dan baik alasannya ialah bagi para kreator hal yang dilakukan media ialah sebuah apresiasi yang sanggup menciptakan kreator menjadi besar hati bahwa sanggup menciptakan game untuk dimainkan oleh orang lain.

Baca juga : Cara untuk Ganti Foto Profil PUBG Mobile cepat dan gratis

Nah kali ini mungkin kau ingin menciptakan sebuah game namun belum tahu harus mulai dari mana? Tenang saja kali ini akan sekedar membuatkan source code untuk menciptakan game snake. Ya memang game ini ialah sebuah game yang sangat jadul, kenapa? Karena rupanya game snake ini ialah game pertama yang berhasil dibentuk pada handphone Nokia.

Tapi, dikala ini game ini sudah tidak ada yang memainkannya alasannya ialah memang kualitas dan grafik yang diberikan sangat buruk dan bahkan untuk kini sanggup dibilang ini bukan game jadi melainkan sebuah game prototype atau setangah jadi. Nah mungkin untuk kau yang punya kiprah untuk menciptakan game maka game snake ini sanggup jadi pilihan kau dalam menuntaskan kiprah kau tersebut. Game ini memakai bahasa c++ sehingga kau memerlukan compiler ibarat MinGW atau sanggup juga pribadi memakai Code::blocks

Source Code game Snake bahaaa c++

Source dibawah ini sanggup pribadi kau copas (Copy paste) saja di Code::blocks biar sanggup pribadi kau running.

//Snake Game #include <GL/glu.h> #include<iostream.h> #include<conio.h> #include<graphics.h> #include<dos.h> #include<stdlib.h> #include<stdio.h> #include<time.h> #include<string.h> class Snake {  int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m;  int stp,egGen;  int xr,yr;  void caught();  public:   long scr;  int strtX,strtY,endX,endY;  int pos[100][2];  void show();  void init();  void egg();  void transpose();  void gnrtCond();  void gnrtUnCond();  void check();  void checkEgg();  void move();  void chngDir();  void sndEt();  void sndCgt();  int test();  void score();  Snake();  Snake(Snake*);   Snake();  }; Snake::Snake()  {  } Snake:: Snake() {  } void Snake::checkEgg() {  if((e1 == p1) && (e2 == p2))  {sndEt();   egg();   dly--;   score();   n++;   } } void Snake::sndEt() {nosound();  sound(2500);  delay(2);  nosound(); } void Snake::sndCgt() {nosound();  for(int x=1000;x>0;x--)  {sound(x);   delay(1);   }  nosound(); } void Snake::score() { char *p;    ltoa(scr,p,10);   settextstyle(8,0,1);   setcolor(0);   outtextxy(585,40,p);   if(egGen != 1){   scr = scr + dly / 10;   }   ltoa(scr,p,10);   setcolor(10);   outtextxy(585,40,p);  } void Snake::gnrtCond() {if(n < 367)  {if(now == 8 && (prev != 8 && prev != 2))   {pos[0][0] = p1;    pos[0][1] = p2 - dsp;    prev = now;    }   if(now == 4 && (prev != 4 && prev != 1))   {pos[0][0] = p1 + dsp;    pos[0][1] = p2;    prev = now;    }   if(now == 2 && (prev != 8 && prev != 2))   {pos[0][0] = p1;    pos[0][1] = p2 + dsp;    prev = now;    }   if(now == 1 && (prev != 1 && prev != 4))   {pos[0][0] = p1 - dsp;    pos[0][1] = p2;    prev = now;    } } } void Snake::gnrtUnCond() {   if( prev == 8 )   {pos[0][0] = p1;    pos[0][1] = p2 - dsp;    }  if( prev == 4 )   {pos[0][0] = p1 + dsp;    pos[0][1] = p2;    }  if( prev == 2 )   {pos[0][0] = p1;    pos[0][1] = p2 + dsp;    }  if( prev == 1 )   {pos[0][0] = p1 - dsp;    pos[0][1] = p2;    }  p1 = pos[0][0];  p2 = pos[0][1]; } void Snake::check() {  if(p1 > endX)   {p1 = strtX;}  else if(p1 < strtX)   {p1 = endX;}   if(p2 > endY)   {p2 = strtY;}  else if(p2 < strtY)   {p2 = endY;}   pos[0][0] = p1;  pos[0][1] = p2; for(int i = 1;i < n;i++)   { if(p1 == pos[i][0] && p2 == pos[i][1])   {caught();    break;   }  } } void Snake::show() {   int x = getcolor();   if(egGen != 1)   {   setcolor(getbkcolor());   setfillstyle(1,getbkcolor());   fillellipse(v1,v2,yr,yr);    }   else    egGen = 0;   if(egGen == 2)    egGen--;   setcolor(colr);   setfillstyle(1,9);   if(now == 8 || now == 2)    fillellipse(pos[0][0],pos[0][1],xr,yr);   else if(now == 4 || now == 1)    fillellipse(pos[0][0],pos[0][1],yr,xr);   setcolor(x); } void Snake::transpose() { int i,j,x,y;    p1 = pos[0][0];    p2 = pos[0][1];    if(!egGen){    v1 = pos[n-1][0];    v2 = pos[n-1][1];    }    else     egGen = 0;    for(i = n-1;i >= 1;i--)    {pos[i][0] = pos[i-1][0];     pos[i][1] = pos[i-1][1];    } } void Snake::move() { int st = 0;   do{    if(!kbhit())    {checkEgg();     if(!st)      show();     else      st = 0;     delay(dly/4);     transpose();     delay(dly/4);     gnrtUnCond();     delay(dly/4);     check();    delay(dly/4);     }    else if(stp){    chngDir();    gnrtCond();    check();    show();    st = 1;    }    }while(stp); } void Snake::init() {time_t tm;  srand(time(&tm));  dsp = 20;  n = 5;  prev = 4;  for(int i = 4;i >= 0;i--)  {pos[i][0] = 201 + (n - i - 1) * dsp;   pos[i][1] = 301;   }   strtX = 21;   strtY = 21;   endX = 481;   endY = 361;   colr = 14;   now = prev;   dsp = 20;   stp = 111;   cnt = -1;   scr = 0;   dly = 150;    xr = 3;    yr = 9;   egg();   egGen = 1;   score();   int x = getcolor();   setlinestyle(0,1,3);   setcolor(15);   rectangle(strtX-15,strtY-15,endX+15,endY+15);   rectangle(endX+25,strtY-15,getmaxx()-15,endY+15);   rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5);   line(endX+25,strtY+75,getmaxx()-15,strtY+75);   line(endX+25,strtY+200,getmaxx()-15,strtY+200);   line(endX+25,strtY+275,getmaxx()-15,strtY+275);   setlinestyle(0,1,1);   settextstyle(8,0,1);   setcolor(11);   outtextxy(514,40,"SCORE");   setcolor(14);   settextstyle(11,0,5);   outtextxy(524,110," CONTROLS ");   outtextxy(522,135,"p = PAUSE");   outtextxy(522,155,"g = RESUME");   outtextxy(522,175,"e = EXIT");   outtextxy(513,195,"ARROWS");   outtextxy(512,205,"    -MOVEMENT");   setcolor(14);   settextstyle(4,0,9);   outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE");   settextstyle(8,0,1);   setcolor(x); } void Snake::caught() {  stp = 0;  sndCgt(); for(int i=0;i<=7;i++)  {if(i%2)   {setcolor(10);    outtextxy(512,250,"GAME OVER");    delay(900);    }   else   {setcolor(0);    outtextxy(512,250,"GAME OVER");    delay(500);   }   } sleep(1); } void Snake::chngDir() {int clr;  fillsettingstype *p;  char x = getch();  if(x == 72)   now = 8;  else if(x == 77)   now = 4;  else if(x == 80)   now = 2;  else if(x == 75)   now = 1;  else if(x == 'e')   caught();  else if(x == 'p')  {//int y = getcolor();   int twnkl = 1;   settextstyle(11,0,9);   while(1)   {if(kbhit())    {int c = getch();     if(c == 'g')     {clr = getcolor();      setcolor(0);      rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);      outtextxy(endX+60,endY-29,"PAUSE");      break;      }     }    else    {if(twnkl%2)     {clr = getcolor();      setcolor(10);      rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);      outtextxy(endX+60,endY-29,"PAUSE");      setcolor(clr);       delay(1000);      }     else     {      clr = getcolor();      setcolor(0);      rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);      outtextxy(endX+60,endY-29,"PAUSE");      delay(1000);     }    }    twnkl++;   }     settextstyle(8,0,1);  } } Snake::Snake(Snake *p) {  *p=NULL; } void Snake::egg() { do   {e1 = (rand() % 100) * dsp + strtX;    e2 = (rand() % 100) * dsp + strtY;    }while(test());   int x = getcolor();   setcolor(7);   setfillstyle(1,random(15)+1);   fillellipse(e1,e2,xr+2,xr+2);   setcolor(x);   egGen = 2; } int Snake::test() { for(int i=0;i<n;i++)   {if(e1 == pos[i][0] && e2 == pos[i][1])     break;    if(v1 == e1 && v2 == e2)     break;    if((e1 >= endX+1) || (e2 >= endY+1))     break;    }  if(i != n)   return 1;  else   return 0; }  void main() {Snake snk;  int gd=DETECT,gm,i,j,k,x,y;  clrscr();  initgraph(&gd,&gm,"E:\Turboc3");  snk.init();  snk.move();   closegraph();  restorecrtmode();  }

Baca juga : Cara Ganti Foto Profil Game Hago cepat dan mudah

Sekian game snake yang sanggup berikan alasannya ialah memang untuk posting source code ibarat ini tidak merupakan passion kami akan tetapi kami mencoba berani untuk memposting hal yang ibarat ini, alasannya ialah niat kami adaalh untuk membuatkan dan juga media untuk mencar ilmu semua orang.