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........... .................... .................... .................... .................... ....................