Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <cstdlib>
- #include <ctime>
- #include "NaudokSitaDar.h"
- const int B_AUKSTIS = 11;
- const int B_PLOTIS = 11;
- const int LAIVU_KIEKIS = 5;
- int GRID[B_AUKSTIS][B_PLOTIS];
- int ishit = 0;
- int ZTLL = 0;
- const char vanduo = '~';
- const char hit = 'X';
- const char laivas = 'O';
- const char miss = '/';
- struct POINT
- {
- int X;
- int Y;
- };
- struct LAIVAS
- {
- std::string pavadinimas;
- int ilgis;
- POINT onGrid[5];
- bool hitFLAG[5];
- } ship[LAIVU_KIEKIS];
- struct ZAIDEJAS
- {
- char LENTA[B_AUKSTIS][B_PLOTIS];
- } zaidejas[3];
- enum DIRECTION { HORIZONTAL, VERTICAL };
- struct PLACESHIPS
- {
- DIRECTION direction;
- LAIVAS LaivoTipas;
- };
- bool gameRunning = false;
- PLACESHIPS ZaidejasStatoLaivus(int);
- PLACESHIPS PCStatoLaivus(int);
- class Bendra
- {
- public:
- Bendra() {}
- ~Bendra() {}
- bool GameOverCheck(int enemyPLAYER)
- {
- bool winner = true;
- //Loopas per priešininko lentą tikrinantis ar turi laivų.
- for (int w = 0; w < B_PLOTIS; ++w)
- {
- for (int h = 0; h < B_AUKSTIS; ++h)
- {
- if (zaidejas[enemyPLAYER].LENTA[w][h] == laivas)
- {
- winner = false;
- return winner;
- }
- }
- }
- return winner;
- }
- void LAUKAS(int thisPlayer)
- {
- std::cout << "Žaidėjo " << thisPlayer << "'Žaidimo lenta\n";
- std::cout << "----------------------\n";
- std::cout << " ";
- for (int p = 0; p <= B_PLOTIS; ++p)
- {
- if (p < 10)
- std::cout << p << " ";
- else if (p >= 10 && p != B_PLOTIS)
- std::cout << p << " ";
- if (p == B_PLOTIS)
- std::cout << "X";
- }
- std::cout << std::endl;
- for (int a = 0; a < B_AUKSTIS; ++a)
- {
- for (int p = 0; p < B_PLOTIS; ++p)
- {
- if (p == 0)
- std::cout << a << "\t";
- if (p < 10 && p == 0)
- std::cout << " ";
- if (gameRunning == false)
- std::cout << zaidejas[thisPlayer].LENTA[p][a] << " ";
- if (gameRunning == true && zaidejas[thisPlayer].LENTA[p][a] != laivas)
- {
- std::cout << zaidejas[thisPlayer].LENTA[p][a] << " ";
- }
- else if (gameRunning == true && zaidejas[thisPlayer].LENTA[p][a] == laivas)
- {
- std::cout << vanduo << " ";
- }
- if (p == B_PLOTIS - 1)
- std::cout << "\n";
- }
- }
- }
- virtual void NAUJAS_LAUKAS()
- {
- for (int zaid = 1; zaid < 3; ++zaid)
- {
- for (int p = 0; p < B_PLOTIS; ++p)
- {
- for (int a = 0; a < B_AUKSTIS; ++a)
- {
- zaidejas[zaid].LENTA[p][a] = vanduo;
- std::cout << zaidejas[zaid].LENTA[p][a];//užpildomas tuščias žaidėjo laukas
- }
- }
- }
- }
- virtual void NAUJI_LAIVAI()
- {
- ship[0].pavadinimas = "Pirmas";
- ship[0].ilgis = 1;
- ship[1].pavadinimas = "Antras";
- ship[1].ilgis = 2;
- ship[2].pavadinimas = "Trecias";
- ship[2].ilgis = 3;
- ship[3].pavadinimas = "Ketvirtas";
- ship[3].ilgis = 4;
- ship[4].pavadinimas = "Penktas";
- ship[4].ilgis = 5;
- }
- };
- class Zaidejas : public Bendra
- {
- private:
- public:
- Zaidejas() {}
- ~Zaidejas() {}
- bool UserInputAttack(int& x, int& y, int theplayer, int enemyPlayer)
- {
- std::cout << std::endl << "Zaidėjas " << theplayer << ", Įveskite kordinates norėdami užpulti x&y: ";
- bool goodInput = false;
- std::cin >> x >> y;
- if (zaidejas[enemyPlayer].LENTA[x][y] == miss)
- return goodInput;//
- if (zaidejas[enemyPlayer].LENTA[x][y] == hit)
- return goodInput;//
- if (x < 0 || x >= B_PLOTIS)
- return goodInput;//Tikrina ar įvestos koordinatės atitinka ribas ir ar jau ten nėra šovęs.
- if (y < 0 || y >= B_AUKSTIS)
- return goodInput;//
- goodInput = true;
- return goodInput;
- }
- void PRADZIA()
- {
- for (int zaid = 1; zaid < 3; ++zaid)
- {
- for (int thisShip = 0; thisShip < LAIVU_KIEKIS; ++thisShip)
- {
- system("cls");
- LAUKAS(zaid);
- std::cout << "\n";
- std::cout << "Instrukcija (Žaidėjas " << zaid << ")\n\n";
- std::cout << "Čia tau reikės sudelioti laivus. Kaip dėlioti laivus parodyta apačioje:\n";
- std::cout << "Į kurią pusę žiūrės laivas (0:Horizontaliai,1:Verticaliai), X (Viršuje) koordinatės, Y (kairėje) koordinatės\n";
- std::cout << "Pavyzdys: 0 7 2 Tai padės laivo pradžią į tašką X:7 Y:2 horizontaliai\n\n";
- std::cout << "Laivo pavadinimas: " << ship[thisShip].pavadinimas << " Kurio ilgis: " << ship[thisShip].ilgis << "\n";
- std::cout << "Kur norite statyti laivą? ";
- PLACESHIPS aLaivas;
- aLaivas.LaivoTipas.onGrid[0].X = -1;
- while (aLaivas.LaivoTipas.onGrid[0].X == -1)
- {
- aLaivas = ZaidejasStatoLaivus(zaid);//nueina į metodą kuriame tikrina laivo stovėjimo salygas.
- }
- aLaivas.LaivoTipas.ilgis = ship[thisShip].ilgis;
- aLaivas.LaivoTipas.pavadinimas = ship[thisShip].pavadinimas;
- zaidejas[zaid].LENTA[aLaivas.LaivoTipas.onGrid[0].X][aLaivas.LaivoTipas.onGrid[0].Y] = laivas;
- for (int i = 1; i < aLaivas.LaivoTipas.ilgis; ++i)//Laivų statymas
- {
- if (aLaivas.direction == HORIZONTAL)
- {
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X + 1;
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y;
- }
- if (aLaivas.direction == VERTICAL)
- {
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y + 1;
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X;
- }
- zaidejas[zaid].LENTA[aLaivas.LaivoTipas.onGrid[i].X][aLaivas.LaivoTipas.onGrid[i].Y] = laivas;
- }
- }//Laivu loopas
- ZTLL = 0;//Keičia laivus statant žmogui, nusinulina, kai baigia statyti pirmas žaidėjas.
- }//zaidejo loopas
- }
- void GAMEON()
- {
- gameRunning = true;
- int thisPlayer = 1;
- do
- {
- //rodome abu laukus todėl, kad laivai nėra rodomi ir gali tiesiog matyti vienas kito laukus visą laiką.
- int enemyPlayer;
- if (thisPlayer == 1)
- enemyPlayer = 2;
- if (thisPlayer == 2)
- enemyPlayer = 1;
- system("cls");
- LAUKAS(1);
- LAUKAS(2);
- //Gauname koordinates iš žaidėju
- bool goodInput = false;
- int x, y;
- while (goodInput == false)
- {
- goodInput = UserInputAttack(x, y, thisPlayer, enemyPlayer);
- }
- //Tikriname ar yra laivas ir jei taip tai parodome, kad pataikė, o jei nėra, parodome kad nepataikė
- if (zaidejas[enemyPlayer].LENTA[x][y] == laivas)
- {
- zaidejas[enemyPlayer].LENTA[x][y] = hit;
- ishit = 1;
- }
- if (zaidejas[enemyPlayer].LENTA[x][y] == vanduo)
- {
- zaidejas[enemyPlayer].LENTA[x][y] = miss;
- ishit = 0;
- }
- //Tikriname ar žaidimo niekas nelaimėjo
- int aWin = GameOverCheck(enemyPlayer);
- if (aWin != 0)
- {
- gameRunning = false;
- break;
- }
- //TIkriname ar žaidėjas pataikė, jei ne, tada keičiasi ėjimai
- thisPlayer = (thisPlayer == 1 && ishit != 1) ? thisPlayer : enemyPlayer;
- } while (gameRunning);
- system("cls");
- std::cout << "\n\n Sveikinimai!!! Žaidėjas " << thisPlayer << " LAIMĖJO ŽAIDIMĄ!\n\n\n\n";
- }
- };
- class Kompiuteris : public Zaidejas //kompiuterio stuff
- {
- private:
- int hx, hy, sy, sx;
- public:
- Kompiuteris() : hx(0), hy(0), sx(0), sy(0) {}
- Kompiuteris(int) : hx(0), hy(0), sx(0), sy(0) {}
- Kompiuteris(int, int) : hx(0), hy(0), sx(0), sy(0) {}
- ~Kompiuteris() {}
- void pcpradzia()
- {
- for (int thisShip = 0; thisShip < LAIVU_KIEKIS; ++thisShip)
- {
- system("cls");
- LAUKAS(2);
- PLACESHIPS aLaivas;
- aLaivas.LaivoTipas.onGrid[0].X = -1;
- while (aLaivas.LaivoTipas.onGrid[0].X == -1)
- {
- aLaivas = PCStatoLaivus(2);//kompiuteris stato random laivus
- }
- aLaivas.LaivoTipas.ilgis = ship[thisShip].ilgis;
- aLaivas.LaivoTipas.pavadinimas = ship[thisShip].pavadinimas;
- zaidejas[2].LENTA[aLaivas.LaivoTipas.onGrid[0].X][aLaivas.LaivoTipas.onGrid[0].Y] = laivas;
- for (int i = 1; i < aLaivas.LaivoTipas.ilgis; ++i)
- {
- if (aLaivas.direction == HORIZONTAL)
- {
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X + 1;
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y;
- }
- if (aLaivas.direction == VERTICAL)
- {
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y + 1;
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X;
- }
- zaidejas[2].LENTA[aLaivas.LaivoTipas.onGrid[i].X][aLaivas.LaivoTipas.onGrid[i].Y] = laivas;
- }
- }
- ZTLL = 0;
- }
- void vspcPRADZIA() //žaidėjas stato vs pc laivus
- {
- for (int thisShip = 0; thisShip < LAIVU_KIEKIS; ++thisShip)
- {
- system("cls");
- LAUKAS(1);
- std::cout << "\n";
- std::cout << "Tavo instrukcija\n\n";
- std::cout << "Čia tau reikės sudelioti laivus. Kaip dėlioti laivus parodyta apačioje:\n";
- std::cout << "Į kurią pusę žiūrės laivas (0:Horizontaliai,1:Verticaliai), X (Viršuje) koordinatės, Y (kairėje) koordinatės\n";
- std::cout << "Pavyzdys: 0 7 2 Tai padės laivo pradžią į tašką X:7 Y:2 horizontaliai\n\n";
- std::cout << "Laivo pavadinimas: " << ship[thisShip].pavadinimas << " Kurio ilgis: " << ship[thisShip].ilgis << "\n";
- std::cout << "Kur norite statyti laivą? ";
- PLACESHIPS aLaivas;
- aLaivas.LaivoTipas.onGrid[0].X = -1;
- while (aLaivas.LaivoTipas.onGrid[0].X == -1)
- {
- aLaivas = ZaidejasStatoLaivus(1);//žaidėjas stato laivus
- }
- aLaivas.LaivoTipas.ilgis = ship[thisShip].ilgis;
- aLaivas.LaivoTipas.pavadinimas = ship[thisShip].pavadinimas;
- zaidejas[1].LENTA[aLaivas.LaivoTipas.onGrid[0].X][aLaivas.LaivoTipas.onGrid[0].Y] = laivas;
- for (int i = 1; i < aLaivas.LaivoTipas.ilgis; ++i)
- {
- if (aLaivas.direction == HORIZONTAL)
- {
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X + 1;
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y;
- }
- if (aLaivas.direction == VERTICAL)
- {
- aLaivas.LaivoTipas.onGrid[i].Y = aLaivas.LaivoTipas.onGrid[i - 1].Y + 1;
- aLaivas.LaivoTipas.onGrid[i].X = aLaivas.LaivoTipas.onGrid[i - 1].X;
- }
- zaidejas[1].LENTA[aLaivas.LaivoTipas.onGrid[i].X][aLaivas.LaivoTipas.onGrid[i].Y] = laivas;
- }
- }//Laivu loopas
- ZTLL = 0;
- }
- void pcGAMEON()
- {
- gameRunning = true;
- int thisPlayer = 1;
- do
- {
- //Rodome abi lentas, kad matytu kur šaudo kompiuteris ir kur šaudo jis pats.
- //Laivai nėra rodomi.
- int enemyPlayer;
- if (thisPlayer == 1)
- enemyPlayer = 2;
- if (thisPlayer == 2)
- enemyPlayer = 1;
- system("cls");
- LAUKAS(thisPlayer);
- LAUKAS(enemyPlayer);
- int x, y;
- //Priklauso kas atakuoja, iš ten ir ims Input'a
- if (thisPlayer == 1)//žaidėjas
- {
- bool goodInput = false;
- while (goodInput == false)
- {
- goodInput = UserInputAttack(x, y, thisPlayer, enemyPlayer);//Jei žaidėjas, tai jis pats turės įrašyti input'a
- }
- //tikrina ar pataikė ar ne
- if (zaidejas[enemyPlayer].LENTA[x][y] == laivas)
- {
- zaidejas[enemyPlayer].LENTA[x][y] = hit;
- ishit = 1;
- }
- if (zaidejas[enemyPlayer].LENTA[x][y] == vanduo)
- {
- zaidejas[enemyPlayer].LENTA[x][y] = miss;
- ishit = 0;
- }
- }
- if (thisPlayer == 2)//čia kompiuteris
- {
- bool goodInput = false;
- while (goodInput == false)
- {
- goodInput = PcInputAttack(hx, hy, thisPlayer, enemyPlayer);//Kompiuteris automatiškai šaudo
- }
- //tikrina ar pataikė ar ne
- if (zaidejas[enemyPlayer].LENTA[hx][hy] == laivas)
- {
- zaidejas[enemyPlayer].LENTA[hx][hy] = hit;
- ishit = 1;
- }
- if (zaidejas[enemyPlayer].LENTA[hx][hy] == vanduo)
- {
- zaidejas[enemyPlayer].LENTA[hx][hy] = miss;
- ishit = 0;
- }
- }
- //tikrina ar žaidimas nepasibaigė
- int aWin = GameOverCheck(enemyPlayer);
- if (aWin != 0)
- {
- gameRunning = false;
- break;
- }
- //Alternatyva tarp žaidėjų
- thisPlayer = (ishit == 1) ? thisPlayer : enemyPlayer;
- } while (gameRunning);
- system("cls");
- if (thisPlayer == 1)
- std::cout << "\n\nSVEIKINIMAI !!! JŪS ĮVEIKĖTE KOMPIUTERĮ!\n\n\n\n";
- else
- std::cout << "Dėje jūs pralaimėjote, o kompiuteris laimėjo žaidimą!" << std::endl;
- }
- bool PcInputAttack(int& hx, int& hy, int theplayer, int enemyPlayer)
- {
- int bandymas = 0;
- int px = sx - 1;
- int py = sy - 1;
- if (sx == 0)
- px = 0;
- if (sy == 0)
- py = 0;
- for (int i = py; i <= py + 2; i++)//Tikrina ar aplink šautą tašką yra laivų
- {
- for (int j = px; j <= px + 2; j++)
- {
- if (zaidejas[enemyPlayer].LENTA[j][i] == laivas)
- {
- bandymas++;
- }
- }
- }
- if (zaidejas[enemyPlayer].LENTA[hx][hy] == hit) //Jei pataikė, žiūri kur yra kitas laivas
- {
- bool goodInput = false;
- int px = hx - 1;
- int py = hy - 1;
- if (hx == 0)
- px = 0;
- if (hy == 0)
- py = 0;
- for (int i = py; i <= py + 2; i++)
- {
- for (int j = px; j <= px + 2; j++)
- {
- if (zaidejas[enemyPlayer].LENTA[j][i] == laivas)
- {
- hx = j;
- hy = i;
- goodInput = true;
- return goodInput;
- break;
- }
- }
- }
- hx = rand() % B_PLOTIS;
- hy = rand() % B_AUKSTIS;
- }
- else if (zaidejas[enemyPlayer].LENTA[sx][sy] == hit && bandymas != 0)// jei buvo pataikyta į laivą ir dar yra aplinkui laivų, šaus į tą laivą.
- {
- bool goodInput = false;
- int px = sx - 1;
- int py = sy - 1;
- if (sx == 0)
- px = 0;
- if (sy == 0)
- py = 0;
- for (int i = py; i <= py + 2; i++)
- {
- for (int j = px; j <= px + 2; j++)
- {
- if (zaidejas[enemyPlayer].LENTA[j][i] == laivas)
- {
- hx = j;
- hy = i;
- goodInput = true;
- return goodInput;
- break;
- }
- }
- }
- hx = rand() % B_PLOTIS;
- hy = rand() % B_AUKSTIS;
- }
- else//Jei nė viena salyga netinka, sugalvos random koordinates
- {
- bool goodInput = false;
- hx = rand() % B_PLOTIS;
- hy = rand() % B_AUKSTIS;
- if (zaidejas[enemyPlayer].LENTA[hx][hy] == miss && zaidejas[enemyPlayer].LENTA[hx][hy] == hit)
- return goodInput;
- if (hx < 0 || hx >= B_PLOTIS)
- return goodInput;
- if (hy < 0 || hy >= B_AUKSTIS)
- return goodInput;
- if (zaidejas[enemyPlayer].LENTA[hx][hy] == laivas)
- {
- sx = hx;
- sy = hy;
- }
- goodInput = true;
- return goodInput;
- }
- }
- };
- int main()
- {
- srand( time( NULL ) );
- Zaidejas Z;
- Kompiuteris PC;
- int a;
- std::cout << "Prieš ką norite žaisti?" << std::endl;
- std::cout << "Spauskite 1 norėdami žaisti žaidėjas prieš žaidėją." << std::endl;
- std::cout << "Spauskite 2 norėdami žaisti prieš kompiuterį." << std::endl;
- std::cin >> a;
- if (a == 1)
- {
- Z.NAUJI_LAIVAI();
- Z.NAUJAS_LAUKAS();
- Z.PRADZIA();
- Z.GAMEON();
- }
- else
- {
- PC.NAUJI_LAIVAI();
- PC.NAUJAS_LAUKAS();
- PC.vspcPRADZIA();
- PC.pcpradzia();
- PC.pcGAMEON();
- }
- }
- PLACESHIPS ZaidejasStatoLaivus( int zaid )
- {
- int d, x, y;
- int laikx, laiky, yraLaivu = 0;
- yraLaivu = 0;
- PLACESHIPS tmp;
- tmp.LaivoTipas.onGrid[0].X = -1;
- std::cin >> d >> x >> y;
- if (d != 0 && d != 1)
- {
- std::cout << "Įvedėte neteisingą -d- reikšmę" << std::endl;
- return tmp;
- }
- if (d == 0)
- {
- int prax = x - 1;
- int pray = y - 1;
- int galasx = ship[ZTLL].ilgis + 2 + prax;
- int galasy = pray + 3;
- if (x - 1 < 0)
- prax = 0;
- if (y - 1 < 0)
- pray = 0;
- if (galasy > B_AUKSTIS)
- galasy = B_AUKSTIS;
- if (galasx > B_PLOTIS)
- galasx = B_PLOTIS;
- for (int i = pray; i < galasy; i++)//tikrina ar yra laivų šalia
- {
- for (int j = prax; j < galasx; j++)
- {
- if (zaidejas[zaid].LENTA[j][i] == laivas)
- {
- yraLaivu++;
- }
- }
- }
- if (yraLaivu != 0)
- {
- std::cout << "Negalite čia statyti laivo, nes arti yra kitas laivas." << std::endl;
- return tmp;
- }
- if (x < 0 || x > B_PLOTIS - ship[ZTLL].ilgis)
- {
- std::cout << "Laivas išlenda X koordinatėje." << std::endl;
- return tmp;
- };
- if (y < 0 || y > B_AUKSTIS)
- {
- std::cout << "Laivas išlenda Y koordinatėje." << std::endl;
- return tmp;
- };
- }
- if (d == 1)
- {
- int prax = x - 1;
- int pray = y - 1;
- int galasy = ship[ZTLL].ilgis + 2 + pray;
- int galasx = prax + 3;
- if (x == 0)
- prax = 0;
- if (y == 0)
- pray = 0;
- if (galasy > B_AUKSTIS)
- galasy = B_AUKSTIS;
- if (galasx > B_PLOTIS)
- galasx = B_PLOTIS;
- for (int i = prax; i < galasx; i++)//tikrina artimus laivus
- {
- for (int j = pray; j < galasy; j++)
- {
- if (zaidejas[zaid].LENTA[i][j] == laivas)
- {
- yraLaivu++;
- }
- }
- }
- if (yraLaivu != 0)
- {
- std::cout << "Negalite čia statyti laivo, nes arti yra kitas laivas." << std::endl;
- return tmp;
- }
- if (x < 0 || x > B_PLOTIS)
- {
- std::cout << "Laivas išlenda X koordinatėje." << std::endl;
- return tmp;
- }
- if (y < 0 || y > B_AUKSTIS - ship[ZTLL].ilgis)
- {
- std::cout << "Laivas išlenda Y koordinatėje." << std::endl;
- return tmp;
- }
- }
- tmp.direction = (DIRECTION)d;
- tmp.LaivoTipas.onGrid[0].X = x;
- tmp.LaivoTipas.onGrid[0].Y = y;
- ZTLL++;
- return tmp;
- }
- PLACESHIPS PCStatoLaivus(int zaid)
- {
- int d, x, y;
- int laikx, laiky, yraLaivu = 0;
- d = rand() % 2;
- x = rand() % B_PLOTIS;
- y = rand() % B_AUKSTIS;
- yraLaivu = 0;
- PLACESHIPS tmp;
- tmp.LaivoTipas.onGrid[0].X = -1;
- if (d != 0 && d != 1)
- return tmp;
- if (d == 0)
- {
- int prax = x - 1;
- int pray = y - 1;
- int galasx = ship[ZTLL].ilgis + 2 + prax;
- int galasy = pray + 3;
- if (x - 1 < 0)
- prax = 0;
- if (y - 1 < 0)
- pray = 0;
- if (galasy > B_AUKSTIS)
- galasy = B_AUKSTIS;
- if (galasx > B_PLOTIS)
- galasx = B_PLOTIS;
- for (int i = pray; i < galasy; i++)
- {
- for (int j = prax; j < galasx; j++)
- {
- if (zaidejas[zaid].LENTA[j][i] == laivas)
- {
- yraLaivu++;
- }
- }
- }
- if (yraLaivu != 0)
- return tmp;
- if (x < 0 || x > B_PLOTIS - ship[ZTLL].ilgis)
- return tmp;
- if (y < 0 || y > B_AUKSTIS)
- return tmp;
- }
- if (d == 1)
- {
- int prax = x - 1;
- int pray = y - 1;
- int galasy = ship[ZTLL].ilgis + 2 + pray;
- int galasx = prax + 3;
- if (x - 1 < 0)
- prax = 0;
- if (y - 1 < 0)
- pray = 0;
- if (galasy > B_AUKSTIS)
- galasy = B_AUKSTIS;
- if (galasx > B_PLOTIS)
- galasx = B_PLOTIS;
- for (int i = prax; i < galasx; i++)
- {
- for (int j = pray; j < galasy; j++)
- {
- if (zaidejas[zaid].LENTA[i][j] == laivas)
- {
- yraLaivu++;
- }
- }
- }
- if (yraLaivu != 0)
- return tmp;
- if (x < 0 || x > B_PLOTIS)
- return tmp;
- if (y < 0 || y > B_AUKSTIS - ship[ZTLL].ilgis)
- return tmp;
- }
- tmp.direction = (DIRECTION)d;
- tmp.LaivoTipas.onGrid[0].X = x;
- tmp.LaivoTipas.onGrid[0].Y = y;
- ZTLL++;
- return tmp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement