Hallo,
ich wollte mal Snake Programieren, bis jetzt geht auch alles wunderbar, das einzigste Problem ist wenn die Schlanke um 2 Kurve gleichzeitig muss.
Zurzeit hab ich nur Links und Unten in dem code, da ich erst das Problem lösen möchte.
ich möchte keine Headerdatein aus dem Netz verwenden, also nur Boardmittel.
Hier mein Code:
ich wollte mal Snake Programieren, bis jetzt geht auch alles wunderbar, das einzigste Problem ist wenn die Schlanke um 2 Kurve gleichzeitig muss.
Zurzeit hab ich nur Links und Unten in dem code, da ich erst das Problem lösen möchte.
ich möchte keine Headerdatein aus dem Netz verwenden, also nur Boardmittel.
Hier mein Code:
Code:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int main()
{
//----------yy--xx---
char array[10][20];
int i=0;
int j=0;
int taste=0;
int zaehler=0;
int del=0;
int test=0;
int test3=0;
int test2=0;
int taste2=0;
int xsnake=0;
int ysnake=2;
int kurve=0;
int segment0x=0;
int segment1x=1;
int segment2x=2;
int segment3x=3;
int segment0y=5;
int segment1y=5;
int segment2y=5;
int segment3y=5;
for(i=0; i<10; i++)
{
for(j=0; j<20; j++)
{
array[i][j]='X';
}
}
//---Schlange--
//-------------
for(;;zaehler++)
{
if(kbhit())
{
test=0;
getch();
taste=getch();
while(test<1)
{
taste2=taste;
test=1;
}
}
if(taste2==80)
{
kurve=segment3x;
segment3y++;
if(segment0x!=kurve)
{
segment0x++;
}
else
{
segment0y++;
}
if(segment1x!=kurve)
{
segment1x++;
}
else
{
segment1y++;
}
if(segment2x!=kurve)
{
segment2x++;
}
else
{
segment2y++;
}
if(segment0x==kurve)
{
ysnake=1;
}
test2=0;
}
else if(taste2==77) //--Rechts--
{
kurve=segment3y;
segment3x++;
if(segment0y!=kurve)
{
segment0y++;
}
else
{
segment0x++;
}
if(segment1y!=kurve)
{
segment1y++;
}
else
{
segment1x++;
}
if(segment2y!=kurve)
{
segment2y++;
}
else
{
segment2x++;
}
if(segment0y==kurve)
{
ysnake=2;
}
test3=0;
}
else
{
segment0x++;
segment1x++;
segment2x++;
segment3x++;
}
if(segment0x==20)
{
segment0x=0;
}
if(segment1x==20)
{
segment1x=0;
}
if(segment2x==20)
{
segment2x=0;
}
if(segment3x==20)
{
segment3x=0;
}
if(segment0y==10)
{
segment0y=0;
}
if(segment1y==10)
{
segment1y=0;
}
if(segment2y==10)
{
segment2y=0;
}
if(segment3y==10)
{
segment3y=0;
}
if(ysnake==1)
{
while(test2<1)
{
del=segment0x;
del--;
array[segment0y][del]=' ';
test2=1;
}
//-------------------------------------------
del=segment0y;
del--;
array[del][segment0x]=' ';
del=segment1y;
del=del--;
array[del][segment1x]=' ';
del=segment2y;
del=del--;
array[del][segment2x]=' ';
del=segment3y;
del=del--;
array[del][segment3x]=' ';
if(segment0y==0)
{
array[9][segment0x]=' ';
}
}
else if(ysnake=2)
{
while(test3<1)
{
del=segment0y;
del--;
array[del][segment0x]=' ';
test3=1;
}
//-----------------------------------
del=segment0x;
del--;
array[segment0y][del]=' ';
del=segment1x;
del=del--;
array[segment1y][del]=' ';
del=segment2x;
del=del--;
array[segment2y][del]=' ';
del=segment3x;
del=del--;
array[segment3y][del]=' ';
if(segment0x==0)
{
array[segment0y][19]=' ';
}
}
//----------------------------------------
array[segment0y][segment0x]=(char)219;
array[segment1y][segment1x]=(char)219;
array[segment2y][segment2x]=(char)219;
array[segment3y][segment3x]=(char)219;
//----------------------------------------
array[6][10]='M';
for(i=0; i<10; i++)
{
for(j=0; j<20; j++)
{
cout << array[i][j];
}
cout << endl;
}
Sleep(50);
system("cls");
}
return 0;
}