snake game

please help with this program
my snake is unable to take turns while it is alredy turning

#include <stdio.h>
#include <dos.h>
#include <fstream.h>
#include <string.h>
#include<io.h>
#include<dir.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
int x,y;
int c=3;
int genx()
{
randomize();
randomize();
randomize();
x=random(70);
randomize();
randomize();
x=random(70);
randomize();
x=random(70);
randomize();
randomize();
x=random(70);
randomize();
x=random(70);
randomize();
randomize();
x=random(70);
return x;
}
int geny()
{
randomize();
randomize();
randomize();
y=random(15);
randomize();
randomize();
y=random(15);
randomize();
randomize();
randomize();
y=random(15);
randomize();
randomize();
y=random(15);
return y;
}
void check(int x,int y)
{
if(wherex()>75||wherey()>=25||wherex()==2||wherey()==1)
{
clrscr();
cout<<"game over";
exit(0);
}
else if((wherex()==x+1 && wherey()==y))
{
c++;
int x1,y1;
x1=wherex();
y1=wherey();
x=genx();
y=geny();
gotoxy(x+1,y+1);
cout<<"#";
gotoxy(x1,y1);
}
}
void main()
{
long double i;
char z;
for(i=0;i<25;i++)
{
gotoxy(0,i);
cout<<'o';
}
for(i=0;i<25;i++)
{
gotoxy(75,i);
cout<<'o';
}
for(i=0;i<75;i++)
{
gotoxy(i,0);
cout<<'o';
}
for(i=0;i<75;i++)
{
gotoxy(i,25);
cout<<'o';
}
x=genx();
y=geny();
gotoxy(x,y);
cout<<"#";
gotoxy(2,2);
z='d';
int f=0;
char p;
while(!(wherex()==x+1 && wherey()==y))
{

int fw=0;
int l,k;
int q=-1;
int q1=0;
while(z=='w'&& (!kbhit()))
{
if(p=='d')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-1,wherey()-1);
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-c+q,k);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-1,k-q1);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
if(p=='a')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-1,wherey()-1);
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<=c)
{
gotoxy(l+c-q-1,k);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-1,k-q1);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
}

while(z=='d'&& (!kbhit()))
{
if(p=='s')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex(),wherey());
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-1,k-c+q);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l+q1-2,k);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
if(p=='w')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex(),wherey());
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-1,k+c-q);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l+q1-2,k);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
else
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex(),wherey());
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-1,k-c+q);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l+q1-1,k);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
}
while(z=='s'&& (!kbhit()))
{
if(p=='d')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-1,wherey()+1);
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-c+q,k);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-1,k+q1);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
if(p=='a')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-1,wherey()+1);
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<=c)
{
gotoxy(l+c-q-1,k);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-1,k+q1);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
}

while(z=='a'&& (!kbhit()))
{
if(p=='s')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-2,wherey());
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-1,k-c+q);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-q1+1,k);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
if(p=='w')
{
if(fw==0)
{
l=wherex();
k=wherey();
fw=1;
}
gotoxy(wherex()-2,wherey());
cout<<".";
for(i=0;i<10000000;i++);
int g,h;
g=wherex();
h=wherey();
if(q<c)
{
gotoxy(l-1,k+c-q);
cout<<" ";
}
if(q>=c-1)
q1++;
if(q1!=0)
{
gotoxy(l-q1+1,k);
cout<<" ";
}
q++;
gotoxy(g,h);
check(x,y);
continue;
}
}
p=z;
z=getch();
}
cout<<"\n\n\n\n\n\n\nstep taken:"<<c;
}
somebody...pls...
Topic archived. No new replies allowed.