jkhsjdhjs

C++ Schiffe Versenken

Nov 22nd, 2013
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 33.65 KB | None | 0 0
  1. // C++ Schiffe Versenken.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <conio.h>
  6. #include <iostream>
  7. #include <locale.h>
  8. #include <time.h>
  9. #include <windows.h>
  10. #include <vector>
  11. #include <shlobj.h>
  12. #include <fstream>
  13.  
  14. using namespace std;
  15.  
  16. #define SCHWARZ         0x0000
  17. #define DUNKELBLAU      0x0001
  18. #define DUNKELGRÜN     0x0002
  19. #define DUNKELTÜRKIS       0x0003
  20. #define DUNKELROT       0x0004
  21. #define LILA            0x0005
  22. #define GOLD            0x0006
  23. #define GRAU            0x0007
  24. #define DUNKELGRAU      0x0008
  25. #define BLAU            0x0009
  26. #define GRÜN           0x000a
  27. #define TÜRKIS         0x000b
  28. #define ROT         0x000c
  29. #define PINK            0x000d
  30. #define GELB            0x000e
  31. #define WEIß           0x000f
  32.  
  33. bool CheatMode = false, Speichern = false;
  34. int Schiffe[4][2], SchiffeKI[4][2], Schüsse[136][2], SchüsseKI[136][2], Treffer[4][2], TrefferKI[4][2], SchiffeKInichtgetroffen[4][2], SchiffeKIgetroffen[4][2];
  35. int counter, Spalten = 17, Zeilen = 8;
  36. TCHAR appdata[MAX_PATH];
  37.  
  38. vector<int> Koordinatenverarbeitung() {
  39.      vector<int> Rückgabewert;
  40.      Rückgabewert.push_back(1);
  41.      Rückgabewert.push_back(2);
  42.      return Rückgabewert;
  43. }
  44.  
  45. struct Pair {
  46.     int Eins, Zwei;
  47. };
  48.  
  49. void gotoxy (int x, int y) {
  50.     HANDLE hConsole;
  51.     COORD cursorLoc;
  52.     cout.flush();
  53.     cursorLoc.X = x;
  54.     cursorLoc.Y = y;
  55.     hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  56.     SetConsoleCursorPosition(hConsole, cursorLoc);
  57. }
  58.  
  59. void Farbe(WORD farbe) {
  60.     SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), farbe);
  61. }
  62.  
  63. void Legende(int x) {
  64.     gotoxy(10, 64);
  65.     Farbe(WEIß);
  66.     cout<<"Legende:";
  67.     if (x == 1) {
  68.         gotoxy(10, 65);
  69.         Farbe(GELB);
  70.         cout<<"X";
  71.         Farbe(WEIß);
  72.         cout<<" = Deine Schiffe";
  73.     }
  74.     if (x == 2) {
  75.         gotoxy(10, 65);
  76.         Farbe(BLAU);
  77.         cout<<"X";
  78.         Farbe(WEIß);
  79.         cout<<" = Wasser-Treffer";
  80.         gotoxy(10, 66);
  81.         Farbe(DUNKELROT);
  82.         cout<<"X";
  83.         Farbe(WEIß);
  84.         cout<<" = Schiff-Treffer";
  85.     }
  86.     if (x == 3) {
  87.         gotoxy(10, 65);
  88.         Farbe(GELB);
  89.         cout<<"X";
  90.         Farbe(WEIß);
  91.         cout<<" = Deine Schiffe";
  92.         gotoxy(10, 66);
  93.         Farbe(BLAU);
  94.         cout<<"X";
  95.         Farbe(WEIß);
  96.         cout<<" = feindliche Wasser-Treffer";
  97.         gotoxy(10, 67);
  98.         Farbe(DUNKELROT);
  99.         cout<<"X";
  100.         Farbe(WEIß);
  101.         cout<<" = feindliche Schiff-Treffer";
  102.     }
  103.     if (x == 4) {
  104.         gotoxy(10, 67);
  105.         Farbe(TÜRKIS);
  106.         cout<<"X";
  107.         Farbe(WEIß);
  108.         cout<<" = feindliche Schiffe";
  109.     }
  110. }
  111.  
  112. Pair Koordinatenverarbeitung(int x, int y) {
  113.     int x1, y1;
  114.     Pair Rückgabewert;
  115.     switch(x) {
  116.         case 'A':
  117.             x1 = 20;
  118.             break;
  119.         case 'a':
  120.             x1 = 20;
  121.             break;
  122.         case 'B':
  123.             x1 = 30;
  124.             break;
  125.         case 'b':
  126.             x1 = 30;
  127.             break;
  128.         case 'C':
  129.             x1 = 40;
  130.             break;
  131.         case 'c':
  132.             x1 = 40;
  133.             break;
  134.         case 'D':
  135.             x1 = 50;
  136.             break;
  137.         case 'd':
  138.             x1 = 50;
  139.             break;
  140.         case 'E':
  141.             x1 = 60;
  142.             break;
  143.         case 'e':
  144.             x1 = 60;
  145.             break;
  146.         case 'F':
  147.             x1 = 70;
  148.             break;
  149.         case 'f':
  150.             x1 = 70;
  151.             break;
  152.         case 'G':
  153.             x1 = 80;
  154.             break;
  155.         case 'g':
  156.             x1 = 80;
  157.             break;
  158.         case 'H':
  159.             x1 = 90;
  160.             break;
  161.         case 'h':
  162.             x1 = 90;
  163.             break;
  164.         case 'I':
  165.             x1 = 100;
  166.             break;
  167.         case 'i':
  168.             x1 = 100;
  169.             break;
  170.         case 'J':
  171.             x1 = 110;
  172.             break;
  173.         case 'j':
  174.             x1 = 110;
  175.             break;
  176.         case 'K':
  177.             x1 = 120;
  178.             break;
  179.         case 'k':
  180.             x1 = 120;
  181.             break;
  182.         case 'L':
  183.             x1 = 130;
  184.             break;
  185.         case 'l':
  186.             x1 = 130;
  187.             break;
  188.         case 'M':
  189.             x1 = 140;
  190.             break;
  191.         case 'm':
  192.             x1 = 140;
  193.             break;
  194.         case 'N':
  195.             x1 = 150;
  196.             break;
  197.         case 'n':
  198.             x1 = 150;
  199.             break;
  200.         case 'O':
  201.             x1 = 160;
  202.             break;
  203.         case 'o':
  204.             x1 = 160;
  205.             break;
  206.         case 'P':
  207.             x1 = 170;
  208.             break;
  209.         case 'p':
  210.             x1 = 170;
  211.             break;
  212.         case 'Q':
  213.             x1 = 180;
  214.             break;
  215.         case 'q':
  216.             x1 = 180;
  217.             break;
  218.         default:
  219.             x1 = 0;
  220.             break;
  221.     }
  222.  
  223.     switch(y) {
  224.         case '1':
  225.             y1 = 10;
  226.             break;
  227.         case '2':
  228.             y1 = 16;
  229.             break;
  230.         case '3':
  231.             y1 = 22;
  232.             break;
  233.         case '4':
  234.             y1 = 28;
  235.             break;
  236.         case '5':
  237.             y1 = 34;
  238.             break;
  239.         case '6':
  240.             y1 = 40;
  241.             break;
  242.         case '7':
  243.             y1 = 46;
  244.             break;
  245.         case '8':
  246.             y1 = 52;
  247.             break;
  248.         default:
  249.             y1 = 0;
  250.             break;
  251.     }
  252.     Rückgabewert.Eins = x1;
  253.     Rückgabewert.Zwei = y1;
  254.     return Rückgabewert;
  255. }
  256.  
  257. void ZeileLöschen(int y) {
  258.     for (int i = 0; i <= 197; i++) {
  259.         gotoxy(i, y);
  260.         cout<<" ";
  261.     }
  262. }
  263.  
  264. void SchiffePlatzieren(int x, int y, WORD farbe) {
  265.     Farbe(farbe);
  266.     gotoxy(x - 4, y - 2);
  267.     cout<<"XXXXXXXXX";
  268.     gotoxy(x - 4, y - 1);
  269.     cout<<"XXXXXXXXX";
  270.     gotoxy(x - 4, y);
  271.     cout<<"XXXXXXXXX";
  272.     gotoxy(x - 4, y + 1);
  273.     cout<<"XXXXXXXXX";
  274.     gotoxy(x - 4, y + 2);
  275.     cout<<"XXXXXXXXX";
  276. }
  277.  
  278. void Feld(int x) {
  279.     int i, k = 1;
  280.     char buchstabe = 'A';
  281.     if (x == 1) {
  282.         gotoxy(94, 0);
  283.         Farbe(ROT);
  284.         cout<<"DEIN FELD";
  285.     }
  286.     else {
  287.         gotoxy(90, 0);
  288.         Farbe(ROT);
  289.         cout<<"GEGNERISCHES FELD";
  290.     }
  291.     Farbe(TÜRKIS);
  292.     for (i = 20; i <= Spalten * 10 + 10; i+=10) {
  293.         gotoxy(i, 4);
  294.         cout<<buchstabe;
  295.         buchstabe++;
  296.     }
  297.     for (i = 10; i <= Zeilen * 6 + 4; i+=6) {
  298.         gotoxy(10, i);
  299.         cout<<k;
  300.         k++;
  301.     }
  302.     Farbe(WEIß);
  303.     for (i = 15; i <= Spalten * 10 + 15; i+=10) {
  304.         for (k = 4; k <= Zeilen * 6 + 7; k++) {
  305.             gotoxy(i, k);
  306.             cout<<"#";
  307.         }
  308.     }
  309.     for (i = 7; i <= Zeilen * 6 + 7; i+=6) {
  310.         for (k = 10; k <= Spalten * 10 + 15; k++) {
  311.             gotoxy(k, i);
  312.             cout<<"#";
  313.         }
  314.     }
  315.     if (x == 1 && counter == 0) {
  316.         Legende(1);
  317.     }
  318.     else if (x == 2) {
  319.         Legende(2);
  320.     }
  321.     else {
  322.         Legende(3);
  323.     }
  324.     if (CheatMode == true && counter != 0 && x == 2) {
  325.         Legende(4);
  326.     }
  327.     if (x == 1) {
  328.         for (i = 0; i <= 3; i++) {
  329.             if (Schiffe[i][0] != 0) {
  330.                 SchiffePlatzieren(Schiffe[i][0], Schiffe[i][1], GELB);
  331.             }
  332.         }
  333.         for (i = 0; i <= Spalten * Zeilen - 1; i++) {
  334.             if (SchüsseKI[i][0] != 0) {
  335.                 SchiffePlatzieren(SchüsseKI[i][0], SchüsseKI[i][1], BLAU);
  336.             }
  337.         }
  338.         for (i = 0; i <= 3; i++) {
  339.             if (TrefferKI[i][0] != 0) {
  340.                 SchiffePlatzieren(TrefferKI[i][0], TrefferKI[i][1], DUNKELROT);
  341.             }
  342.         }
  343.     }
  344.     else if (x == 2) {
  345.         if (CheatMode == true) {
  346.             for (i = 0; i <= 3; i++) {
  347.                 SchiffePlatzieren(SchiffeKI[i][0], SchiffeKI[i][1], TÜRKIS);
  348.             }
  349.         }
  350.         for (i = 0; i <= Spalten * Zeilen - 1; i++) {
  351.             if (Schüsse[i][0] != 0) {
  352.                 SchiffePlatzieren(Schüsse[i][0], Schüsse[i][1], BLAU);
  353.             }
  354.         }
  355.         for (i = 0; i <= 3; i++) {
  356.             if (Treffer[i][0] != 0) {
  357.                 SchiffePlatzieren(Treffer[i][0], Treffer[i][1], DUNKELROT);
  358.             }
  359.         }
  360.     }
  361.     counter++;
  362. }
  363.  
  364. int getKey()
  365. {
  366.    int result=_getch();
  367.    if(result==0)
  368.       result=256+_getch();
  369.    else if(result==224)
  370.       result=512+_getch();
  371.    return result;
  372. }
  373.  
  374. void CursorSichtbarkeit(int i) {
  375.     CONSOLE_CURSOR_INFO info;
  376.     HANDLE  out;
  377.    
  378.     info.bVisible = i;
  379.     info.dwSize   = 1;
  380.    
  381.     out = GetStdHandle(STD_OUTPUT_HANDLE);
  382.     SetConsoleCursorInfo( out,  &info );
  383. }
  384.  
  385. int Hauptmenü(int i) {
  386.     int Auswahl;
  387.     system("cls");
  388.     CursorSichtbarkeit(0);
  389.     Farbe(GRÜN);
  390.     gotoxy(10, 5);
  391.     cout<<"   ____                           ____            ___              __    __                ____     ___                                              ___";
  392.     gotoxy(10, 6);
  393.     cout<<"  6MMMMb/                        6MMMMb\\          `MM       68b   69MM  69MM               `Mb(     )d'                                              `MM";
  394.     gotoxy(10, 7);
  395.     cout<<" 8P    YM                       6M'    `           MM       Y89  6M' ` 6M' `                YM.     ,P                                                MM";
  396.     gotoxy(10, 8);
  397.     cout<<"6M      Y                       MM         ____    MM  __   ___ _MM__ _MM__   ____          `Mb     d'    ____   ___  __   ____     ____   ___  __    MM   __    ____   ___  __";
  398.     gotoxy(10, 9);
  399.     cout<<"MM           M       M          YM.       6MMMMb.  MM 6MMb  `MM MMMMM MMMMM  6MMMMb          YM.   ,P    6MMMMb  `MM 6MM  6MMMMb\\  6MMMMb  `MM 6MMb   MM   d'   6MMMMb  `MM 6MMb";
  400.     gotoxy(10, 10);
  401.     cout<<"MM           M       M           YMMMMb  6M'   Mb  MMM9 `Mb  MM  MM    MM   6M'  `Mb         `Mb   d'   6M'  `Mb  MM69 \" MM'    ` 6M'  `Mb  MMM9 `Mb  MM  d'   6M'  `Mb  MMM9 `Mb";
  402.     gotoxy(10, 11);
  403.     cout<<"MM           M       M               `Mb MM    `'  MM'   MM  MM  MM    MM   MM    MM          YM. ,P    MM    MM  MM'    YM.      MM    MM  MM'   MM  MM d'    MM    MM  MM'   MM";
  404.     gotoxy(10, 12);
  405.     cout<<"MM        MMMMMMM MMMMMMM             MM MM        MM    MM  MM  MM    MM   MMMMMMMM          `Mb d'    MMMMMMMM  MM      YMMMMb  MMMMMMMM  MM    MM  MMdM.    MMMMMMMM  MM    MM";
  406.     gotoxy(10, 13);
  407.     cout<<"YM      6    M       M                MM MM        MM    MM  MM  MM    MM   MM                 YM,P     MM        MM          `Mb MM        MM    MM  MMPYM.   MM        MM    MM";
  408.     gotoxy(10, 14);
  409.     cout<<" 8b    d9    M       M          L    ,M9 YM.   d9  MM    MM  MM  MM    MM   YM    d9           `MM'     YM    d9  MM     L    ,MM YM    d9  MM    MM  MM  YM.  YM    d9  MM    MM";
  410.     gotoxy(10, 15);
  411.     cout<<"  YMMMM9     M       M          MYMMMM9   YMMMM9  _MM_  _MM__MM__MM_  _MM_   YMMMM9             YP       YMMMM9  _MM_    MYMMMM9   YMMMM9  _MM_  _MM__MM_  YM._ YMMMM9  _MM_  _MM_";
  412.     Farbe(DUNKELROT);
  413.     gotoxy(94, 37);
  414.     cout<<"Hauptmenü";
  415.     Farbe(DUNKELGRÜN);
  416.     gotoxy(80, 40);
  417.     cout<<"[ ] Spiel gegen Computer";
  418.     gotoxy(80, 41);
  419.     Farbe(DUNKELGRAU);
  420.     cout<<"[ ] Spieler gegen Spieler (noch nicht implementiert)";
  421.     gotoxy(80, 42);
  422.     Farbe(DUNKELGRÜN);
  423.     cout<<"[ ] Optionen";
  424.     gotoxy(80, 43);
  425.     cout<<"[ ] Info";
  426.     gotoxy(80, 44);
  427.     cout<<"[ ] Changelog";
  428.     gotoxy(80, 45);
  429.     cout<<"[ ] Beenden";
  430.     gotoxy(81, 40 + i);
  431.     cout<<"x";
  432.     do {
  433.         Auswahl = getKey();
  434.         gotoxy(81, i + 40);
  435.         cout<<" ";
  436.         if (Auswahl == 592) {
  437.             if (i == 2 || i == 3 || i == 4) {
  438.                 i++;
  439.             }
  440.             else if (i == 0) {
  441.                 i+=2;
  442.             }
  443.         }
  444.         else if (Auswahl == 584) {
  445.             if (i == 3 || i == 4 || i == 5) {
  446.                 i--;
  447.             }
  448.             else if (i == 2) {
  449.                 i-=2;
  450.             }
  451.         }
  452.         gotoxy(81, i + 40);
  453.         cout<<"x";
  454.     } while (Auswahl != 13);
  455.     return i;
  456. }
  457.  
  458. void Info() {
  459.     system("cls");
  460.     Farbe(GRÜN);
  461.     gotoxy(79, 5);
  462.     cout<<"  .S   .S_sSSs      sSSs    sSSs_sSSs";
  463.     gotoxy(79, 6);
  464.     cout<<".SS  .SS~YS%%b    d%%SP   d%%SP~YS%%b";
  465.     gotoxy(79, 7);
  466.     cout<<"S%S  S%S   `S%b  d%S'    d%S'     `S%b";
  467.     gotoxy(79, 8);
  468.     cout<<"S%S  S%S    S%S  S%S     S%S       S%S";
  469.     gotoxy(79, 9);
  470.     cout<<"S&S  S%S    S&S  S&S     S&S       S&S";
  471.     gotoxy(79, 10);
  472.     cout<<"S&S  S&S    S&S  S&S_Ss  S&S       S&S";
  473.     gotoxy(79, 11);
  474.     cout<<"S&S  S&S    S&S  S&S~SP  S&S       S&S";
  475.     gotoxy(79, 12);
  476.     cout<<"S&S  S&S    S&S  S&S     S&S       S&S";
  477.     gotoxy(79, 13);
  478.     cout<<"S*S  S*S    S*S  S*b     S*b       d*S";
  479.     gotoxy(79, 14);
  480.     cout<<"S*S  S*S    S*S  S*S     S*S.     .S*S";
  481.     gotoxy(79, 15);
  482.     cout<<"S*S  S*S    S*S  S*S      SSSbs_sdSSS";
  483.     gotoxy(79, 16);
  484.     cout<<"S*S  S*S    SSS  S*S       YSSP~YSSY";
  485.     gotoxy(79, 17);
  486.     cout<<"SP   SP          SP";
  487.     gotoxy(79, 18);
  488.     cout<<"Y    Y           Y";
  489.     Farbe(DUNKELGRÜN);
  490.     gotoxy(67, 40);
  491.     cout<<"Programmiert von Leon Möller";
  492.     gotoxy(67, 42);
  493.     cout<<"Danke an alle aus der BGY12 IV GK Muckel für die Bugmeldungen!";
  494.     gotoxy(67, 44);
  495.     cout<<"ASCII Schriftzüge von: http://www.kammerl.de/ascii/AsciiSignature.php";
  496.     gotoxy(67, 46);
  497.     cout<<"Version 1.3 | 21.11.2013 21:22";
  498.     gotoxy(65, 65);
  499.     Farbe(ROT);
  500.     cout<<"Drücken Sie eine beliebige Taste um zum Hauptmenü zurückzukehren...";
  501.     _getch();
  502. }
  503.  
  504. void Changelog() {
  505.     system("cls");
  506.     Farbe(GRÜN);
  507.     gotoxy(52, 5);
  508.     cout<<"  sSSs   .S    S.    .S_SSSs     .S_sSSs      sSSSSs    sSSs  S.        sSSs_sSSs      sSSSSs";
  509.     gotoxy(52, 6);
  510.     cout<<" d%%SP  .SS    SS.  .SS~SSSSS   .SS~YS%%b    d%%%%SP   d%%SP  SS.      d%%SP~YS%%b    d%%%%SP";
  511.     gotoxy(52, 7);
  512.     cout<<"d%S'    S%S    S%S  S%S   SSSS  S%S   `S%b  d%S'      d%S'    S%S     d%S'     `S%b  d%S'";
  513.     gotoxy(52, 8);
  514.     cout<<"S%S     S%S    S%S  S%S    S%S  S%S    S%S  S%S       S%S     S%S     S%S       S%S  S%S";
  515.     gotoxy(52, 9);
  516.     cout<<"S&S     S%S SSSS%S  S%S SSSS%S  S%S    S&S  S&S       S&S     S&S     S&S       S&S  S&S";
  517.     gotoxy(52, 10);
  518.     cout<<"S&S     S&S  SSS&S  S&S  SSS%S  S&S    S&S  S&S       S&S_Ss  S&S     S&S       S&S  S&S";
  519.     gotoxy(52, 11);
  520.     cout<<"S&S     S&S    S&S  S&S    S&S  S&S    S&S  S&S       S&S~SP  S&S     S&S       S&S  S&S";
  521.     gotoxy(52, 12);
  522.     cout<<"S&S     S&S    S&S  S&S    S&S  S&S    S&S  S&S sSSs  S&S     S&S     S&S       S&S  S&S sSSs";
  523.     gotoxy(52, 13);
  524.     cout<<"S*b     S*S    S*S  S*S    S&S  S*S    S*S  S*b `S%%  S*b     S*b     S*b       d*S  S*b `S%%";
  525.     gotoxy(52, 14);
  526.     cout<<"S*S.    S*S    S*S  S*S    S*S  S*S    S*S  S*S   S%  S*S.    S*S.    S*S.     .S*S  S*S   S%";
  527.     gotoxy(52, 15);
  528.     cout<<" SSSbs  S*S    S*S  S*S    S*S  S*S    S*S   SS_sSSS   SSSbs   SSSbs   SSSbs_sdSSS    SS_sSSS";
  529.     gotoxy(52, 16);
  530.     cout<<"  YSSP  SSS    S*S  SSS    S*S  S*S    SSS    Y~YSSY    YSSP    YSSP    YSSP~YSSY      Y~YSSY";
  531.     gotoxy(52, 17);
  532.     cout<<"               SP          SP   SP";
  533.     gotoxy(52, 18);
  534.     cout<<"               Y           Y    Y";
  535.     gotoxy(54, 53);
  536.     Farbe(DUNKELGRÜN);
  537.     cout<<"Version 1.0: - Erstveröffentlichung";
  538.     gotoxy(54, 48);
  539.     cout<<"Version 1.1: - Bugfix: Nach Beenden eines Spiels kein weiteres Spiel ohne Fehler oder Neustart möglich";
  540.     gotoxy(67, 49);
  541.     cout<<"- Changelog hinzugefügt";
  542.     gotoxy(67, 50);
  543.     cout<<"- Versionsnummer aus Titel entfernt";
  544.     gotoxy(67, 51);
  545.     cout<<"- Cursor bleibt an Punkt im Hauptmenü, wenn man z. B. auf Info wechselt, bleibt der Cursor auf Info im Hauptmenü";
  546.     gotoxy(54, 45);
  547.     cout<<"Version 1.2: - Bugfix: Meldung: \"Dort haben Sie bereits hingeschossen\", obwohl das Feld frei war";
  548.     gotoxy(67, 46);
  549.     cout<<"- Optionsmenü, in dem man die Feldgröße einstellen kann, hinzugefügt";
  550.     gotoxy(54, 40);
  551.     cout<<"Version 1.3: - Bugfix: keine Schiffe nach 2tem Spiel an der selbem Position wie im ersten Spiel platzierbar";
  552.     gotoxy(67, 41);
  553.     cout<<"- Cheat Mode ins Optionsmenü verschoben";
  554.     gotoxy(67, 42);
  555.     cout<<"- Changelog invers sortiert";
  556.     gotoxy(67, 43);
  557.     cout<<"- gegnerische Schiffspositionen werden angezeigt, wenn man das Spiel verloren hat und der Cheat Mode ausgeschaltet ist";
  558.     gotoxy(65, 65);
  559.     Farbe(ROT);
  560.     cout<<"Drücken Sie eine beliebige Taste um zum Hauptmenü zurückzukehren...";
  561.     _getch();
  562. }
  563.  
  564. void Optionen() {
  565.     int i = 0, Auswahl, UnterAuswahl, Temp0, Temp1;
  566.     system("cls");
  567.     Farbe(GRÜN);
  568.     gotoxy(54, 5);
  569.     cout<<"  sSSs_sSSs     .S_sSSs    sdSS_SSSSSSbs   .S    sSSs_sSSs     .S_sSSs      sSSs   .S_sSSs";
  570.     gotoxy(54, 6);
  571.     cout<<" d%%SP~YS%%b   .SS~YS%%b   YSSS~S%SSSSSP  .SS   d%%SP~YS%%b   .SS~YS%%b    d%%SP  .SS~YS%%b";
  572.     gotoxy(54, 7);
  573.     cout<<"d%S'     `S%b  S%S   `S%b       S%S       S%S  d%S'     `S%b  S%S   `S%b  d%S'    S%S   `S%b";
  574.     gotoxy(54, 8);
  575.     cout<<"S%S       S%S  S%S    S%S       S%S       S%S  S%S       S%S  S%S    S%S  S%S     S%S    S%S";
  576.     gotoxy(54, 9);
  577.     cout<<"S&S       S&S  S%S    d*S       S&S       S&S  S&S       S&S  S%S    S&S  S&S     S%S    S&S";
  578.     gotoxy(54, 10);
  579.     cout<<"S&S       S&S  S&S   .S*S       S&S       S&S  S&S       S&S  S&S    S&S  S&S_Ss  S&S    S&S";
  580.     gotoxy(54, 11);
  581.     cout<<"S&S       S&S  S&S_sdSSS        S&S       S&S  S&S       S&S  S&S    S&S  S&S~SP  S&S    S&S";
  582.     gotoxy(54, 12);
  583.     cout<<"S&S       S&S  S&S~YSSY         S&S       S&S  S&S       S&S  S&S    S&S  S&S     S&S    S&S";
  584.     gotoxy(54, 13);
  585.     cout<<"S*b       d*S  S*S              S*S       S*S  S*b       d*S  S*S    S*S  S*b     S*S    S*S";
  586.     gotoxy(54, 14);
  587.     cout<<"S*S.     .S*S  S*S              S*S       S*S  S*S.     .S*S  S*S    S*S  S*S.    S*S    S*S";
  588.     gotoxy(54, 15);
  589.     cout<<" SSSbs_sdSSS   S*S              S*S       S*S   SSSbs_sdSSS   S*S    S*S   SSSbs  S*S    S*S";
  590.     gotoxy(54, 16);
  591.     cout<<"  YSSP~YSSY    S*S              S*S       S*S    YSSP~YSSY    S*S    SSS    YSSP  S*S    SSS";
  592.     gotoxy(54, 17);
  593.     cout<<"               SP               SP        SP                  SP                  SP";
  594.     gotoxy(54, 18);
  595.     cout<<"               Y                Y         Y                   Y                   Y";
  596.     gotoxy(78, 35);
  597.     Farbe(DUNKELROT);
  598.     cout<<"Allgemein";
  599.     gotoxy(78, 39);
  600.     cout<<"Spielfeldgröße";
  601.     Farbe(DUNKELGRÜN);
  602.     gotoxy(80, 36);
  603.     cout<<"[x] Cheat Mode:";
  604.     gotoxy(104, 36);
  605.     if (CheatMode == true) {
  606.         cout<<"An";
  607.         Temp0 = 1;
  608.     }
  609.     else {
  610.         cout<<"Aus";
  611.         Temp0 = 0;
  612.     }
  613.     Farbe(DUNKELGRÜN);
  614.     gotoxy(80, 37);
  615.     cout<<"[ ] Optionen speichern:";
  616.     gotoxy(104, 37);
  617.     if (Speichern == true) {
  618.         cout<<"An";
  619.         Temp1 = 1;
  620.     }
  621.     else {
  622.         cout<<"Aus";
  623.         Temp1 = 0;
  624.     }
  625.     gotoxy(80, 40);
  626.     cout<<"[ ] Anzahl der Spalten:";
  627.     gotoxy(104, 40);
  628.     cout<<Spalten;
  629.     gotoxy(80, 41);
  630.     cout<<"[ ] Anzahl der Zeilen:";
  631.     gotoxy(104, 41);
  632.     cout<<Zeilen;
  633.     gotoxy(74, 65);
  634.     Farbe(ROT);
  635.     cout<<"Drücken Sie ESC um zum Hauptmenü zurückzukehren...";
  636.     Farbe(DUNKELGRÜN);
  637.     do {
  638.         do {
  639.             Auswahl = getKey();
  640.             gotoxy(81, i + 36);
  641.             cout<<" ";
  642.             if (Auswahl == 592) {
  643.                 if (i == 0) {
  644.                     i++;
  645.                 }
  646.                 else if (i == 1) {
  647.                     i+=3;
  648.                 }
  649.                 else if (i == 4) {
  650.                     i++;
  651.                 }
  652.             }
  653.             else if (Auswahl == 584) {
  654.                 if (i == 1) {
  655.                     i--;
  656.                 }
  657.                 else if (i == 4) {
  658.                     i-=3;
  659.                 }
  660.                 else if (i == 5) {
  661.                     i--;
  662.                 }
  663.             }
  664.             gotoxy(81, i + 36);
  665.             cout<<"x";
  666.         } while (Auswahl != 13 && Auswahl != 27);
  667.         if (Auswahl != 27) {
  668.             if (i == 4) {
  669.                 gotoxy(81, 40);
  670.                 Farbe(ROT);
  671.                 cout<<"x";
  672.                 gotoxy(104, 40);
  673.                 cout<<"  ";
  674.                 gotoxy(104, 40);
  675.                 CursorSichtbarkeit(1);
  676.                 cin>>Spalten;
  677.                 CursorSichtbarkeit(0);
  678.                 Farbe(DUNKELGRÜN);
  679.                 gotoxy(104, 40);
  680.                 cout<<Spalten;
  681.                 gotoxy(81, 40);
  682.                 cout<<"x";
  683.             }
  684.             else if (i == 5) {
  685.                 gotoxy(81, 41);
  686.                 Farbe(ROT);
  687.                 cout<<"x";
  688.                 gotoxy(104, 41);
  689.                 cout<<"  ";
  690.                 gotoxy(104, 41);
  691.                 CursorSichtbarkeit(1);
  692.                 cin>>Zeilen;
  693.                 CursorSichtbarkeit(0);
  694.                 Farbe(DUNKELGRÜN);
  695.                 gotoxy(104, 41);
  696.                 cout<<Zeilen;
  697.                 gotoxy(81, 41);
  698.                 cout<<"x";
  699.             }
  700.             else if (i == 0) {
  701.                 gotoxy(81, 36);
  702.                 Farbe(ROT);
  703.                 cout<<"x";
  704.                 Farbe(DUNKELGRÜN);
  705.                 do {
  706.                     UnterAuswahl = getKey();
  707.                     if (UnterAuswahl == 592 || UnterAuswahl == 584) {
  708.                         gotoxy(104, 36);
  709.                         cout<<"   ";
  710.                         gotoxy(104, 36);
  711.                         if (Temp0 == 0) {
  712.                             cout<<"An";
  713.                             Temp0 = 1;
  714.                         }
  715.                         else if (Temp0 == 1) {
  716.                             cout<<"Aus";
  717.                             Temp0 = 0;
  718.                         }
  719.                     }
  720.                 } while (UnterAuswahl != 13 && UnterAuswahl != 27);
  721.                 if (UnterAuswahl == 13) {
  722.                     if (Temp0 == 0) {
  723.                         CheatMode = false;
  724.                     }
  725.                     else if (Temp0 == 1) {
  726.                         CheatMode = true;
  727.                     }
  728.                 }
  729.                 gotoxy(81, 36);
  730.                 Farbe(DUNKELGRÜN);
  731.                 cout<<"x";
  732.                 gotoxy(104, 36);
  733.                 cout<<"   ";
  734.                 gotoxy(104, 36);
  735.                 if (CheatMode == true) {
  736.                     cout<<"An";
  737.                     Temp0 = 1;
  738.                 }
  739.                 else {
  740.                     cout<<"Aus";
  741.                     Temp0 = 0;
  742.                 }
  743.             }
  744.             else if (i == 1) {
  745.                 gotoxy(81, 37);
  746.                 Farbe(ROT);
  747.                 cout<<"x";
  748.                 Farbe(DUNKELGRÜN);
  749.                 do {
  750.                     UnterAuswahl = getKey();
  751.                     if (UnterAuswahl == 592 || UnterAuswahl == 584) {
  752.                         gotoxy(104, 37);
  753.                         cout<<"   ";
  754.                         gotoxy(104, 37);
  755.                         if (Temp1 == 0) {
  756.                             cout<<"An";
  757.                             Temp1 = 1;
  758.                         }
  759.                         else if (Temp1 == 1) {
  760.                             cout<<"Aus";
  761.                             Temp1 = 0;
  762.                         }
  763.                     }
  764.                 } while (UnterAuswahl != 13 && UnterAuswahl != 27);
  765.                 if (UnterAuswahl == 13) {
  766.                     if (Temp1 == 0) {
  767.                         Speichern = false;
  768.                     }
  769.                     else if (Temp1 == 1) {
  770.                         Speichern = true;
  771.                     }
  772.                 }
  773.                 gotoxy(81, 37);
  774.                 Farbe(DUNKELGRÜN);
  775.                 cout<<"x";
  776.                 gotoxy(104, 37);
  777.                 cout<<"   ";
  778.                 gotoxy(104, 37);
  779.                 if (Speichern == true) {
  780.                     cout<<"An";
  781.                     Temp1 = 1;
  782.                 }
  783.                 else {
  784.                     cout<<"Aus";
  785.                     Temp1 = 0;
  786.                 }
  787.             }
  788.         }
  789.     } while (Auswahl != 27);
  790. }
  791.  
  792. int _tmain(int argc, _TCHAR* argv[]) {
  793.     srand((unsigned)time(NULL));
  794.     setlocale(LC_ALL, "German");
  795.     system("mode con:cols=197 lines=70");
  796.     SetConsoleTitleA("C++ Schiffe Versenken");
  797.     char Temp[20], lines[20];
  798.     int i, k, A, M, N, O, P, HauptmenüCursor = 0;
  799.     Pair Rückgabewert;
  800.     fstream f;
  801.     SHGetSpecialFolderPath(NULL, appdata, CSIDL_APPDATA, false);
  802.     A = 0;
  803.     i = 0;
  804.     while (i <= MAX_PATH && A == 0) {
  805.         if (appdata [i] == 52428 || appdata [i] == 0) {
  806.             appdata [i] = '\\';
  807.             appdata [i + 1] = 'C';
  808.             appdata [i + 2] = '+';
  809.             appdata [i + 3] = '+';
  810.             appdata [i + 4] = ' ';
  811.             appdata [i + 5] = 'S';
  812.             appdata [i + 6] = 'c';
  813.             appdata [i + 7] = 'h';
  814.             appdata [i + 8] = 'i';
  815.             appdata [i + 9] = 'f';
  816.             appdata [i + 10] = 'f';
  817.             appdata [i + 11] = 'e';
  818.             appdata [i + 12] = ' ';
  819.             appdata [i + 13] = 'V';
  820.             appdata [i + 14] = 'e';
  821.             appdata [i + 15] = 'r';
  822.             appdata [i + 16] = 's';
  823.             appdata [i + 17] = 'e';
  824.             appdata [i + 18] = 'n';
  825.             appdata [i + 19] = 'k';
  826.             appdata [i + 20] = 'e';
  827.             appdata [i + 21] = 'n';
  828.             appdata [i + 22] = '\\';
  829.             appdata [i + 23] = 'O';
  830.             appdata [i + 24] = 'p';
  831.             appdata [i + 25] = 't';
  832.             appdata [i + 26] = 'i';
  833.             appdata [i + 27] = 'o';
  834.             appdata [i + 28] = 'n';
  835.             appdata [i + 29] = 'e';
  836.             appdata [i + 30] = 'n';
  837.             appdata [i + 31] = '.';
  838.             appdata [i + 32] = 'c';
  839.             appdata [i + 33] = 'f';
  840.             appdata [i + 34] = 'g';
  841.             A = 1;
  842.         }
  843.  
  844.         else {
  845.             i++;
  846.         }
  847.     }
  848.     appdata [i + 35] = 0;
  849.     for (i = 0; i <= 19; i++) {
  850.         lines[i] = 0;
  851.     }
  852.     if (!(ifstream (appdata))) {
  853.         cout<<"File not found."<<endl;
  854.     }
  855.     else {
  856.         i = 0;
  857.         f.open(appdata, ios::in);
  858.         while (!f.eof()) {
  859.             f.getline(lines, sizeof(lines));
  860.             if (i == 0) {
  861.                 Spalten = strtol(lines, (char**)0, 10);
  862.             }
  863.             else if (i == 1) {
  864.                 Zeilen = strtol(lines, (char**)0, 10);
  865.             }
  866.             else if (i == 2) {
  867.                 if ((strtol(lines, (char**)0, 10)) == 1) {
  868.                     CheatMode = true;
  869.                 }
  870.                 else {
  871.                     CheatMode = false;
  872.                 }
  873.             }
  874.             else if (i == 3) {
  875.                 if ((strtol(lines, (char**)0, 10)) == 1) {
  876.                     Speichern = true;
  877.                 }
  878.                 else {
  879.                     Speichern = false;
  880.                 }
  881.             }
  882.             i++;
  883.         }
  884.         f.close();
  885.     }
  886.     while (true) {
  887.         counter = 0;
  888.         M = 0;
  889.         N = 0;
  890.         O = 0;
  891.         P = 0;
  892.         for (k = 0; k <= 1; k++) {
  893.             for (i = 0; i <= 135; i++) {
  894.                 Schüsse[i][k] = 0;
  895.                 SchüsseKI[i][k] = 0;
  896.             }
  897.         }
  898.         for (k = 0; k <= 1; k++) {
  899.             for (i = 0; i <= 3; i++) {
  900.                 Treffer[i][k] = 0;
  901.                 TrefferKI[i][k] = 0;
  902.             }
  903.         }
  904.         for (k = 0; k <= 1; k++) {
  905.             for (i = 0; i <= 3; i++) {
  906.                 Schiffe[i][k] = 0;
  907.                 SchiffeKI[i][k] = 0;
  908.             }
  909.         }
  910.         do {
  911.             A = 0;
  912.             i = Hauptmenü(HauptmenüCursor);
  913.             if (i == 0) {
  914.                 A = 1;
  915.             }
  916.             else if (i == 2) {
  917.                 Optionen();
  918.             }
  919.             else if (i == 3) {
  920.                 Info();
  921.             }
  922.             else if (i == 4) {
  923.                 Changelog();
  924.             }
  925.             else if (i == 5) {
  926.                 if (Speichern == true) {
  927.                     f.clear();
  928.                     f.open(appdata, ios::out);
  929.                     f<<Spalten<<endl;
  930.                     f<<Zeilen<<endl;
  931.                     f<<CheatMode<<endl;
  932.                     f<<Speichern<<endl;
  933.                     f.close();
  934.                 }
  935.                 else {
  936.                     DeleteFile(appdata);
  937.                 }
  938.                 return 0;
  939.             }
  940.             HauptmenüCursor = i;
  941.         } while (A == 0);
  942.  
  943.         CursorSichtbarkeit(1);
  944.         system("cls");
  945.         Feld(1);
  946.         for (i = 0; i <= 3; i++) {
  947.             ZeileLöschen(57);
  948.             gotoxy(10, 57);
  949.             Farbe(ROT);
  950.             cout<<"Platziere deine Schiffe!";
  951.             ZeileLöschen(58);
  952.             gotoxy(10, 58);
  953.             Farbe(ROT);
  954.             cout<<"Bitte geben Sie die Koordinaten Ihres ";
  955.             Farbe(GELB);
  956.             cout<<i + 1<<". Schiffes";
  957.             Farbe(ROT);
  958.             cout<<" ein: ";
  959.             Farbe(GRÜN);
  960.             do {
  961.                 Schiffe[i][0] = 0;
  962.                 Schiffe[i][1] = 0;
  963.                 A = 0;
  964.                 cin>>Temp;
  965.                 Rückgabewert = Koordinatenverarbeitung(Temp[0], Temp[1]);
  966.                 Schiffe[i][0] = Rückgabewert.Eins;
  967.                 Schiffe[i][1] = Rückgabewert.Zwei;
  968.                 if (Rückgabewert.Eins == 0 || Rückgabewert.Zwei == 0) {
  969.                     A = 1;
  970.                     ZeileLöschen(57);
  971.                     ZeileLöschen(58);
  972.                     Farbe(ROT);
  973.                     gotoxy(10, 57);
  974.                     cout<<"Sie haben ungültige Koordinaten eingegeben!";
  975.                     gotoxy(10, 58);
  976.                     cout<<"Wählen Sie andere Koordinaten: ";
  977.                     Farbe(GRÜN);
  978.                 }
  979.                 else if (Schiffe[i][0] > Spalten * 10 + 10 || Schiffe[i][1] > Zeilen * 6 + 4) {
  980.                     A = 1;
  981.                     ZeileLöschen(57);
  982.                     ZeileLöschen(58);
  983.                     Farbe(ROT);
  984.                     gotoxy(10, 57);
  985.                     cout<<"So groß ist das Spielfeld nicht!";
  986.                     gotoxy(10, 58);
  987.                     cout<<"Wählen Sie andere Koordinaten: ";
  988.                     Farbe(GRÜN);
  989.                 }
  990.                 if (A != 1) {
  991.                     for (k = 0; k <= 3; k++) {
  992.                         if (Schiffe[i][0] == Schiffe[k][0] && Schiffe[i][1] == Schiffe[k][1] && k != i) {
  993.                                 A = 1;
  994.                         }
  995.                     }
  996.                     if (A != 1) {
  997.                         SchiffePlatzieren(Schiffe[i][0], Schiffe[i][1], GELB);
  998.                     }
  999.                     else {
  1000.                         Farbe(ROT);
  1001.                         ZeileLöschen(58);
  1002.                         gotoxy(10, 57);
  1003.                         cout<<"Auf den angegebenen Korrdinaten ist bereits ein Schiff platziert!";
  1004.                         gotoxy(10, 58);
  1005.                         cout<<"Wählen Sie andere Koordinaten: ";
  1006.                         Farbe(GRÜN);
  1007.                     }
  1008.                 }
  1009.             } while (A == 1);
  1010.         }
  1011.         for (i = 0; i <= 3; i++) {
  1012.             do {
  1013.                 A = 0;
  1014.                 Temp[0] = rand() % Spalten + 65;
  1015.                 Temp[1] = rand() % Zeilen + 49;
  1016.                 Rückgabewert = Koordinatenverarbeitung(Temp[0], Temp[1]);
  1017.                 SchiffeKI[i][0] = Rückgabewert.Eins;
  1018.                 SchiffeKI[i][1] = Rückgabewert.Zwei;
  1019.                 for (k = 0; k <= 3; k++) {
  1020.                     if (SchiffeKI[i][0] == SchiffeKI[k][0] && SchiffeKI[i][1] == SchiffeKI[k][1] && k != i) {
  1021.                         A = 1;
  1022.                     }
  1023.                 }
  1024.             } while (A == 1);
  1025.         }
  1026.         Sleep(3000);
  1027.         do {
  1028.             system("cls");
  1029.             Feld(2);
  1030.             do {
  1031.                 if (A == 8) {
  1032.                     for (i = 57; i <= 59; i++) {
  1033.                         ZeileLöschen(i);
  1034.                     }
  1035.                 }
  1036.                 A = 0;
  1037.                 do {
  1038.                     if (A == 0) {
  1039.                         gotoxy(10, 57);
  1040.                         Farbe(ROT);
  1041.                         cout<<"Feuer frei!";
  1042.                         gotoxy(10, 58);
  1043.                         CursorSichtbarkeit(1);
  1044.                         cout<<"Bitte wähle, wohin du schießen willst: ";
  1045.                     }
  1046.                     A = 0;
  1047.                     Farbe(GRÜN);
  1048.                     cin>>Temp;
  1049.                     Rückgabewert = Koordinatenverarbeitung(Temp[0], Temp[1]);
  1050.                     Schüsse[M][0] = Rückgabewert.Eins;
  1051.                     Schüsse[M][1] = Rückgabewert.Zwei;
  1052.                     for (i = 0; i <= Spalten * Zeilen - 1; i++) {
  1053.                         if (Schüsse[M][0] == Schüsse[i][0] && Schüsse[M][1] == Schüsse[i][1] && M != i) {
  1054.                             A = 1;
  1055.                             ZeileLöschen(57);
  1056.                             ZeileLöschen(58);
  1057.                             Farbe(ROT);
  1058.                             gotoxy(10, 57);
  1059.                             cout<<"Dort haben Sie bereits hingeschossen!";
  1060.                             gotoxy(10, 58);
  1061.                             cout<<"Wählen Sie eine andere Koordinaten: ";
  1062.                             Farbe(GRÜN);
  1063.                         }
  1064.                     }
  1065.                     if (Rückgabewert.Eins == 0 || Rückgabewert.Zwei == 0) {
  1066.                         A = 1;
  1067.                         ZeileLöschen(57);
  1068.                         ZeileLöschen(58);
  1069.                         Farbe(ROT);
  1070.                         gotoxy(10, 57);
  1071.                         cout<<"Sie haben ungültige Koordinaten eingegeben!";
  1072.                         gotoxy(10, 58);
  1073.                         cout<<"Wählen Sie andere Koordinaten: ";
  1074.                         Farbe(GRÜN);
  1075.                     }
  1076.                     else if (Schüsse[M][0] > Spalten * 10 + 10 || Schüsse[M][1] > Zeilen * 6 + 4) {
  1077.                         A = 1;
  1078.                         ZeileLöschen(57);
  1079.                         ZeileLöschen(58);
  1080.                         Farbe(ROT);
  1081.                         gotoxy(10, 57);
  1082.                         cout<<"So groß ist das Spielfeld nicht!";
  1083.                         gotoxy(10, 58);
  1084.                         cout<<"Wählen Sie andere Koordinaten: ";
  1085.                         Farbe(GRÜN);
  1086.                     }
  1087.                     if (A == 1) {
  1088.                         Schüsse[M][0] = 0;
  1089.                         Schüsse[M][1] = 0;
  1090.                     }
  1091.                 } while (A == 1);
  1092.                 CursorSichtbarkeit(0);
  1093.                 A = 0;
  1094.                 for (i = 0; i <= 3; i++) {
  1095.                     if (Schüsse[M][0] == SchiffeKI[i][0] && Schüsse[M][1] == SchiffeKI[i][1]) {
  1096.                         ZeileLöschen(57);
  1097.                         ZeileLöschen(58);
  1098.                         gotoxy(10, 57);
  1099.                         Farbe(ROT);
  1100.                         cout<<"___  __   __  __  __  __  __ ";
  1101.                         gotoxy(10, 58);
  1102.                         cout<<" |  |__) |_  |_  |_  |_  |__)|";
  1103.                         gotoxy(10, 59);
  1104.                         cout<<" |  | \\  |__ |   |   |__ | \\ . ";
  1105.                         SchiffePlatzieren(Schüsse[M][0], Schüsse[M][1], DUNKELROT);
  1106.                         Treffer[O][0] = Schüsse[M][0];
  1107.                         Treffer[O][1] = Schüsse[M][1];
  1108.                         O++;
  1109.                         A+=4;
  1110.                     }
  1111.                     else if (A == 3) {
  1112.                         ZeileLöschen(57);
  1113.                         ZeileLöschen(58);
  1114.                         gotoxy(10, 57);
  1115.                         Farbe(BLAU);
  1116.                         cout<<" __             __  __   __";
  1117.                         gotoxy(10, 58);
  1118.                         cout<<"|  \\  /\\  |\\ | |_  |__) |_  |\\ | |";
  1119.                         gotoxy(10, 59);
  1120.                         cout<<"|__/ /--\\ | \\| |__ |__) |__ | \\| .";
  1121.                         SchiffePlatzieren(Schüsse[M][0], Schüsse[M][1], BLAU);
  1122.                     }
  1123.                     A++;
  1124.                 }
  1125.                 Sleep(3000);
  1126.                 M++;
  1127.             } while (A == 8 && O < 4);
  1128.             if (O < 4) {
  1129.                 system("cls");
  1130.                 Feld(1);
  1131.                 do{
  1132.                     if (A == 8) {
  1133.                         ZeileLöschen(57);
  1134.                     }
  1135.                     gotoxy(10, 57);
  1136.                     Farbe(ROT);
  1137.                     cout<<"Gegner am Zug";
  1138.                     Sleep(500);
  1139.                     cout<<".";
  1140.                     Sleep(500);
  1141.                     cout<<".";
  1142.                     Sleep(500);
  1143.                     cout<<".";
  1144.                     do {
  1145.                         A = 0;
  1146.                         Temp[0] = rand() % Spalten + 65;
  1147.                         Temp[1] = rand() % Zeilen + 49;
  1148.                         Rückgabewert = Koordinatenverarbeitung(Temp[0], Temp[1]);
  1149.                         SchüsseKI[N][0] = Rückgabewert.Eins;
  1150.                         SchüsseKI[N][1] = Rückgabewert.Zwei;
  1151.                         for (i = 0; i <= Spalten * Zeilen - 1; i++) {
  1152.                             if (SchüsseKI[N][0] == SchüsseKI[i][0] && SchüsseKI[N][1] == SchüsseKI[i][1] && N != i) {
  1153.                                 A = 1;
  1154.                             }
  1155.                         }
  1156.                     } while (A == 1);
  1157.                     for (i = 0; i <= 3; i++) {
  1158.                         if (SchüsseKI[N][0] == Schiffe[i][0] && SchüsseKI[N][1] == Schiffe[i][1]) {
  1159.                             ZeileLöschen(57);
  1160.                             gotoxy(10, 57);
  1161.                             Farbe(ROT);
  1162.                             cout<<"Gegner hat auf "<<Temp[0]<<Temp[1]<<" geschossen und getroffen!";
  1163.                             SchiffePlatzieren(SchüsseKI[N][0], SchüsseKI[N][1], DUNKELROT);
  1164.                             TrefferKI[P][0] = SchüsseKI[N][0];
  1165.                             TrefferKI[P][1] = SchüsseKI[N][1];
  1166.                             P++;
  1167.                             A+=4;
  1168.                         }
  1169.                         else if (A == 3) {
  1170.                             ZeileLöschen(57);
  1171.                             gotoxy(10, 57);
  1172.                             Farbe(ROT);
  1173.                             cout<<"Gegner hat auf "<<Temp[0]<<Temp[1]<<" geschossen und NICHT getroffen!";
  1174.                             SchiffePlatzieren(SchüsseKI[N][0], SchüsseKI[N][1], BLAU);
  1175.                         }
  1176.                         A++;
  1177.                     }
  1178.                     N++;
  1179.                     Sleep(3000);
  1180.                 } while (A == 8 && P != 4);
  1181.             }
  1182.         } while (O < 4 && P < 4);
  1183.         CursorSichtbarkeit(0);
  1184.         if (O == 4) {
  1185.             system("cls");
  1186.             Farbe(GRÜN);
  1187.             gotoxy(52, 31);
  1188.             cout<<"   ÛÛÛÛÛÛÛÛÛ                                                                              ÛÛÛ";
  1189.             gotoxy(52, 32);
  1190.             cout<<"  ÛÛÛ°°°°°ÛÛÛ                                                                            °ÛÛÛ";
  1191.             gotoxy(52, 33);
  1192.             cout<<" ÛÛÛ     °°°   ÛÛÛÛÛÛ  ÛÛÛÛÛ ÛÛÛ ÛÛÛÛÛ  ÛÛÛÛÛÛ  ÛÛÛÛÛÛÛÛ   ÛÛÛÛÛÛÛÛ    ÛÛÛÛÛÛ  ÛÛÛÛÛÛÛÛ  °ÛÛÛ";
  1193.             gotoxy(52, 34);
  1194.             cout<<"°ÛÛÛ          ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ°°ÛÛÛ  ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °°ÛÛÛ°°ÛÛÛ  ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ";
  1195.             gotoxy(52, 35);
  1196.             cout<<"°ÛÛÛ    ÛÛÛÛÛ°ÛÛÛÛÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛÛÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛ";
  1197.             gotoxy(52, 36);
  1198.             cout<<"°°ÛÛÛ  °°ÛÛÛ °ÛÛÛ°°°   °°ÛÛÛÛÛÛÛÛÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛ°°°   °ÛÛÛ °ÛÛÛ °°° ";
  1199.             gotoxy(52, 37);
  1200.             cout<<" °°ÛÛÛÛÛÛÛÛÛ °°ÛÛÛÛÛÛ   °°ÛÛÛÛ°ÛÛÛÛ   °°ÛÛÛÛÛÛ  ÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛ°°ÛÛÛÛÛÛ  ÛÛÛÛ ÛÛÛÛÛ ÛÛÛ";
  1201.             gotoxy(52, 38);
  1202.             cout<<"   °°°°°°°°°   °°°°°°     °°°° °°°°     °°°°°°  °°°° °°°°° °°°° °°°°°  °°°°°°  °°°° °°°°° °°° ";
  1203.         }  
  1204.    
  1205.         else {
  1206.             if (CheatMode == false) {
  1207.                 system("cls");
  1208.                 Feld(2);
  1209.                 Legende(4);
  1210.                 for (i = 0; i <= 3; i++) {
  1211.                     SchiffeKInichtgetroffen[i][0] = 0;
  1212.                     SchiffeKInichtgetroffen[i][1] = 0;
  1213.                     SchiffeKIgetroffen[i][0] = 0;
  1214.                     SchiffeKIgetroffen[i][1] = 0;
  1215.                 }
  1216.                 A = 0;
  1217.                 for (i = 0; i <= 3; i++) {
  1218.                     for (k = 0; k <= 3; k++) {
  1219.                         if (SchiffeKI[i][0] == Treffer[k][0] && SchiffeKI[i][1] == Treffer[k][1]) {
  1220.                             SchiffeKIgetroffen[A][0] = SchiffeKI[i][0];
  1221.                             SchiffeKIgetroffen[A][1] = SchiffeKI[i][1];
  1222.                             A++;
  1223.                         }
  1224.                     }
  1225.                 }
  1226.                 A = 0;
  1227.                 for (i = 0; i <= 3; i++) {
  1228.                     for (k = 0; k <= 3; k++) {
  1229.                         if (SchiffeKI[i][0] != SchiffeKIgetroffen[k][0] && SchiffeKI[i][1] != SchiffeKIgetroffen[k][1] && SchiffeKIgetroffen[k][0] != 0) {
  1230.                             SchiffeKInichtgetroffen[A][0] = SchiffeKI[i][0];
  1231.                             SchiffeKInichtgetroffen[A][1] = SchiffeKI[i][1];
  1232.                             A++;
  1233.                         }
  1234.                     }
  1235.                 }
  1236.  
  1237.                 for (k = 0; k <= 4; k++) {
  1238.                     for (i = 0; i <= 3; i++) {
  1239.                         if (SchiffeKInichtgetroffen[i][0] != 0 && SchiffeKInichtgetroffen[i][1] != 0) {
  1240.                             SchiffePlatzieren(SchiffeKInichtgetroffen[i][0], SchiffeKInichtgetroffen[i][1], SCHWARZ);
  1241.                         }
  1242.                     }
  1243.                     Sleep(500);
  1244.                     for (i = 0; i <= 3; i++) {
  1245.                         if (SchiffeKInichtgetroffen[i][0] != 0 && SchiffeKInichtgetroffen[i][1] != 0) {
  1246.                             SchiffePlatzieren(SchiffeKInichtgetroffen[i][0], SchiffeKInichtgetroffen[i][1], TÜRKIS);
  1247.                         }
  1248.                     }
  1249.                     Sleep(1000);
  1250.                 }
  1251.                 Sleep(1000);
  1252.             }
  1253.             system("cls");
  1254.             Farbe(LILA);
  1255.             gotoxy(58, 31);
  1256.             cout<<" ÛÛÛÛÛ   ÛÛÛÛÛ                    ÛÛÛÛ                                         ÛÛÛ";
  1257.             gotoxy(58, 32);
  1258.             cout<<"°°ÛÛÛ   °°ÛÛÛ                    °°ÛÛÛ                                        °ÛÛÛ";
  1259.             gotoxy(58, 33);
  1260.             cout<<" °ÛÛÛ    °ÛÛÛ   ÛÛÛÛÛÛ  ÛÛÛÛÛÛÛÛ  °ÛÛÛ   ÛÛÛÛÛÛ  ÛÛÛÛÛÛÛÛ   ÛÛÛÛÛÛ  ÛÛÛÛÛÛÛÛ  °ÛÛÛ";
  1261.             gotoxy(58, 34);
  1262.             cout<<" °ÛÛÛ    °ÛÛÛ  ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ  ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ ÛÛÛ°°ÛÛÛ°°ÛÛÛ°°ÛÛÛ °ÛÛÛ";
  1263.             gotoxy(58, 35);
  1264.             cout<<" °°ÛÛÛ   ÛÛÛ  °ÛÛÛÛÛÛÛ  °ÛÛÛ °°°  °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ °°° °ÛÛÛÛÛÛÛ  °ÛÛÛ °ÛÛÛ °ÛÛÛ";
  1265.             gotoxy(58, 36);
  1266.             cout<<"  °°°ÛÛÛÛÛ°   °ÛÛÛ°°°   °ÛÛÛ      °ÛÛÛ °ÛÛÛ °ÛÛÛ °ÛÛÛ     °ÛÛÛ°°°   °ÛÛÛ °ÛÛÛ °°°";
  1267.             gotoxy(58, 37);
  1268.             cout<<"    °°ÛÛÛ     °°ÛÛÛÛÛÛ  ÛÛÛÛÛ     ÛÛÛÛÛ°°ÛÛÛÛÛÛ  ÛÛÛÛÛ    °°ÛÛÛÛÛÛ  ÛÛÛÛ ÛÛÛÛÛ ÛÛÛ";
  1269.             gotoxy(58, 38);
  1270.             cout<<"     °°°       °°°°°°  °°°°°     °°°°°  °°°°°°  °°°°°      °°°°°°  °°°° °°°°° °°°";
  1271.         }
  1272.         gotoxy(65, 50);
  1273.         Farbe(ROT);
  1274.         cout<<"Drücken Sie eine beliebige Taste um zum Hauptmenü zurückzukehren...";
  1275.         _getch();
  1276.     }
  1277. }
Advertisement
Add Comment
Please, Sign In to add comment