Trang chủ Tin Học Lớp 12 Tic-Tac-Toe là trò chơi trên lưới ô vuông 3x3 0 6 trên lưỡi được đánh số thứ tự từ trái...
Câu hỏi :

Tic-Tac-Toe là trò chơi trên lưới ô vuông 3x3 0 6 trên lưỡi được đánh số thứ tự từ trái sang phải, từ trên xuống dưới như sau: 123 Sao chép 456 789 Mỗi người sẽ chọn một kỷ tư X và Ở và thay nhau ghi vào các khoảng trống trong ô vuông trên. Người chơi nào tạo được ba kỳ từ liên tiếp trên cũng một hàng ngang dọc hoặc chéo là người thắng cuộc. Cho trước tọa độ của X và O trong lượt chơi đầu tiên. Biết rằng người chơi X luôn đi trước, bạn xác định kết quả vận đấu khi cả hai người đều chơi hoàn hảo. Đầu vào Hai số nguyên z, 3 (1 <r,g < 0), lần lượt là tọa độ của X và 0 trong lượt chơi đầu tiên. Đầu ra Kết quả của ván đấu nhau cả người chơi X và người chơi Ô đều đi những nước tối ưu, xuất ra Kí tự Ẫ nếu người chơi X thắng. 4 KÍ TỰ Ở TIỂU người chơi 6 tháng. * Ki từ D) nếu kết quả trò chơi là hóa chúng tôi bạn Đầu vào: 12 Đầu ra. X (cần gấp bằng c++ ạ )

Lời giải 1 :

#include <iostream>
#include <vector>

using namespace std;

bool checkWin(vector<vector<char>>& board, char player) {
    
    for (int i = 0; i < 3; i++) {
        if (board[i][0] == player && board[i][1] == player && board[i][2] == player)
            return true;
    }

    
    for (int j = 0; j < 3; j++) {
        if (board[0][j] == player && board[1][j] == player && board[2][j] == player)
            return true;
    }

   
    if (board[0][0] == player && board[1][1] == player && board[2][2] == player)
        return true;

    
    if (board[0][2] == player && board[1][1] == player && board[2][0] == player)
        return true;

    return false;
}


void printResult(char result) {
    if (result == 'X')
        cout << "X";
    else if (result == 'O')
        cout << "O";
    else
        cout << "*";
}

int main() {
    vector<vector<char>> board(3, vector<char>(3)); 

    
    int X_row, X_col, O_row, O_col;
    cin >> X_row >> X_col;

    
    if (X_row == 1) {
        O_row = 3;  // Nếu X_row = 1, thì O_row = 3 và ngược lại
    } else {
        O_row = 1;
    }

    if (X_col <= 2) {
        O_col = X_col + 3;  // Nếu X_col <= 2, thì O_col = X_col + 3 và ngược lại
    } else {
        O_col = X_col - 3;
    }

   
    char currentPlayer = 'X';
    char result = '*';  // Kết quả mặc định là hòa
    for (int i = 0; i < 9; i++) {
        int row, col;
        if (currentPlayer == 'X') {
            row = X_row;
            col = X_col;
        } else {
            row = O_row;
            col = O_col;
        }

        
        board[row - 1][col - 1] = currentPlayer;

        
        if (checkWin(board, currentPlayer)) {
            result = currentPlayer;
            break;
        }

       
        if (currentPlayer == 'X')
            currentPlayer = 'O';
        else
            currentPlayer = 'X';
    }

    
    printResult(result);

    return 0;
}

Lưu ý: Bạn có thể chạy chương trình trên và nhập tọa độ của X trong lượt chơi đầu tiên từ đầu vào để xác định kết quả của ván đấu. Kết quả sẽ được xuất ra dưới dạng kí tự 'X' nếu người chơi X thắng, 'O' nếu người chơi O thắng, và '*' nếu là trường hợp hòa.

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 12

Lớp 12 - Năm cuối ở cấp trung học phổ thông, năm học quan trọng nhất trong đời học sinh, trải qua bao năm học tập, bao nhiêu kỳ vọng của người thân xung quanh. Những nỗi lo về thi đại học và định hướng tương lai thật là nặng nề. Hãy tin vào bản thân, mình sẽ làm được và tương lai mới đang chờ đợi chúng ta!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK