首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tic tac toe游戏循环停止时,它是一个绘图- Java

Tic tac toe游戏是一种经典的井字棋游戏,通常由两名玩家轮流在一个3x3的棋盘上放置自己的棋子,目标是在水平、垂直或对角线上连成一条直线的棋子。

在Java中实现Tic tac toe游戏的绘图功能,可以使用Java的图形库,如JavaFX或Swing。这些库提供了绘制图形和处理用户交互的功能。

游戏循环停止时,可以通过监听玩家的鼠标点击或键盘输入来确定游戏是否结束。一种常见的实现方式是使用一个循环来不断检测玩家的输入,并在满足结束条件时终止循环。

以下是一个简单的示例代码,演示了如何使用JavaFX实现Tic tac toe游戏的绘图功能:

代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class TicTacToeGame extends Application {
    private static final int BOARD_SIZE = 3;
    private static final int CELL_SIZE = 100;
    private static final int BOARD_PADDING = 10;
    private static final int WINDOW_WIDTH = BOARD_SIZE * CELL_SIZE + BOARD_PADDING * 2;
    private static final int WINDOW_HEIGHT = BOARD_SIZE * CELL_SIZE + BOARD_PADDING * 2;

    private char[][] board;
    private boolean isPlayer1Turn;

    public TicTacToeGame() {
        board = new char[BOARD_SIZE][BOARD_SIZE];
        isPlayer1Turn = true;
    }

    @Override
    public void start(Stage primaryStage) {
        Canvas canvas = new Canvas(WINDOW_WIDTH, WINDOW_HEIGHT);
        GraphicsContext gc = canvas.getGraphicsContext2D();
        drawBoard(gc);

        Pane root = new Pane(canvas);
        Scene scene = new Scene(root, WINDOW_WIDTH, WINDOW_HEIGHT);

        primaryStage.setTitle("Tic Tac Toe");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void drawBoard(GraphicsContext gc) {
        gc.setFill(Color.WHITE);
        gc.fillRect(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);

        gc.setStroke(Color.BLACK);
        gc.setLineWidth(2);

        for (int i = 0; i < BOARD_SIZE; i++) {
            for (int j = 0; j < BOARD_SIZE; j++) {
                int x = BOARD_PADDING + j * CELL_SIZE;
                int y = BOARD_PADDING + i * CELL_SIZE;

                gc.strokeRect(x, y, CELL_SIZE, CELL_SIZE);

                if (board[i][j] == 'X') {
                    drawX(gc, x, y);
                } else if (board[i][j] == 'O') {
                    drawO(gc, x, y);
                }
            }
        }
    }

    private void drawX(GraphicsContext gc, int x, int y) {
        gc.setStroke(Color.RED);
        gc.setLineWidth(5);

        gc.strokeLine(x + 10, y + 10, x + CELL_SIZE - 10, y + CELL_SIZE - 10);
        gc.strokeLine(x + CELL_SIZE - 10, y + 10, x + 10, y + CELL_SIZE - 10);
    }

    private void drawO(GraphicsContext gc, int x, int y) {
        gc.setStroke(Color.BLUE);
        gc.setLineWidth(5);

        gc.strokeOval(x + 10, y + 10, CELL_SIZE - 20, CELL_SIZE - 20);
    }

    public static void main(String[] args) {
        launch(args);
    }
}

这段代码使用JavaFX创建了一个窗口,并在窗口中绘制了一个3x3的棋盘。玩家可以通过点击窗口来放置自己的棋子。游戏的状态保存在一个二维数组board中,'X'代表玩家1的棋子,'O'代表玩家2的棋子。

这只是一个简单的示例,实际的Tic tac toe游戏可能还需要实现胜负判断、游戏重置等功能。此外,还可以通过网络通信实现多人对战功能,使用数据库保存游戏记录等。

腾讯云提供了一系列云计算产品,如云服务器、云数据库、云存储等,可以用于支持Tic tac toe游戏的开发和部署。具体的产品介绍和文档可以在腾讯云官方网站上找到。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券