Witam
Ogólnie program wydaję się dla mnie być prostym do zrobienia, lecz mój komputer nie chce ze mną współpracować, nie wie wykonuje kodu tak jak powinien działać :/
https://www.cke.edu.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2016/formula_do_2014/MIN-R2_1P-162.pdf ----- zadanie 5.
Wytłumaczę co nie co w programie. Zmienne takie jak "r", "ur" "dl" to zmienne, które określają sąsiadów zmiennej tab[i] na planszy. "r" to right, "ur" to up right, "dl" to down left i tak dalej. Zmienna licz ma liczyć ile jest sąsiadów posiadających 'x'.
Nie wykonuje się żaden z if'ów inkrementujących zmienną licz. I tu jest problem, nie wiem co jest grane, wyświetlając wartości tych zmiennym wyświetlają się dobrze, zgodnie z zasadami mojego rozumowania.
Oto mój kod.
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
int main()
{
ifstream plik("gra.txt", ios_base::in);
char tab[221];
for(int i=0;i<220;i++)
{
plik.get(tab[i]);
}
tab[221] = 'a';
int choose = 0;
while(choose==0)
{
for(int i=0;i<220;i++)
{
int u=220;
int r=220;
int d=220;
int l=220;
int ul=220;
int ur=220;
int dl=220;
int dr=220;
int licz=0;
if(i-20>=0)u=i-20;
if(i+1<220)r=i+1;
if(i+20<220)d=i+20;
if(i-1>=0)l=i-1;
if(i-21>=0) ul=i-21;
if(i-19>=0) ur=i-19;
if(i+19<220) dl=i+19;
if(i+21<220) dr=i+21;
if(tab[u]=='x') ++licz;
if(tab[r]=='x') ++licz;
if(tab[d]=='x') ++licz;
if(tab[l]=='x') ++licz;
if(tab[ul]=='x') ++licz;
if(tab[ur]=='x') ++licz;
if(tab[dl]=='x') ++licz;
if(tab[dr]=='x') ++licz;
if(tab[i]=='x')
{
if(licz!=2 || licz!=3)
tab[i]='.';
}
if(tab[i]=='.')
{
if(licz==3)
tab[i]='x';
}
}
for(int i=0;i<220;i++)
{
cout << tab[i];
if(i+1%20==0) cout << endl;
}
cout << endl;
cout << "Wybierz: ";
cin >> choose;
}
return 0;
}
Plik potrzebny do zadania
....................
....................
....................
....................
.......X.XX.........
.......XXX..........
........X...........
....................
....................
....................
....................
....................