C/Visual C - TRIQUI EN C++ URGENTE!!!!!!!

 
Vista:

TRIQUI EN C++ URGENTE!!!!!!!

Publicado por daniel (3 intervenciones) el 17/10/2001 07:39:16
Otra vez por aqui!!!!!!!!, necesito urgente el programa en c++, un triqui
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Juego de triqui (tres en raya) en C++

Publicado por Alejandro (913 intervenciones) el 17/10/2024 00:00:08
Daniel, a continuación, te presento un ejemplo básico de un juego de triqui (tres en raya) en C++. Este programa permite a dos jugadores jugar en la consola.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <vector>
 
using namespace std;
 
const char EMPTY = ' ';
const char PLAYER_X = 'X';
const char PLAYER_O = 'O';
 
void printBoard(const vector<vector<char>>& board) {
    cout << "  0 1 2\n";
    for (int i = 0; i < 3; i++) {
        cout << i << " ";
        for (int j = 0; j < 3; j++) {
            cout << board[i][j];
            if (j < 2) cout << "|";
        }
        cout << endl;
        if (i < 2) cout << "  -----\n";
    }
}
 
bool checkWin(const vector<vector<char>>& board, char player) {
    // Comprobar filas y columnas
    for (int i = 0; i < 3; i++) {
        if ((board[i][0] == player && board[i][1] == player && board[i][2] == player) ||
            (board[0][i] == player && board[1][i] == player && board[2][i] == player)) {
            return true;
        }
    }
    // Comprobar diagonales
    if ((board[0][0] == player && board[1][1] == player && board[2][2] == player) ||
        (board[0][2] == player && board[1][1] == player && board[2][0] == player)) {
        return true;
    }
    return false;
}
 
bool checkDraw(const vector<vector<char>>& board) {
    for (const auto& row : board) {
        for (char cell : row) {
            if (cell == EMPTY) return false;
        }
    }
    return true;
}
 
int main() {
    vector<vector<char>> board(3, vector<char>(3, EMPTY));
    char currentPlayer = PLAYER_X;
 
    while (true) {
        printBoard(board);
        int row, col;
        cout << "Jugador " << currentPlayer << ", ingresa fila y columna (ejemplo: 1 2): ";
        cin >> row >> col;
 
        // Validar entrada
        if (row < 0 || row > 2 || col < 0 || col > 2 || board[row][col] != EMPTY) {
            cout << "Movimiento inválido. Intenta de nuevo." << endl;
            continue;
        }
 
        // Realizar el movimiento
        board[row][col] = currentPlayer;
 
        // Comprobar si hay un ganador
        if (checkWin(board, currentPlayer)) {
            printBoard(board);
            cout << "¡Jugador " << currentPlayer << " gana!" << endl;
            break;
        }
 
        // Comprobar si hay un empate
        if (checkDraw(board)) {
            printBoard(board);
            cout << "¡Es un empate!" << endl;
            break;
        }
 
        // Cambiar de jugador
        currentPlayer = (currentPlayer == PLAYER_X) ? PLAYER_O : PLAYER_X;
    }
 
    return 0;
}

Explicación del código:


1. Tablero: Se utiliza un vector 2D para representar el tablero de 3x3.
2. Impresión del tablero: La función `printBoard` muestra el estado actual del tablero.
3. Comprobación de ganador: La función `checkWin` verifica si el jugador actual ha ganado.
4. Comprobación de empate: La función `checkDraw` verifica si el tablero está lleno y no hay ganador.
5. Juego principal: En el `main`, se alterna entre los jugadores, se solicita la entrada y se actualiza el tablero hasta que hay un ganador o un empate.

Cómo ejecutar:


1. Copia el código en un archivo con extensión `.cpp`.
2. Compílalo usando un compilador de C++ (como g++, Visual Studio, etc.).
3. Ejecuta el programa y sigue las instrucciones en la consola.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar