Skip to content

Instantly share code, notes, and snippets.

@erayarslan
Created July 17, 2014 10:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erayarslan/e902ebf00ed21089b44b to your computer and use it in GitHub Desktop.
Save erayarslan/e902ebf00ed21089b44b to your computer and use it in GitHub Desktop.
Yılan v1
/**
* @fikir Burak ONGAN
* @tarih 02.01.2013
* @yazar Eray ARSLAN
*/
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <time.h>
#include <windows.h>
#define bx 20
#define by 75
#define DOLU '+'
#define BOS ' '
#define YEM 'o'
#define hiz 25
int skor=0;
char tahta[bx][by];
int yilan[2][bx*by];
int yilan_uzunlugu=4;
int durum=2;
int yem_x;
int yem_y;
void yilan_yon(char &c);
void tahta_yazdir();
void tahta_temizle();
bool tahta_icinde_mi(int x,int y);
bool yilan_icinde_mi(int x,int y);
void yilan_yerlestir();
void yilan_hareket(int yon);
void yem_uret();
bool yem_var_mi(int x,int y);
void yandin();
void kapat();
int main()
{
srand(time(NULL));
yem_uret();
//
yilan[0][0]=9;yilan[1][0]=9;
yilan[0][1]=9;yilan[1][1]=10;
yilan[0][2]=9;yilan[1][2]=11;
yilan[0][3]=9;yilan[1][3]=12;
//
char c='d';
while(c!=27)
{
Sleep(hiz);
tahta_temizle();
yilan_yerlestir();
tahta[yem_x][yem_y]=YEM;
tahta_yazdir();
yilan_yon(c);
if(c=='w')
{
if(yem_var_mi(yilan[0][yilan_uzunlugu-1]-1,yilan[1][yilan_uzunlugu-1])==true)
{
yilan[0][yilan_uzunlugu]=yem_x;
yilan[1][yilan_uzunlugu]=yem_y;
yilan_uzunlugu++;
yem_uret();
skor+=(1000/hiz);
}
if(durum==3 || tahta_icinde_mi(yilan[0][yilan_uzunlugu-1]-1,yilan[1][yilan_uzunlugu-1])==false || yilan_icinde_mi(yilan[0][yilan_uzunlugu-1]-1,yilan[1][yilan_uzunlugu-1])==false)
{
yandin();
}
durum=1;
yilan_hareket(durum);
}
else if(c=='a')
{
if(yem_var_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]-1)==true)
{
yilan[0][yilan_uzunlugu]=yem_x;
yilan[1][yilan_uzunlugu]=yem_y;
yilan_uzunlugu++;
yem_x=rand()%20+0;
yem_y=rand()%20+0;
skor+=(1000/hiz);
}
if(durum==2 || tahta_icinde_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]-1)==false || yilan_icinde_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]-1)==false)
{
yandin();
}
durum=4;
yilan_hareket(durum);
}
else if(c=='s')
{
if(yem_var_mi(yilan[0][yilan_uzunlugu-1]+1,yilan[1][yilan_uzunlugu-1])==true)
{
yilan[0][yilan_uzunlugu]=yem_x;
yilan[1][yilan_uzunlugu]=yem_y;
yilan_uzunlugu++;
yem_x=rand()%20+0;
yem_y=rand()%20+0;
skor+=(1000/hiz);
}
if(durum==1 || tahta_icinde_mi(yilan[0][yilan_uzunlugu-1]+1,yilan[1][yilan_uzunlugu-1])==false || yilan_icinde_mi(yilan[0][yilan_uzunlugu-1]+1,yilan[1][yilan_uzunlugu-1])==false)
{
yandin();
}
durum=3;
yilan_hareket(durum);
}
else if(c=='d')
{
if(yem_var_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]+1)==true)
{
yilan[0][yilan_uzunlugu]=yem_x;
yilan[1][yilan_uzunlugu]=yem_y;
yilan_uzunlugu++;
yem_x=rand()%20+0;
yem_y=rand()%20+0;
skor+=(1000/hiz);
}
if(durum==4 || tahta_icinde_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]+1)==false || yilan_icinde_mi(yilan[0][yilan_uzunlugu-1],yilan[1][yilan_uzunlugu-1]+1)==false)
{
yandin();
}
durum=2;
yilan_hareket(durum);
}
else {}
}
return 0;
}
void tahta_yazdir()
{
system("cls");
std::cout<<"(ESC) Skor : "<<skor<<std::endl;
for(int i=1;i<=by;i++)
{
std::cout<<"-";
}
std::cout<<std::endl;
for(int i=0;i<bx;i++)
{
for(int j=0;j<by;j++)
{
std::cout<<tahta[i][j];
}
std::cout<<std::endl;
}
for(int i=1;i<=by;i++)
{
std::cout<<"-";
}
}
void tahta_temizle()
{
for(int i=0;i<bx;i++)
{
for(int j=0;j<by;j++)
{
tahta[i][j]=BOS;
}
}
}
bool yilan_icinde_mi(int x,int y)
{
for(int i=0;i<yilan_uzunlugu;i++)
{
if(x==yilan[0][i] && y==yilan[1][i])
{
return false;
}
}
return true;
}
bool tahta_icinde_mi(int x,int y)
{
for(int i=0;i<=by-1;i++)
{
if(x==-1 && i==y)
{
return false;
}
}
for(int i=0;i<=by-1;i++)
{
if(x==bx && i==y)
{
return false;
}
}
for(int i=0;i<=bx-1;i++)
{
if(y==by && i==x)
{
return false;
}
}
for(int i=0;i<=bx-1;i++)
{
if(y==-1 && i==x)
{
return false;
}
}
return true;
}
void yilan_yerlestir()
{
for(int i=0;i<yilan_uzunlugu;i++)
{
tahta[yilan[0][i]][yilan[1][i]]=DOLU;
}
}
void yilan_hareket(int yon)
{
if(yon==1)
{
int yilan_son_x=yilan[0][yilan_uzunlugu-1];
int yilan_son_y=yilan[1][yilan_uzunlugu-1];
int yilan_ilk_x=yilan[0][0];
int yilan_ilk_y=yilan[1][0];
for(int i=0;i<yilan_uzunlugu-1;i++)
{
yilan[0][i]=yilan[0][i+1];
yilan[1][i]=yilan[1][i+1];
}
yilan[0][yilan_uzunlugu-1]--;
}
else if(yon==2)
{
int yilan_son_x=yilan[0][yilan_uzunlugu-1];
int yilan_son_y=yilan[1][yilan_uzunlugu-1];
int yilan_ilk_x=yilan[0][0];
int yilan_ilk_y=yilan[1][0];
for(int i=0;i<yilan_uzunlugu-1;i++)
{
yilan[0][i]=yilan[0][i+1];
yilan[1][i]=yilan[1][i+1];
}
yilan[1][yilan_uzunlugu-1]++;
}
else if(yon==3)
{
int yilan_son_x=yilan[0][yilan_uzunlugu-1];
int yilan_son_y=yilan[1][yilan_uzunlugu-1];
int yilan_ilk_x=yilan[0][0];
int yilan_ilk_y=yilan[1][0];
for(int i=0;i<yilan_uzunlugu-1;i++)
{
yilan[0][i]=yilan[0][i+1];
yilan[1][i]=yilan[1][i+1];
}
yilan[0][yilan_uzunlugu-1]++;
}
else if(yon==4)
{
int yilan_son_x=yilan[0][yilan_uzunlugu-1];
int yilan_son_y=yilan[1][yilan_uzunlugu-1];
int yilan_ilk_x=yilan[0][0];
int yilan_ilk_y=yilan[1][0];
for(int i=0;i<yilan_uzunlugu-1;i++)
{
yilan[0][i]=yilan[0][i+1];
yilan[1][i]=yilan[1][i+1];
}
yilan[1][yilan_uzunlugu-1]--;
}
}
bool yem_var_mi(int x,int y)
{
if(x==yem_x && y==yem_y)
{
return true;
}
return false;
}
void yilan_yon(char &c)
{
int tus;
if (kbhit())
{
tus = getch();
switch(tus)
{
case 72:
c = 'w';
break;
case 77:
c = 'd';
break;
case 80:
c = 's';
break;
case 75:
c = 'a';
break;
case 27:
kapat();
break;
}
}
}
void yandin()
{
std::cout<<std::endl<<"Yandiniz."<<std::endl;
Sleep(10000);
exit(0);
}
void kapat()
{
std::cout<<std::endl<<"Kapattiniz."<<std::endl;
Sleep(10000);
exit(0);
}
void yem_uret()
{
while(1)
{
yem_x=rand()%20+0;
yem_y=rand()%20+0;
if(yilan_icinde_mi(yem_x,yem_y)==true)
{
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment