#include "pch.h" #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; extern bool gra = true; char mapa[25][25]; int pozycjaX = 1, pozycjaY = 1, ilosc_roslin = 0, ilosc_plonow = 0, ilosc_trupow = 0, paliwo = 0, konrolka = 0, h , pog; clock_t start, stop; double czas; //struktura do przekazywania danych droga glowna; //mapa roslin roslina tab[25][25]; //tablica scierzek sciezka scierzka[16]; sciezka sciezka_temp; //pomocnicze droga oblicz(int x, int y) // nr drogi - obliczanie drogi do pozycji x/y (drogi kolejno przez y=1;y=12;y=23) { droga d; int i, j, dlugosc, droga_; int dlugosctemp = 0; i = abs(pozycjaX - x); j = abs(pozycjaY - y); d.x = x; d.y = y; if (x - pozycjaX > 1 && y - pozycjaY == 0) // 0,1,2 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 1; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 2; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (x - pozycjaX > 1 && y - pozycjaY > 0) // 3,4,5 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 3; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 4; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 5; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (x - pozycjaX > 1 && y - pozycjaY < 0) // 6,7,8 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 6; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 7; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 8; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (x - pozycjaX == 0 && y - pozycjaY > 0) // 9,10 przez y=1 lub 12 { dlugosctemp = dlugosctemp + 1; dlugosctemp = dlugosctemp + j; dlugosc = dlugosctemp; if (pozycjaY = 1) { droga_ = 9; d._droga = droga_; d.dlugosc = dlugosc; return d; } if (pozycjaY = 12) { droga_ = 10; d._droga = droga_; d.dlugosc = dlugosc; return d; } } if (x - pozycjaX == 0 && y - pozycjaY < 0) // 11,12 przez y=12 lub 23 { dlugosctemp = dlugosctemp + 1; dlugosctemp = dlugosctemp + j; dlugosc = dlugosctemp; if (pozycjaY = 12) { droga_ = 11; d._droga = droga_; d.dlugosc = dlugosc; return d; } if (pozycjaY = 23) { droga_ = 12; d._droga = droga_; d.dlugosc = dlugosc; return d; } } if (x - pozycjaX < -1 && y - pozycjaY == 0) // 13,14,15 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 13; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 14; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 15; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (x - pozycjaX < -1 && y - pozycjaY>0) // 16,17,18 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 16; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 17; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 18; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (x - pozycjaX < -1 && y - pozycjaY < 0) // 19,20,21 { dlugosctemp = dlugosctemp + abs(pozycjaY - 1); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(1 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } dlugosc = dlugosctemp; dlugosctemp = 0; droga_ = 19; dlugosctemp = dlugosctemp + abs(pozycjaY - 12); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(12 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 20; } dlugosctemp = 0; dlugosctemp = dlugosctemp + abs(pozycjaY - 23); dlugosctemp = dlugosctemp + i; dlugosctemp = dlugosctemp + abs(23 - y); if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { dlugosctemp = dlugosctemp - 1; } else { dlugosctemp = dlugosctemp + 1; } if (dlugosctemp < dlugosc) { dlugosc = dlugosctemp; droga_ = 21; } d._droga = droga_; d.dlugosc = dlugosc; return d; } if (i == 1 && y - pozycjaY > 0) // 22 brak przejscia w góre lub w dół { dlugosc = j; droga_ = 22; d._droga = droga_; d.dlugosc = dlugosc; return d; } if (i == 1 && y - pozycjaY < 0) // 23 brak przejscia w góre lub w dół { d.dlugosc = j; d._droga = 23; return d; } if (i == 1 && y - pozycjaY == 0) //24 brak ruchu tylko podlanie { d.dlugosc = 0; d._droga = 24; return d; } } droga znajdz() //uastawienie wagi dróg + wybranie najlepszej drogi do rosliny { droga dozwrotu; // droga zwracana z wynikiem gdzie idzie traktor droga zzrwotu; // droga do obliczania scierzek droga sciezka_odleglosc1; //oblicznie wagi w zależności od odległości traktora do scierzki droga sciezka_odleglosc2; //oblicznie wagi w zależności od odległości traktora do scierzki int i, j, k, l, m, n; // zmienne do pętli zzrwotu._droga = 100; zzrwotu.dlugosc = 1000; dozwrotu.dlugosc = 10000; dozwrotu._droga = 100; droga zapis_drug[25][2]; // zapis dróg do scierzek sciezka_temp.waga = 10000; for (i = 0; i < 16; i++) //zerowanie scieżki { scierzka[i].waga = 1000; scierzka[i].ilosc_roslin_bez_nawozu = 0; scierzka[i].ilosc_roslin_bez_wody = 0; } for (k = 0; k < 16; k++) // obliczanie wagi scierzek { for (i = 1; i <= 22; i = i + 3) { m = i + 1; n = i - 1; if (scierzka[k].numer == i && scierzka[k].poczatek == 2) // dla lewej czesci mapy { for (l = 2; l <= scierzka[k].koniec; l++) { if (tab[m][l].stan == 2 || tab[m][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[m][l].woda)); } if (tab[m][l].stan == 3 || tab[m][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[m][l].nawoz)); } if (tab[n][l].stan == 2 || tab[n][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[n][l].woda)); } if (tab[n][l].stan == 3 || tab[n][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[n][l].nawoz)); } if (tab[i + 1][l].rodzaj == 1 || tab[i - 1][l].rodzaj == 1) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else if (tab[i + 1][l].rodzaj == 2 || tab[i - 1][l].rodzaj == 2) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else if (tab[i + 1][l].rodzaj == 3 || tab[i - 1][l].rodzaj == 3) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } } } } for (i = 1; i <= 22; i = i + 3) { m = i + 1; n = i - 1; if (scierzka[k].numer == i && scierzka[k].poczatek == 13) // dla prawej czesci mapy { for (l = 13; l <= scierzka[k].koniec; l++) { if (tab[m][l].stan == 2 || tab[m][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[m][l].woda)); } if (tab[m][l].stan == 3 || tab[m][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[m][l].nawoz)); } if (tab[n][l].stan == 2 || tab[n][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[n][l].woda)); } if (tab[n][l].stan == 3 || tab[n][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - (int(czas - tab[n][l].nawoz)); } if (tab[i + 1][l].rodzaj == 1 || tab[i - 1][l].rodzaj == 1) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else if (tab[i + 1][l].rodzaj == 2 || tab[i - 1][l].rodzaj == 2) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else if (tab[i + 1][l].rodzaj == 3 || tab[i - 1][l].rodzaj == 3) { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } else { if (tab[i + 1][l].stan == 2 || tab[i - 1][l].stan == 2) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; } else if (tab[i + 1][l].stan == 3 || tab[i - 1][l].stan == 3) { scierzka[k].waga = scierzka[k].waga - 6; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } else if (tab[i + 1][l].stan == 4 || tab[i - 1][l].stan == 4) { scierzka[k].waga = scierzka[k].waga - 12; scierzka[k].ilosc_roslin_bez_wody = scierzka[k].ilosc_roslin_bez_wody + 1; scierzka[k].ilosc_roslin_bez_nawozu = scierzka[k].ilosc_roslin_bez_nawozu + 1; } } } } } } for (k = 0; k < 16; k++) { if (pozycjaX == scierzka[k].numer && pozycjaY <= scierzka[k].koniec && pozycjaY >= scierzka[k].poczatek) { h = k; } if (scierzka[k].poczatek == 2 && h != k) { scierzka[k].waga = scierzka[k].waga + (abs(pozycjaX - scierzka[k].numer) / 2); /*sciezka_odleglosc1 = oblicz(scierzka[k].numer, scierzka[k].poczatek); //nwm czemu nie działa , sypie sie podczas oblicz sciezka_odleglosc2 = oblicz(scierzka[k].numer, scierzka[k].koniec); if (sciezka_odleglosc1.dlugosc < sciezka_odleglosc2.dlugosc) { scierzka[k].waga = scierzka[k].waga + sciezka_odleglosc1.dlugosc; } else { scierzka[k].waga = scierzka[k].waga + sciezka_odleglosc2.dlugosc; }*/ } else if (scierzka[k].poczatek == 13 && h != k) { scierzka[k].waga = scierzka[k].waga + (abs(pozycjaX - scierzka[k].numer) / 2); /*sciezka_odleglosc1 = oblicz(scierzka[k].numer, scierzka[k].poczatek); //nwm czemu nie działa , sypie sie podczas oblicz sciezka_odleglosc2 = oblicz(scierzka[k].numer, scierzka[k].koniec); if (sciezka_odleglosc1.dlugosc < sciezka_odleglosc2.dlugosc) { scierzka[k].waga = scierzka[k].waga + sciezka_odleglosc1.dlugosc; } else { scierzka[k].waga = scierzka[k].waga + sciezka_odleglosc2.dlugosc; }*/ } } if (scierzka[h].waga < 1000) { for (i = scierzka[h].poczatek; i <= scierzka[h].koniec; i++) { if (tab[pozycjaX + 1][i].stan == 2 || tab[pozycjaX + 1][i].stan == 3 || tab[pozycjaX + 1][i].stan == 4) { zzrwotu = oblicz(pozycjaX + 1, i); zapis_drug[i][0].dlugosc = zzrwotu.dlugosc; zapis_drug[i][0]._droga = zzrwotu._droga; zapis_drug[i][0].x = zzrwotu.x; zapis_drug[i][0].y = zzrwotu.y; } if (tab[pozycjaX - 1][i].stan == 2 || tab[pozycjaX - 1][i].stan == 3 || tab[pozycjaX - 1][i].stan == 4) { zzrwotu = oblicz(pozycjaX - 1, i); zapis_drug[i][1].dlugosc = zzrwotu.dlugosc; zapis_drug[i][1]._droga = zzrwotu._droga; zapis_drug[i][1].x = zzrwotu.x; zapis_drug[i][1].y = zzrwotu.y; } } for (i = scierzka[h].poczatek; i <= scierzka[h].koniec; i++) { if (tab[pozycjaX + 1][i].stan == 2 || tab[pozycjaX + 1][i].stan == 3 || tab[pozycjaX + 1][i].stan == 4) { if (dozwrotu.dlugosc > zapis_drug[i][0].dlugosc) { dozwrotu.dlugosc = zapis_drug[i][0].dlugosc; dozwrotu._droga = zapis_drug[i][0]._droga; dozwrotu.x = zapis_drug[i][0].x; dozwrotu.y = zapis_drug[i][0].y; } } if (tab[pozycjaX - 1][i].stan == 2 || tab[pozycjaX - 1][i].stan == 3 || tab[pozycjaX - 1][i].stan == 4) { if (dozwrotu.dlugosc > zapis_drug[i][1].dlugosc) { dozwrotu.dlugosc = zapis_drug[i][1].dlugosc; dozwrotu._droga = zapis_drug[i][1]._droga; dozwrotu.x = zapis_drug[i][1].x; dozwrotu.y = zapis_drug[i][1].y; } } } } else { for (k = 0; k < 16; k++) { if (scierzka[k].waga < sciezka_temp.waga) { sciezka_temp.waga = scierzka[k].waga; sciezka_temp.numer = scierzka[k].numer; sciezka_temp.poczatek = scierzka[k].poczatek; sciezka_temp.koniec = scierzka[k].koniec; } } for (i = sciezka_temp.poczatek; i <= sciezka_temp.koniec; i++) { if (tab[sciezka_temp.numer + 1][i].stan == 2 || tab[sciezka_temp.numer + 1][i].stan == 3 || tab[sciezka_temp.numer + 1][i].stan == 4) { zzrwotu = oblicz(sciezka_temp.numer + 1, i); zapis_drug[i][0].dlugosc = zzrwotu.dlugosc; zapis_drug[i][0]._droga = zzrwotu._droga; zapis_drug[i][0].x = zzrwotu.x; zapis_drug[i][0].y = zzrwotu.y; } if (tab[sciezka_temp.numer - 1][i].stan == 2 || tab[sciezka_temp.numer - 1][i].stan == 3 || tab[sciezka_temp.numer - 1][i].stan == 4) { zzrwotu = oblicz(sciezka_temp.numer - 1, i); zapis_drug[i][1].dlugosc = zzrwotu.dlugosc; zapis_drug[i][1]._droga = zzrwotu._droga; zapis_drug[i][1].x = zzrwotu.x; zapis_drug[i][1].y = zzrwotu.y; } } for (i = sciezka_temp.poczatek; i <= sciezka_temp.koniec; i++) { if (tab[sciezka_temp.numer + 1][i].stan == 2 || tab[sciezka_temp.numer + 1][i].stan == 3 || tab[sciezka_temp.numer + 1][i].stan == 4) { if (dozwrotu.dlugosc > zapis_drug[i][0].dlugosc) { dozwrotu.dlugosc = zapis_drug[i][0].dlugosc; dozwrotu._droga = zapis_drug[i][0]._droga; dozwrotu.x = zapis_drug[i][0].x; dozwrotu.y = zapis_drug[i][0].y; } } if (tab[sciezka_temp.numer - 1][i].stan == 2 || tab[sciezka_temp.numer - 1][i].stan == 3 || tab[sciezka_temp.numer - 1][i].stan == 4) { if (dozwrotu.dlugosc > zapis_drug[i][1].dlugosc) { dozwrotu.dlugosc = zapis_drug[i][1].dlugosc; dozwrotu._droga = zapis_drug[i][1]._droga; dozwrotu.x = zapis_drug[i][1].x; dozwrotu.y = zapis_drug[i][1].y; } } } } return dozwrotu; } void idz() // alg||ytmy chodzenia trakt||a dla zadanej drogi { int x, y, droga, i, j; zapis.open("dane.txt"); glowna = znajdz(); x = glowna.x; y = glowna.y; droga = glowna._droga; Sleep(100); if (droga == 100) //stój w miejscu { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (droga == 9 || droga == 10 || droga == 11 || droga == 12) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (droga == 9) { i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 10) { i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 11) { i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 12) { i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 0 || droga == 1 || droga == 2 || droga == 13 || droga == 14 || droga == 15) { if (droga == 0 || droga == 13) { i = abs(pozycjaY - 1); for (j = i; j > 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { if (droga == 0) { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } else { if (droga == 0) { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } for (j = 1; j < y; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else if (droga == 1 || droga == 14) { i = abs(pozycjaY - 12); if (pozycjaY < 12) { for (j = i; j > 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = i; j > 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { if (droga == 1) { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } else { if (droga == 1) { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } if (12 < y) { for (j = 12; j < y; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = 12; j > y; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } else { i = abs(pozycjaY - 23); for (j = i; j > 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { if (droga == 2) { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } else { if (droga == 2) { i = abs(pozycjaX - x); for (j = i; j >= 0; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); for (j = i; j > 1; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } for (j = 23; j > y; j--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 3 || droga == 4 || droga == 5 || droga == 6 || droga == 7 || droga == 8) { if (droga == 3 || droga == 6) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 1) { i = abs(pozycjaY - 1); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 4 || droga == 7) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 12) { i = abs(pozycjaY - 12); if (pozycjaY < 12) { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); if (y < 12) { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } if (droga == 5 || droga == 8) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 23) { i = abs(pozycjaY - 23); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('s'), 0, 0, 0); keybd_event(VkKeyScan('s'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 16 || droga == 17 || droga == 18 || droga == 19 || droga == 20 || droga == 21) { if (droga == 16 || droga == 19) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 1) { i = abs(pozycjaY - 1); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 17 || droga == 20) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 12) { i = abs(pozycjaY - 12); if (pozycjaY < 12) { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); if (y < 12) { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } if (droga == 18 || droga == 21) { if (pozycjaX == 2 || pozycjaX == 5 || pozycjaX == 8 || pozycjaX == 11 || pozycjaX == 14 || pozycjaX == 17 || pozycjaX == 20 || pozycjaX == 23) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else if (pozycjaX == 3 || pozycjaX == 6 || pozycjaX == 9 || pozycjaX == 12 || pozycjaX == 15 || pozycjaX == 18 || pozycjaX == 21 || pozycjaX == 24) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } if (pozycjaY != 23) { i = abs(pozycjaY - 23); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (x == 2 || x == 5 || x == 8 || x == 11 || x == 14 || x == 17 || x == 20 || x == 23) { i = abs(pozycjaX - x); i = i + 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaX - x); i = i - 1; for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('w'), 0, 0, 0); keybd_event(VkKeyScan('w'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } i = abs(pozycjaY - y); for (j = 0; j < i; j++) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 22 || droga == 23) { if (droga == 22) { i = abs(pozycjaY - y); for (i; i > 0; i--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('d'), 0, 0, 0); keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } else { i = abs(pozycjaY - y); for (i; i > 0; i--) { while (konrolka != 0); konrolka = 1; keybd_event(VkKeyScan('a'), 0, 0, 0); keybd_event(VkKeyScan('a'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } if (droga == 24) { if (pozycjaX - x > 0) { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('p'), 0, 0, 0); keybd_event(VkKeyScan('p'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('o'), 0, 0, 0); keybd_event(VkKeyScan('o'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } else { zapis << tab[x][y].kolor << ' ' << tab[x][y].kwiat << ' ' << tab[x][y].lisc; while (konrolka != 0); for (i = tab[x][y].wod; i <= tab[x][y].wod_check; i++) { konrolka = 1; keybd_event(VkKeyScan('l'), 0, 0, 0); keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } for (i = tab[x][y].naw; i <= tab[x][y].naw_check; i++) { konrolka = 1; keybd_event(VkKeyScan('k'), 0, 0, 0); keybd_event(VkKeyScan('k'), 0, KEYEVENTF_KEYUP, 0); while (konrolka != 0); } keybd_event(VkKeyScan('t'), 0, 0, 0); keybd_event(VkKeyScan('t'), 0, KEYEVENTF_KEYUP, 0); Sleep(50); } } } void ustaw_stan() // stan dla roslin przed updatemapa { int i, j; for (i = 2; i <= 23; i++) { for (j = 2; j < 23; j++) { if (i!= 2 && i != 4 && i != 7 && i != 10 && i != 13 && i != 16 && i != 19 && i != 22 && j != 12) { if (tab[i][j].stan == 5) { if (czas - tab[i][j].sadzonka > 0) { tab[i][j].stan = 1; tab[i][j].zycie = czas; tab[i][j].woda = czas; tab[i][j].nawoz = czas; mapa[i][j] = 'R'; } } if (tab[i][j].rodzaj == 1) { if ((czas - tab[i][j].woda > 60 || czas - tab[i][j].nawoz > 60) && (tab[i][j].stan != 5 && tab[i][j].stan != 6)) { tab[i][j].stan = 0; mapa[i][j] = 'X'; } if (tab[i][j].stan != 0 && tab[i][j].stan != 5) { if (tab[i][j].stan == 1 && czas - tab[i][j].zycie > 60) { tab[i][j].stan = 6; mapa[i][j] = 'G'; } if (tab[i][j].stan != 4 && tab[i][j].stan != 6) { if ((czas - tab[i][j].woda) > 20) { if (tab[i][j].stan != 3 && tab[i][j].stan != 2) { tab[i][j].stan = 2; tab[i][j].wod = 0; } else if (tab[i][j].stan != 2) { tab[i][j].stan = 4; tab[i][j].wod = 0; } } if ((czas - tab[i][j].nawoz) > 30 && tab[i][j].stan != 3) { if (tab[i][j].stan != 2) { tab[i][j].stan = 3; tab[i][j].naw = 0; } else if (tab[i][j].stan != 3) { tab[i][j].stan = 4; tab[i][j].naw = 0; } } } } } else if (tab[i][j].rodzaj == 2) { if ((czas - tab[i][j].woda > 60 || czas - tab[i][j].nawoz > 60) && (tab[i][j].stan != 5 && tab[i][j].stan != 6)) { tab[i][j].stan = 0; mapa[i][j] = 'X'; } if (tab[i][j].stan != 0 && tab[i][j].stan != 5) { if (tab[i][j].stan == 1 && czas - tab[i][j].zycie > 70) { tab[i][j].stan = 6; mapa[i][j] = 'G'; } if (tab[i][j].stan != 4 && tab[i][j].stan != 6) { if ((czas - tab[i][j].woda) > 30) { if (tab[i][j].stan != 3 && tab[i][j].stan != 2) { tab[i][j].stan = 2; tab[i][j].wod = 0; } else if (tab[i][j].stan != 2) { tab[i][j].stan = 4; tab[i][j].wod = 0; } } if ((czas - tab[i][j].nawoz) > 35) { if (tab[i][j].stan != 2 && tab[i][j].stan != 3) { tab[i][j].stan = 3; tab[i][j].naw = 0; } else if (tab[i][j].stan != 3) { tab[i][j].stan = 4; tab[i][j].naw = 0; } } } } } else if (tab[i][j].rodzaj == 3) { if ((czas - tab[i][j].woda > 60 || czas - tab[i][j].nawoz > 80) && (tab[i][j].stan != 5 && tab[i][j].stan != 6)) { tab[i][j].stan = 0; mapa[i][j] = 'X'; } if (tab[i][j].stan != 0 && tab[i][j].stan != 5) { if (tab[i][j].stan == 1 && czas - tab[i][j].zycie > 90) { tab[i][j].stan = 6; mapa[i][j] = 'G'; } if (tab[i][j].stan != 4 && tab[i][j].stan != 6) { if ((czas - tab[i][j].woda) > 25) { if (tab[i][j].stan != 3 && tab[i][j].stan != 2) { tab[i][j].stan = 2; tab[i][j].wod = 0; } else if (tab[i][j].stan != 2) { tab[i][j].stan = 4; tab[i][j].wod = 0; } } if ((czas - tab[i][j].nawoz) > 50) { if (tab[i][j].stan != 2 && tab[i][j].stan != 3) { tab[i][j].stan = 3; tab[i][j].naw = 0; } else if (tab[i][j].stan != 3) { tab[i][j].stan = 4; tab[i][j].naw = 0; } } } } } else { if ((czas - tab[i][j].woda > 100 || czas - tab[i][j].nawoz > 120) && (tab[i][j].stan != 5 && tab[i][j].stan != 6)) { tab[i][j].stan = 0; mapa[i][j] = 'X'; } if (tab[i][j].stan != 0 && tab[i][j].stan != 5) { if (tab[i][j].stan == 1 && czas - tab[i][j].zycie > 180) { tab[i][j].stan = 6; mapa[i][j] = 'G'; } if (tab[i][j].stan != 4 && tab[i][j].stan != 6) { if ((czas - tab[i][j].woda) > 45) { if (tab[i][j].stan != 3 && tab[i][j].stan != 2) { tab[i][j].stan = 2; tab[i][j].wod = 0; } else if (tab[i][j].stan != 2) { tab[i][j].stan = 4; tab[i][j].wod = 0; } } if ((czas - tab[i][j].nawoz) > 70) { if (tab[i][j].stan != 2 && tab[i][j].stan != 3) { tab[i][j].stan = 3; tab[i][j].naw = 0; } else if (tab[i][j].stan != 3) { tab[i][j].stan = 4; tab[i][j].naw = 0; } } } } } } } } } void updateMapa() { ustaw_stan(); COORD cur = { 0, 0 }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cur); ilosc_roslin = 0; ilosc_plonow = 0; ilosc_trupow = 0; for (int i = 0; i < 25; i++) { for (int j = 0; j < 25; j++) { if (mapa[i][j] == 'R' && tab[i][j].stan == 1) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);//jest_ok cout << mapa[i][j]; ilosc_roslin++; } else if (mapa[i][j] == 'R' && tab[i][j].stan == 2) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x06A);//potrzebuje_wody cout << mapa[i][j]; ilosc_roslin++; } else if (mapa[i][j] == 'R' && tab[i][j].stan == 3) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xE);//potrzebuje_nawozu cout << mapa[i][j]; ilosc_roslin++; } else if (mapa[i][j] == 'R' && tab[i][j].stan == 4) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 366);//potrzebuje_wody_i_nawozu cout << mapa[i][j]; ilosc_roslin++; } else if (mapa[i][j] == 'S' && tab[i][j].stan == 5) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x00F);//sadzonka cout << mapa[i][j]; } else if (mapa[i][j] == 'G' && tab[i][j].stan == 6) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10); cout << mapa[i][j]; ilosc_plonow++; } else if (mapa[i][j] == 'X' && tab[i][j].stan == 0) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xC);//roślina_jest_martwa cout << mapa[i][j]; ilosc_trupow++; } else if (mapa[i][j] == 'T') { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 70);//traktor cout << mapa[i][j]; } else { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);//pole+płot cout << mapa[i][j]; } } SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0); cout << '\n'; } stop = clock(); czas = (stop - start) / (double)CLOCKS_PER_SEC; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x00F); cout << (int)czas << '\n' << ilosc_roslin << " roslin" << '\n' << ilosc_trupow << " martwych roslin" << '\n' << ilosc_plonow << " planow" << '\n' << paliwo << " zuzyte paliwo "; cout << pog; } //////////////////////////////////////////////////////////////////////////////// //wątek_odświeżający_konsolę_co_1ms///////////////////////////// void Odswiez(void* data) { //printf("_beginthread %d \n", GetCurrentThreadId()); do { updateMapa(); } while (gra != FALSE); _endthread(); } ///////////////////////////////////////////////////////////////// void Chodz(void* data) { int x; do { x = rand() % 10; if (x < 3) { pogoda(); } idz(); } while (gra != FALSE); _endthread(); } //widoczność_kursora///////////////////////////////// void ShowConsoleCursor(bool showFlag) { HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cursorInfo; GetConsoleCursorInfo(out, &cursorInfo); cursorInfo.bVisible = showFlag; SetConsoleCursorInfo(out, &cursorInfo); } ///////////////////////////////////////////////////// //działania_traktora/////////////////////////////////// void dzialanie(char klikniecie) { //....................W if (klikniecie == 'w') { if (mapa[pozycjaX - 1][pozycjaY] == '.') { mapa[pozycjaX][pozycjaY] = '.'; pozycjaX = pozycjaX - 1; mapa[pozycjaX][pozycjaY] = 'T'; paliwo = paliwo + 1; } } //....................S if (klikniecie == 's') { if (mapa[pozycjaX + 1][pozycjaY] == '.') { mapa[pozycjaX][pozycjaY] = '.'; pozycjaX = pozycjaX + 1; mapa[pozycjaX][pozycjaY] = 'T'; paliwo = paliwo + 1; } } //....................A if (klikniecie == 'a') { if (mapa[pozycjaX][pozycjaY - 1] == '.') { mapa[pozycjaX][pozycjaY] = '.'; pozycjaY = pozycjaY - 1; mapa[pozycjaX][pozycjaY] = 'T'; paliwo = paliwo + 1; } } //....................D if (klikniecie == 'd') { if (mapa[pozycjaX][pozycjaY + 1] == '.') { mapa[pozycjaX][pozycjaY] = '.'; pozycjaY = pozycjaY + 1; mapa[pozycjaX][pozycjaY] = 'T'; paliwo = paliwo + 1; } } //....................P if (klikniecie == 'p') { if (mapa[pozycjaX - 1][pozycjaY] == 'R' && (tab[pozycjaX - 1][pozycjaY].stan == 2 || tab[pozycjaX - 1][pozycjaY].stan == 4)) { if (tab[pozycjaX - 1][pozycjaY].stan == 2) { tab[pozycjaX - 1][pozycjaY].wod++; if (tab[pozycjaX - 1][pozycjaY].wod == tab[pozycjaX - 1][pozycjaY].wod_check) { tab[pozycjaX - 1][pozycjaY].stan = 1; tab[pozycjaX - 1][pozycjaY].woda = czas; } } if (tab[pozycjaX - 1][pozycjaY].stan == 4) { tab[pozycjaX - 1][pozycjaY].wod++; if (tab[pozycjaX - 1][pozycjaY].wod == tab[pozycjaX - 1][pozycjaY].wod_check) { tab[pozycjaX - 1][pozycjaY].stan = 3; tab[pozycjaX - 1][pozycjaY].woda = czas; } } } } if (klikniecie == 'l') { if (tab[pozycjaX + 1][pozycjaY].stan == 2 || tab[pozycjaX + 1][pozycjaY].stan == 4) { if (tab[pozycjaX + 1][pozycjaY].stan == 2) { tab[pozycjaX + 1][pozycjaY].wod++; if (tab[pozycjaX + 1][pozycjaY].wod = tab[pozycjaX + 1][pozycjaY].wod_check) { tab[pozycjaX + 1][pozycjaY].stan = 1; tab[pozycjaX + 1][pozycjaY].woda = czas; } } if (tab[pozycjaX + 1][pozycjaY].stan == 4) { tab[pozycjaX + 1][pozycjaY].wod++; if (tab[pozycjaX + 1][pozycjaY].wod == tab[pozycjaX + 1][pozycjaY].wod_check) { tab[pozycjaX + 1][pozycjaY].stan = 3; tab[pozycjaX + 1][pozycjaY].woda = czas; } tab[pozycjaX + 1][pozycjaY].woda = czas; } } } if (klikniecie == 'o') { if (tab[pozycjaX - 1][pozycjaY].stan == 3 || tab[pozycjaX - 1][pozycjaY].stan == 4) { if (tab[pozycjaX - 1][pozycjaY].stan == 3) { tab[pozycjaX - 1][pozycjaY].naw++; if (tab[pozycjaX - 1][pozycjaY].naw == tab[pozycjaX - 1][pozycjaY].naw_check) { tab[pozycjaX - 1][pozycjaY].stan = 1; tab[pozycjaX - 1][pozycjaY].nawoz = czas; } } if (tab[pozycjaX - 1][pozycjaY].stan == 4) { tab[pozycjaX - 1][pozycjaY].naw++; if (tab[pozycjaX - 1][pozycjaY].naw == tab[pozycjaX - 1][pozycjaY].naw_check) { tab[pozycjaX - 1][pozycjaY].stan = 2; tab[pozycjaX - 1][pozycjaY].nawoz = czas; } } } } if (klikniecie == 'k') { if (tab[pozycjaX + 1][pozycjaY].stan == 3 || tab[pozycjaX + 1][pozycjaY].stan == 4) { if (tab[pozycjaX + 1][pozycjaY].stan == 3) { tab[pozycjaX + 1][pozycjaY].naw++; if (tab[pozycjaX + 1][pozycjaY].naw == tab[pozycjaX + 1][pozycjaY].naw_check) { tab[pozycjaX + 1][pozycjaY].stan = 1; tab[pozycjaX + 1][pozycjaY].nawoz = czas; } } if (tab[pozycjaX + 1][pozycjaY].stan == 4) { tab[pozycjaX + 1][pozycjaY].naw++; if (tab[pozycjaX + 1][pozycjaY].naw == tab[pozycjaX + 1][pozycjaY].naw_check) { tab[pozycjaX + 1][pozycjaY].stan = 2; tab[pozycjaX + 1][pozycjaY].nawoz = czas; } } } } } void pogoda() { int i ,j; pog = rand() % 3; for (i = 2; i <= 23; i++) { for (j = 2; j < 23; j++) { if (i != 2 && i != 4 && i != 7 && i != 10 && i != 13 && i != 16 && i != 19 && i != 22 && j != 12) { if (tab[i][j].rodzaj == 1) { tab[i][j].wod_check = 3; tab[i][j].naw_check = 4; } else if (tab[i][j].rodzaj == 2) { tab[i][j].wod_check = 5; tab[i][j].naw_check = 2; } else if (tab[i][j].rodzaj == 3) { tab[i][j].wod_check = 2; tab[i][j].naw_check = 6; } else { tab[i][j].wod_check = 10; tab[i][j].naw_check = 10; } } } } for (i = 2; i <= 23; i++) { for (j = 2; j < 23; j++) { if (i != 2 && i != 4 && i != 7 && i != 10 && i != 13 && i != 16 && i != 19 && i != 22 && j != 12) { if (pog == 1) //zbyt słonecznie { tab[i][j].wod_check = tab[i][j].wod_check + 3; tab[i][j].naw_check--; } else if (pog == 2) //burza { tab[i][j].wod_check--; tab[i][j].naw_check = tab[i][j].naw_check +3; } } } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////