Witam
zacząłem dzisiaj się trochę bawić z tablicami 2 wymiarowymi i postanowiłem zrobić prostą grę typu snake, jednak za chiny ludowe nie potrafię wymyślić co zrobić z ogonem, próbowałem to zrobić na kilka sposobów ale jedynie ten jest jak minimalnie zbliżony do tego co chcę uzyskać. Proszę o jakiekolwiek rady czy też naprowadzenie :) . Wiem, że można to zrobić dużo lepiej z biblioteką conio.h bardziej zależy mi na zrozumieniu mechanizmu.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int gameover = 1;
int i,j;
int plansza[50][20];
int wysokosc = 20, szerokosc = 50;
int snakex=25,snakey=25;
int rozmiar = 5;
int jedzeniex=25, jedzeniey=25;
int historiax[1000], historiay[1000];
int ile = 0;
char odp;
void draw(){
for(i=0;i<wysokosc;i++){
for(j=0;j<szerokosc;j++){
plansza[j][i] = ' ';
if(i==0)
plansza[j][i] = '#';
if(j==0)
plansza[j][i] = '#';
if(j==szerokosc-1)
plansza[j][i] = '#';
if(i==wysokosc-1)
plansza[j][i] = '#';
}
}
}
void show(){
system("cls");
for(i=0;i<wysokosc;i++){
for(j=0;j<szerokosc;j++){
printf("%c", plansza[j][i]);
}
printf("\n");
}
}
void snake(){
ile++;
srand(time(0));
odp = getchar();
switch(odp){
case 'a':
snakex--;
break;
case 'd':
snakex++;
break;
case 's':
snakey++;
break;
case 'w':
snakey--;
break;
}
historiax[ile] = snakex;
historiay[ile] = snakey;
plansza[snakex][snakey] = 'O';
plansza[historiax[ile-rozmiar]][historiay[ile-rozmiar]] = 'o';
if(plansza[snakex][snakey] == plansza[jedzeniex][jedzeniey])
{
//score = score + 10;
rozmiar++;
do{
jedzeniex = rand()%szerokosc;
jedzeniey = rand()%wysokosc;
}while( plansza[jedzeniex][jedzeniey] == '#');
}
plansza[jedzeniex][jedzeniey] = 'F';
if(snakex == 0 || snakex == szerokosc || snakey==0 || snakey==wysokosc ){
gameover=0;
}
}
int main()
{
while(gameover){
draw();
snake();
show();
}
}