diff --git a/Main.cpp b/Main.cpp index ebe698a..b2f1b2a 100644 --- a/Main.cpp +++ b/Main.cpp @@ -1,242 +1,243 @@ -#include -#include -#include -#include -#include - -using namespace std; - -char pole[27][27][2]; -int pozycjaTraktoraX = 1, pozycjaTraktoraY = 1; - -void color(string foregroundColor,string backgroundColor) -{ - HANDLE hOut; - hOut = GetStdHandle(STD_OUTPUT_HANDLE); - int foregroundCode = 15; - if (foregroundColor == "black") - foregroundCode = 0; - if (foregroundColor == "dark_blue") - foregroundCode = 1; - if (foregroundColor == "green") - foregroundCode = 2; - if (foregroundColor == "cyan") - foregroundCode = 3; - if (foregroundColor == "dark_red") - foregroundCode = 4; - if (foregroundColor == "purple") - foregroundCode = 5; - if (foregroundColor == "dark_yellow") - foregroundCode = 6; - if (foregroundColor == "light_gray") - foregroundCode = 7; - if (foregroundColor == "gray") - foregroundCode = 8; - if (foregroundColor == "blue") - foregroundCode = 9; - if (foregroundColor == "lime") - foregroundCode = 10; - if (foregroundColor == "light_blue") - foregroundCode = 11; - if (foregroundColor == "red") - foregroundCode = 12; - if (foregroundColor == "magenta") - foregroundCode = 13; - if (foregroundColor == "yellow") - foregroundCode = 14; - if (foregroundColor == "white") - foregroundCode = 15; - - int backgroundCode = 0; - if (backgroundColor == "black") - backgroundCode = 0; - if (backgroundColor == "dark_blue") - backgroundCode = 1; - if (backgroundColor == "green") - backgroundCode = 2; - if (backgroundColor == "cyan") - backgroundCode = 3; - if (backgroundColor == "dark_red") - backgroundCode = 4; - if (backgroundColor == "purple") - backgroundCode = 5; - if (backgroundColor == "dark_yellow") - backgroundCode = 6; - if (backgroundColor == "light_gray") - backgroundCode = 7; - if (backgroundColor == "gray") - backgroundCode = 8; - if (backgroundColor == "blue") - backgroundCode = 9; - if (backgroundColor == "lime") - backgroundCode = 10; - if (backgroundColor == "light_blue") - backgroundCode = 11; - if (backgroundColor == "red") - backgroundCode = 12; - if (backgroundColor == "magenta") - backgroundCode = 13; - if (backgroundColor == "yellow") - backgroundCode = 14; - if (backgroundColor == "white") - backgroundCode = 15; - SetConsoleTextAttribute(hOut, foregroundCode + backgroundCode*16); -} - -void SetWindow(int Width, int Height) -{ - _COORD coord; - coord.X = Width; - coord.Y = Height; - - _SMALL_RECT Rect; - Rect.Top = 0; - Rect.Left = 0; - Rect.Bottom = Height - 1; - Rect.Right = Width - 1; - - HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE); // Get Handle - SetConsoleScreenBufferSize(Handle, coord); // Set Buffer Size - SetConsoleWindowInfo(Handle, TRUE, &Rect); // Set Window Size -} - -void updatePola() -{ - system("cls"); - for (int i = 0; i < 27; i++) - { - for (int j = 0; j < 27; j++) - { - char item = pole[i][j][0]; - switch (item) - { - case 'B': - { - color("purple", "dark_yellow"); - }break; - case 'T': - { - color("red", "dark_yellow"); - }break; - case '.': - { - color("yellow", "dark_yellow"); - }break; - case '#': - { - color("light_gray", "gray"); - }break; - } - cout << pole[i][j][0]; - - } - cout << endl; - color("white", "black"); - } -} - -void Move(char kierunek) -{ - switch (kierunek) - { - //góra-(w) - case 'w': - { - if (pole[pozycjaTraktoraX - 1][pozycjaTraktoraY][0] != '#') - { - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; - pozycjaTraktoraX--; - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; - - } - updatePola(); - }break; - //dó³-(s) - case 's': - { - if (pole[pozycjaTraktoraX + 1][pozycjaTraktoraY][0] != '#') - { - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; - pozycjaTraktoraX++; - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; - - } - updatePola(); - }break; - //lewo-(a) - case 'a': - { - if (pole[pozycjaTraktoraX][pozycjaTraktoraY - 1][0] != '#') - { - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; - pozycjaTraktoraY--; - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; - - } - updatePola(); - }break; - //prawo-(d) - case 'd': - { - if (pole[pozycjaTraktoraX][pozycjaTraktoraY + 1][0] != '#') - { - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; - pozycjaTraktoraY++; - pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; - - } - updatePola(); - }break; - } -} - -int main() -{ - SetWindow(50, 30); - - //create pola// - for (int i = 0; i < 27; i++) - { - pole[i][0][0] = '#'; - pole[0][i][0] = '#'; - pole[26][i][0] = '#'; - pole[i][26][0] = '#'; - } - for (int i = 1; i < 26; i++) - { - for (int j = 1; j < 26; j++) - { - pole[i][j][0] = '.'; - } - } - - pole[1][1][0] = 'T'; - - for (int i = 0; i < 25; i++) - { - pole[i+1][i+1][0] = 'B'; - } - updatePola(); - - - //---------start---------// - bool traktorDziala = true; - - char akcja; - - do - { - akcja = _getch(); - if (akcja == 'w' || akcja == 's' || akcja == 'a' || akcja == 'd') - { - Move(akcja); - } - if (akcja == '0') - { - traktorDziala = false; - } - } while (traktorDziala); - //---------end---------// - - return 0; -} +#include +#include +#include +#include +#include + +using namespace std; + +char pole[27][27][2]; +int pozycjaTraktoraX = 1, pozycjaTraktoraY = 1; + +void color(string foregroundColor,string backgroundColor) +{ + HANDLE hOut; + hOut = GetStdHandle(STD_OUTPUT_HANDLE); + int foregroundCode = 15; + if (foregroundColor == "black") + foregroundCode = 0; + if (foregroundColor == "dark_blue") + foregroundCode = 1; + if (foregroundColor == "green") + foregroundCode = 2; + if (foregroundColor == "cyan") + foregroundCode = 3; + if (foregroundColor == "dark_red") + foregroundCode = 4; + if (foregroundColor == "purple") + foregroundCode = 5; + if (foregroundColor == "dark_yellow") + foregroundCode = 6; + if (foregroundColor == "light_gray") + foregroundCode = 7; + if (foregroundColor == "gray") + foregroundCode = 8; + if (foregroundColor == "blue") + foregroundCode = 9; + if (foregroundColor == "lime") + foregroundCode = 10; + if (foregroundColor == "light_blue") + foregroundCode = 11; + if (foregroundColor == "red") + foregroundCode = 12; + if (foregroundColor == "magenta") + foregroundCode = 13; + if (foregroundColor == "yellow") + foregroundCode = 14; + if (foregroundColor == "white") + foregroundCode = 15; + + int backgroundCode = 0; + if (backgroundColor == "black") + backgroundCode = 0; + if (backgroundColor == "dark_blue") + backgroundCode = 1; + if (backgroundColor == "green") + backgroundCode = 2; + if (backgroundColor == "cyan") + backgroundCode = 3; + if (backgroundColor == "dark_red") + backgroundCode = 4; + if (backgroundColor == "purple") + backgroundCode = 5; + if (backgroundColor == "dark_yellow") + backgroundCode = 6; + if (backgroundColor == "light_gray") + backgroundCode = 7; + if (backgroundColor == "gray") + backgroundCode = 8; + if (backgroundColor == "blue") + backgroundCode = 9; + if (backgroundColor == "lime") + backgroundCode = 10; + if (backgroundColor == "light_blue") + backgroundCode = 11; + if (backgroundColor == "red") + backgroundCode = 12; + if (backgroundColor == "magenta") + backgroundCode = 13; + if (backgroundColor == "yellow") + backgroundCode = 14; + if (backgroundColor == "white") + backgroundCode = 15; + SetConsoleTextAttribute(hOut, foregroundCode + backgroundCode*16); +} + +void SetWindow(int Width, int Height) +{ + _COORD coord; + coord.X = Width; + coord.Y = Height; + + _SMALL_RECT Rect; + Rect.Top = 0; + Rect.Left = 0; + Rect.Bottom = Height - 1; + Rect.Right = Width - 1; + + HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE); // Get Handle + SetConsoleScreenBufferSize(Handle, coord); // Set Buffer Size + SetConsoleWindowInfo(Handle, TRUE, &Rect); // Set Window Size +} + +void updatePola() +{ + system("cls"); + for (int i = 0; i < 27; i++) + { + for (int j = 0; j < 27; j++) + { + char item = pole[i][j][0]; + switch (item) + { + case 'B': + { + color("purple", "dark_yellow"); + }break; + case 'T': + { + color("red", "dark_yellow"); + }break; + case '.': + { + color("yellow", "dark_yellow"); + }break; + case '#': + { + color("light_gray", "gray"); + }break; + } + cout << pole[i][j][0]; + + } + cout << endl; + color("white", "black"); + } +} + +void Move(char kierunek) +{ + switch (kierunek) + { + //góra-(w) + case 'w': + { + if (pole[pozycjaTraktoraX - 1][pozycjaTraktoraY][0] != '#') + { + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; + pozycjaTraktoraX--; + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; + + } + updatePola(); + }break; + //dó³-(s) + case 's': + { + if (pole[pozycjaTraktoraX + 1][pozycjaTraktoraY][0] != '#') + { + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; + pozycjaTraktoraX++; + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; + + } + updatePola(); + }break; + //lewo-(a) + case 'a': + { + if (pole[pozycjaTraktoraX][pozycjaTraktoraY - 1][0] != '#') + { + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; + pozycjaTraktoraY--; + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; + + } + updatePola(); + }break; + //prawo-(d) + case 'd': + { + if (pole[pozycjaTraktoraX][pozycjaTraktoraY + 1][0] != '#') + { + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = '.'; + pozycjaTraktoraY++; + pole[pozycjaTraktoraX][pozycjaTraktoraY][0] = 'T'; + + } + updatePola(); + }break; + } +} + +int main() +{ + SetWindow(50, 30); + + //create pola// + for (int i = 0; i < 27; i++) + { + pole[i][0][0] = '#'; + pole[0][i][0] = '#'; + pole[26][i][0] = '#'; + pole[i][26][0] = '#'; + } + for (int i = 1; i < 26; i++) + { + for (int j = 1; j < 26; j++) + { + pole[i][j][0] = '.'; + } + } + + for (int i = 0; i < 25; i++) + { + pole[i+1][i+1][0] = 'B'; + } + + pole[1][1][0] = 'T'; + + updatePola(); + + + //---------start---------// + bool traktorDziala = true; + + char akcja; + + do + { + akcja = _getch(); + if (akcja == 'w' || akcja == 's' || akcja == 'a' || akcja == 'd') + { + Move(akcja); + } + if (akcja == '0') + { + traktorDziala = false; + } + } while (traktorDziala); + //---------end---------// + + return 0; +}