Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.97 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <conio.h>
  3. #include <iostream>
  4. #include <Windows.h>
  5. #include <cstdlib>
  6. #include <time.h>
  7.  
  8. void xy()
  9. {
  10.     HANDLE hout;
  11.     COORD Position;
  12.     hout = GetStdHandle(STD_OUTPUT_HANDLE);
  13.     Position.X = 0;
  14.     Position.Y = 0;
  15.     SetConsoleCursorPosition(hout, Position);
  16. }
  17.  
  18. char field[3][3] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  19.  
  20. void drawfield() {
  21.  
  22.     for (int a = 0; a < 3; a++)
  23.     {
  24.         for (int b = 0; b < 3; b++)
  25.         {
  26.             std::cout << field[a][b];
  27.         }
  28.         std::cout << std::endl;
  29.     }
  30. }
  31.  
  32. int checkplace(int x, bool frei)
  33. {
  34.     if (field[0][0] != '1' && x == 1 || field[0][1] != '2' && x == 2 || field[0][2] != '3' && x == 3 || field[1][0] != '4' && x == 4 || field[1][1] != '5' && x == 5 ||
  35.         field[1][2] != '6' && x == 6 || field[2][0] != '7' && x == 7 || field[2][1] != '8' && x == 8 || field[2][2] != '9' && x == 9) {
  36.  
  37.         frei = false;
  38.     }
  39.     else {
  40.         frei = true;
  41.     }
  42.     return frei;
  43.  
  44. }
  45.  
  46. char p1 = 'X';
  47. char p2 = 'O';
  48.  
  49. void player1()
  50. {
  51.     int x;
  52.     std::cin >> x;
  53.  
  54.     switch (x) {
  55.     case 1:
  56.         if (checkplace(x, free)) {
  57.             field[0][0] = p1;
  58.         }
  59.  
  60.         break;
  61.     case 2:
  62.         if (checkplace(x, free)) {
  63.             field[0][1] = p1;
  64.         }
  65.         break;
  66.     case 3:
  67.         if (checkplace(x, free)) {
  68.             field[0][2] = p1;
  69.         }
  70.         break;
  71.     case 4:
  72.         if (checkplace(x, free)) {
  73.             field[1][0] = p1;
  74.         }
  75.         break;
  76.     case 5:
  77.         if (checkplace(x, free)) {
  78.             field[1][1] = p1;
  79.         }
  80.         break;
  81.     case 6:
  82.         if (checkplace(x, free)) {
  83.             field[1][2] = p1;
  84.         }
  85.         break;
  86.     case 7:
  87.         if (checkplace(x, free)) {
  88.             field[2][0] = p1;
  89.         }
  90.         break;
  91.     case 8:
  92.         if (checkplace(x, free)) {
  93.             field[2][1] = p1;
  94.         }
  95.         break;
  96.     case 9:
  97.         if (checkplace(x, free)) {
  98.             field[2][2] = p1;
  99.         }
  100.         break;
  101.     }
  102. }
  103.  
  104. void player2()
  105. {
  106.     int x;
  107.     std::cin >> x;
  108.  
  109.     switch (x) {
  110.     case 1:
  111.         if (checkplace(x, free)) {
  112.             field[0][0] = p2;
  113.         }
  114.         break;
  115.     case 2:
  116.         if (checkplace(x, free)) {
  117.             field[0][1] = p2;
  118.         }
  119.         break;
  120.     case 3:
  121.         if (checkplace(x, free)) {
  122.             field[0][2] = p2;
  123.         }
  124.         break;
  125.     case 4:
  126.         if (checkplace(x, free)) {
  127.             field[1][0] = p2;
  128.         }
  129.         break;
  130.     case 5:
  131.         if (checkplace(x, free)) {
  132.             field[1][1] = p2;
  133.         }
  134.         break;
  135.     case 6:
  136.         if (checkplace(x, free)) {
  137.             field[1][2] = p2;
  138.         }
  139.         break;
  140.     case 7:
  141.         if (checkplace(x, free)) {
  142.             field[2][0] = p2;
  143.         }
  144.         break;
  145.     case 8:
  146.         if (checkplace(x, free)) {
  147.             field[2][1] = p2;
  148.         }
  149.         break;
  150.     case 9:
  151.         if (checkplace(x, free)) {
  152.             field[2][2] = p2;
  153.         }
  154.         break;
  155.     }
  156. }
  157.  
  158. bool ongoing = true;
  159.  
  160. void wincondition()
  161. {
  162.     if (field[0][0] == 'X' && field[0][1] == 'X' && field[0][2] == 'X' ||
  163.         field[1][0] == 'X' && field[1][1] == 'X' && field[1][2] == 'X' ||
  164.         field[2][0] == 'X' && field[2][1] == 'X' && field[2][2] == 'X' ||
  165.        
  166.         field[0][0] == 'X' && field[1][0] == 'X' && field[2][0] == 'X' ||
  167.         field[0][1] == 'X' && field[1][1] == 'X' && field[2][1] == 'X' ||
  168.         field[0][2] == 'X' && field[1][2] == 'X' && field[2][2] == 'X' ||
  169.  
  170.         field[0][0] == 'X' && field[1][1] == 'X' && field[2][2] == 'X' ||
  171.         field[0][2] == 'X' && field[1][1] == 'X' && field[2][0] == 'X')
  172.     {
  173.         ongoing = false;
  174.         std::cout << "Spieler 1 (X) hat gewonnen!" << std::endl;
  175.     }
  176.  
  177.     if (field[0][0] == 'O' && field[0][1] == 'O' && field[0][2] == 'O' ||
  178.         field[1][0] == 'O' && field[1][1] == 'O' && field[1][2] == 'O' ||
  179.         field[2][0] == 'O' && field[2][1] == 'O' && field[2][2] == 'O' ||
  180.  
  181.         field[0][0] == 'O' && field[1][0] == 'O' && field[2][0] == 'O' ||
  182.         field[0][1] == 'O' && field[1][1] == 'O' && field[2][1] == 'O' ||
  183.         field[0][2] == 'O' && field[1][2] == 'O' && field[2][2] == 'O' ||
  184.  
  185.         field[0][0] == 'O' && field[1][1] == 'O' && field[2][2] == 'O' ||
  186.         field[0][2] == 'O' && field[1][1] == 'O' && field[2][0] == 'O')
  187.     {
  188.         ongoing = false;
  189.         std::cout << "Spieler 2 (O) hat gewonnen!" << std::endl;
  190.     }
  191. }
  192.  
  193. int main()
  194. {
  195.     bool free = true;
  196.     do {
  197.         xy();
  198.         drawfield();
  199.         player1();  
  200.         wincondition();
  201.         xy();
  202.         drawfield();
  203.         player2();
  204.         wincondition();
  205.     } while (ongoing);
  206.    
  207.     std::cin.get();
  208.     return 0;
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement