Stuczna/Console/ConsoleApplication1/pch.cpp

2680 lines
64 KiB
C++

#include "pch.h"
#include<iostream>
#include<fstream>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#include<process.h>
#include <thread>
#include <cmath>
#include <string>
#include <ostream>
#include <string.h>
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;
}
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////