Juego del Tres en Raya en C++ y Juego OSO: Código Completo Explicado

Informática y Telecomunicaciones6,12 KB

Juego del tres en raya en C++

A continuación se presenta el código del juego del tres en raya, desarrollado en C++ para ejecutarse por consola.

Código base del tres en raya

#include <iostream>
using namespace std;

int main() {
    char c1='1', c2='2', c3='3', c4='4', c5='5', c6='6', c7='7', c8='8', c9='9';
    char jugador='X';
    int pos, jugadas=0;

    while (true) {
        cout << "\n " << c1 << " | " << c2 << " | " << c3 << "\n";
        cout << "---+---+---\n";
        cout << " " << c4 << " | " << c5 << " | " << c6 << "\n";
        cout << "---+---+---\n";
        cout << " " << c7 << " | " << c8 << " | " << c9 << "\n";

        cout << "\nTurno " << jugador << " (1-9): ";
        cin >> pos;

        if (cin.fail() || pos < 1 || pos > 9) {
            cin.clear();
            cin.ignore(1000, '\n');
            cout << "Inválido.\n";
            continue;
        }

        if (pos==1 && c1=='1') c1=jugador;
        else if (pos==2 && c2=='2') c2=jugador;
        else if (pos==3 && c3=='3') c3=jugador;
        else if (pos==4 && c4=='4') c4=jugador;
        else if (pos==5 && c5=='5') c5=jugador;
        else if (pos==6 && c6=='6') c6=jugador;
        else if (pos==7 && c7=='7') c7=jugador;
        else if (pos==8 && c8=='8') c8=jugador;
        else if (pos==9 && c9=='9') c9=jugador;
        else {
            cout << "No válido.\n";
            continue;
        }

        jugadas++;

        if ((c1==jugador && c2==jugador && c3==jugador) || (c4==jugador && c5==jugador && c6==jugador) || (c7==jugador && c8==jugador && c9==jugador) || (c1==jugador && c4==jugador && c7==jugador) || (c2==jugador && c5==jugador && c8==jugador) || (c3==jugador && c6==jugador && c9==jugador) || (c1==jugador && c5==jugador && c9==jugador) || (c3==jugador && c5==jugador && c7==jugador)) {
            cout << "\n¡Gana " << jugador << "!\n";
            break;
        }

        if (jugadas == 9) {
            cout << "\n¡Empate!\n";
            break;
        }

        jugador = (jugador == 'X') ? 'O' : 'X';
    }
    return 0;
}

Juego OSO en C++

A continuación se presenta la versión del juego OSO, en la que cada jugador elige la letra O o S, y gana quien forme la secuencia OSO en una línea.

Código del juego OSO

#include <iostream>
using namespace std;

int main() {
    char c1='1', c2='2', c3='3', c4='4', c5='5', c6='6', c7='7', c8='8', c9='9';
    char letra;
    int pos, jugadas=0;

    while (true) {
        cout << "\n " << c1 << " | " << c2 << " | " << c3 << "\n";
        cout << "---+---+---\n";
        cout << " " << c4 << " | " << c5 << " | " << c6 << "\n";
        cout << "---+---+---\n";
        cout << " " << c7 << " | " << c8 << " | " << c9 << "\n";

        cout << "\nElige posición (1-9): ";
        cin >> pos;
        if (cin.fail() || pos < 1 || pos > 9) {
            cin.clear();
            cin.ignore(1000, '\n');
            cout << "Posición inválida\n";
            continue;
        }

        cout << "\nElige (O/S): ";
        cin >> letra;
        letra = toupper(letra);
        if (letra != 'O' && letra != 'S') {
            cout << "Letra no válida.\n";
            continue;
        }

        if (pos==1 && c1=='1') c1=letra;
        else if (pos==2 && c2=='2') c2=letra;
        else if (pos==3 && c3=='3') c3=letra;
        else if (pos==4 && c4=='4') c4=letra;
        else if (pos==5 && c5=='5') c5=letra;
        else if (pos==6 && c6=='6') c6=letra;
        else if (pos==7 && c7=='7') c7=letra;
        else if (pos==8 && c8=='8') c8=letra;
        else if (pos==9 && c9=='9') c9=letra;
        else {
            cout << "Posición no válida.\n";
            continue;
        }

        jugadas++;

        if ((c1=='O'&&c2=='S'&&c3=='O') || (c4=='O'&&c5=='S'&&c6=='O') || (c7=='O'&&c8=='S'&&c9=='O') || (c1=='O'&&c4=='S'&&c7=='O') || (c2=='O'&&c5=='S'&&c8=='O') || (c3=='O'&&c6=='S'&&c9=='O') || (c1=='O'&&c5=='S'&&c9=='O') || (c3=='O'&&c5=='S'&&c7=='O')) {
            cout << "\n¡Se formó OSO! 🎉\n";
            break;
        }

        if (jugadas == 9) {
            cout << "\n¡Empate!\n";
            break;
        }
    }
    return 0;
}

Descargar

PDF Word HTML