H
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
#pragma argsused
void rahmen(void)
{
int x;
for(x=1;x<80;x++)
{
gotoxy(x,1);
printf("*");
gotoxy(x,25);
printf("*");
}
for(x=2;x<25; x++)
{
gotoxy(1,x);
printf("*");
gotoxy(79,x);
printf("*");
}
}
void gameover_screen(void)
{
clrscr();
rahmen();
gotoxy(35,12);
printf("GAME OVER");
gotoxy(27,14);
printf("Powered by c-plusplus.net");
}
int gameover(int x, int y)
{
if( (x==1) || (x==79) || (y==1) || (y==25) )
return(999); // GAMEOVER
else
return(1); // GAME NOT OVER
}
void loeschen(void)
{
window(2,2,78,24);
clrscr();
window(1,1,79,25);
}
void zeichnen(int *snake_x, int *snake_y)
{
int i;
loeschen();
for(i=0; i<10; i++)
{
if( (*(snake_x+i)) == 0 || (*(snake_y+i)) == 0) {}
else
{
gotoxy(*(snake_x+i),*(snake_y+i));
printf("#");
}
}
}
int bewegen(int *snake_x, int *snake_y, int richtung)
{
int i;
long zeitverzoegerung;
while(!kbhit())
{
for(i=0; i<9; i++)
{
if( (*(snake_x+i+1)) == 0) { break; }
else
{
*(snake_x+i) = *(snake_x+i+1);
*(snake_y+i) = *(snake_y+i+1);
}
}
// RICHTUNG 0=rechts 1=links 2=hoch 3=runter
switch(richtung)
{
case 0: {
(*(snake_x+i))++;
break;
}
case 1: {
(*(snake_x+i))--;
break;
}
case 2: {
(*(snake_y+i))--;
break;
}
case 3: {
(*(snake_y+i))++;
break;
}
}
i = gameover( (*(snake_x+i)),(*(snake_y+i)) );
if(i==999) return(i);
else
{
zeichnen(snake_x,snake_y);
for (zeitverzoegerung=0; zeitverzoegerung<99999999; zeitverzoegerung++);
}
}
return(getch());
}
void main(void)
{
int snake_x[10];
int snake_y[10];
int zeichen;
int i;
for(i=0; i<10; i++)
{
snake_x[i] = 0;
snake_y[i] = 0;
}
rahmen();
// Schlage erzeugen;
snake_x[0] = 5;
snake_x[1] = 6;
snake_x[2] = 7;
snake_y[0] = 5;
snake_y[1] = 5;
snake_y[2] = 5;
zeichnen(snake_x,snake_y);
i = 1;
while (!kbhit())
{
zeichen = getch();
while(i!=2)
{
if(zeichen=='w'){ i=bewegen(snake_x,snake_y,2);}; // hoch
if(zeichen=='a'){ i=bewegen(snake_x,snake_y,1);}; // links
if(zeichen=='s'){ i=bewegen(snake_x,snake_y,3);}; // RUNTER
if(zeichen=='d'){ i=bewegen(snake_x,snake_y,0);}; // RECHTS
zeichen=i;
if(i==999) break;
}
if(i==999) break;
}
gameover_screen();
fflush(stdin);
getch();
}
//---------------------------------------------------------------------------
so hab das ganze nochmal angepasst .. mom ist die schlange schon 3 zeichen lang o_0
sie bewegt sich selbstständig
und wenn man gegen die mauer fährt is spiel aus
hf