Witam. Ostatnio wziąłem się za zaimplementowanie Snake'a w C++. Piszę temat, ze względu na to, że wszelkie inne kody znalezione w necie czy tutaj są dla mnie jeszcze nie zrozumiałe, tzn. są funkcje, których jeszcze nie poznałem. Pragnę dodać, że Snake'a tworzę w tablicy dwuwymiarowej - babka na ćw. wymaga od nas użycia w programie tablic, pętli oraz warunków. Na obecną chwilę zmagam się z napisaniem kodu sterowania wężem. Sposób w jakim ja myślę jednak nie podoba się Visual'owi - program działa, ale sposób sterowanie już nie:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char p;
char t;
char tab[20][70]; // Zadeklarowanie tablicy jako pola do gry.
char k;
int a = 10;
int b = 34;
tab[a][b] = '^';
cout << "SNAKE - THE GAME" << '\n' << '\n' << "OTWORZ MENU START, WYBIERAJAC 'S' I AKCEPTUJAC." << '\n'; // Prezentacja programu oraz proste menu do uruchomienia gry.
do // Pętla, która będzie prosiła o spełnienie postawionego warunku.
{
cin >> t;
cout << "WYBIERZ I ZAAKCEPTUJ 'S' BY ROZPOCZAC!" << '\n';
}
while (t != 'S');
cout << "CZY CHCESZ ROZPOCZAC GRE? TAK - 1, WYJSCIE - 2" << '\n'; // Menu gry - wejście lub wyjście z gry.
cin >> p;
cout << '\n' << '\n' << '\n' << '\n' << '\n';
if (p == '1') // Pierwszy warunek - warunek akceptacji rozpoczęcia gry.
{
for (int a = 0; a < 20; a++) // Pętle tworzące ramkę w tablicy, wyznaczająca pole do gry.
{
for (int b = 0; b < 1; b++)
{
tab[a][b] = '*';
}
}
for (int a = 0; a < 1; a++)
{
for (int b = 0; b < 70; b++)
{
tab[a][b] = '*';
}
}
for (int a = 19; a < 20; a++)
{
for (int b = 1; b < 70; b++)
{
tab[a][b] = '*';
}
}
for (int a = 1; a < 20; a++)
{
for (int b = 69; b < 70; b++)
{
tab[a][b] = '*';
}
}
for (int a = 1; a < 19; a++)
{
for (int b = 1; b < 69; b++)
{
tab[a][b] = ' ';
}
}
for (int a = 0; a < 20; a++)
{
for (int b = 0; b < 70; b++)
{
cout << tab[a][b];
}
cout << '\n';
}
do
{
cin >> k;
if (k == 'w')
{
a++;
tab[a][b];
}
else if (k == 's')
{
a--;
tab[a][b];
}
else if (k == 'd')
{
b++;
tab[a][b];
}
else if(k == 'a')
{
b--;
tab[a][b];
}
} while (a != 0);
}
cout << '\n' << '\n' << '\n';
return 0;
}
Nie wiem jak mógłbym przemieszczać "głowę" węża w tej tablicy. Próbowałem nie wstawiać spacji w środku ramki (usuwając pętle), ale wyskakują mi dziwne symbole, a i tak + się nie przemieści. A i jak mam tą pętlę z spacją to + się nie pojawia w ogóle. Aktualnie stoję i nie wiem jak ruszyć z tym dalej.