Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <conio.h>
- #include <iostream>
- #include <Windows.h>
- #include <cstdlib>
- #include <time.h>
- void xy()
- {
- HANDLE hout;
- COORD Position;
- hout = GetStdHandle(STD_OUTPUT_HANDLE);
- Position.X = 0;
- Position.Y = 0;
- SetConsoleCursorPosition(hout, Position);
- }
- char field[3][3] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
- void drawfield() {
- for (int a = 0; a < 3; a++)
- {
- for (int b = 0; b < 3; b++)
- {
- std::cout << field[a][b];
- }
- std::cout << std::endl;
- }
- }
- int checkplace(int x, bool frei)
- {
- 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 ||
- field[1][2] != '6' && x == 6 || field[2][0] != '7' && x == 7 || field[2][1] != '8' && x == 8 || field[2][2] != '9' && x == 9) {
- frei = false;
- }
- else {
- frei = true;
- }
- return frei;
- }
- char p1 = 'X';
- char p2 = 'O';
- void player1()
- {
- int x;
- std::cin >> x;
- switch (x) {
- case 1:
- if (checkplace(x, free)) {
- field[0][0] = p1;
- }
- break;
- case 2:
- if (checkplace(x, free)) {
- field[0][1] = p1;
- }
- break;
- case 3:
- if (checkplace(x, free)) {
- field[0][2] = p1;
- }
- break;
- case 4:
- if (checkplace(x, free)) {
- field[1][0] = p1;
- }
- break;
- case 5:
- if (checkplace(x, free)) {
- field[1][1] = p1;
- }
- break;
- case 6:
- if (checkplace(x, free)) {
- field[1][2] = p1;
- }
- break;
- case 7:
- if (checkplace(x, free)) {
- field[2][0] = p1;
- }
- break;
- case 8:
- if (checkplace(x, free)) {
- field[2][1] = p1;
- }
- break;
- case 9:
- if (checkplace(x, free)) {
- field[2][2] = p1;
- }
- break;
- }
- }
- void player2()
- {
- int x;
- std::cin >> x;
- switch (x) {
- case 1:
- if (checkplace(x, free)) {
- field[0][0] = p2;
- }
- break;
- case 2:
- if (checkplace(x, free)) {
- field[0][1] = p2;
- }
- break;
- case 3:
- if (checkplace(x, free)) {
- field[0][2] = p2;
- }
- break;
- case 4:
- if (checkplace(x, free)) {
- field[1][0] = p2;
- }
- break;
- case 5:
- if (checkplace(x, free)) {
- field[1][1] = p2;
- }
- break;
- case 6:
- if (checkplace(x, free)) {
- field[1][2] = p2;
- }
- break;
- case 7:
- if (checkplace(x, free)) {
- field[2][0] = p2;
- }
- break;
- case 8:
- if (checkplace(x, free)) {
- field[2][1] = p2;
- }
- break;
- case 9:
- if (checkplace(x, free)) {
- field[2][2] = p2;
- }
- break;
- }
- }
- bool ongoing = true;
- void wincondition()
- {
- if (field[0][0] == 'X' && field[0][1] == 'X' && field[0][2] == 'X' ||
- field[1][0] == 'X' && field[1][1] == 'X' && field[1][2] == 'X' ||
- field[2][0] == 'X' && field[2][1] == 'X' && field[2][2] == 'X' ||
- field[0][0] == 'X' && field[1][0] == 'X' && field[2][0] == 'X' ||
- field[0][1] == 'X' && field[1][1] == 'X' && field[2][1] == 'X' ||
- field[0][2] == 'X' && field[1][2] == 'X' && field[2][2] == 'X' ||
- field[0][0] == 'X' && field[1][1] == 'X' && field[2][2] == 'X' ||
- field[0][2] == 'X' && field[1][1] == 'X' && field[2][0] == 'X')
- {
- ongoing = false;
- std::cout << "Spieler 1 (X) hat gewonnen!" << std::endl;
- }
- if (field[0][0] == 'O' && field[0][1] == 'O' && field[0][2] == 'O' ||
- field[1][0] == 'O' && field[1][1] == 'O' && field[1][2] == 'O' ||
- field[2][0] == 'O' && field[2][1] == 'O' && field[2][2] == 'O' ||
- field[0][0] == 'O' && field[1][0] == 'O' && field[2][0] == 'O' ||
- field[0][1] == 'O' && field[1][1] == 'O' && field[2][1] == 'O' ||
- field[0][2] == 'O' && field[1][2] == 'O' && field[2][2] == 'O' ||
- field[0][0] == 'O' && field[1][1] == 'O' && field[2][2] == 'O' ||
- field[0][2] == 'O' && field[1][1] == 'O' && field[2][0] == 'O')
- {
- ongoing = false;
- std::cout << "Spieler 2 (O) hat gewonnen!" << std::endl;
- }
- }
- int main()
- {
- bool free = true;
- do {
- xy();
- drawfield();
- player1();
- wincondition();
- xy();
- drawfield();
- player2();
- wincondition();
- } while (ongoing);
- std::cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement