Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Zadanie maturalne - matura z informatyki 2016 zadanie "gra w życie"

$
0
0

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

Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra