0

所以现在,这是井字游戏项目,这是计算机对玩家的游戏。在这个游戏项目中,我使用字母“X”和“O”作为十字符号和圆圈符号。它工作正常,没有错误。

现在我正在考虑使用图像而不是字母 X 和 O。请给我建议如何使用图片。我不是在寻找代码,只是给我建议,我应该添加或替换什么。

下面的代码是tic tac toe的代码

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class TicTacToe implements ActionListener {
    /*Instance Variables*/
    static int[][] winCombinations = new int[][] {
            {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, //horizontal wins
            {1, 4, 7}, {2, 5, 8}, {3, 6, 9}, //vertical wins
            {1, 5, 9}, {3, 5, 7}             //diagonal wins
        };
    static JFrame window = new JFrame("Tic-Tac-Toe");
    static JButton buttons[] = new JButton[10];
    static int count = 0;
    static  String letter;
    static boolean win = false;
    static  String myImage =  "X";
    static  String Image = "O";


    public TicTacToe(){
        /*Create Window*/
        window.setPreferredSize(new Dimension(300,300));
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setLayout(new GridLayout(3,3));

        /*Add Buttons To The Window*/
        for(int i = 1; i<=9; i++)
        {
            buttons[i] = new JButton();
            window.add(buttons[i]);

            buttons[i].addActionListener(this);
        }

        /*Make The Window Visible*/
        window.setVisible(true);
        window.pack();
    }

    public void actionPerformed(ActionEvent a) 
    {
        /*Write the letter to the button and deactivate it*/
        for(int i = 1; i<= 9; i++){

            if(a.getSource() == buttons[i]){
                buttons[i].setText(myImage);
                buttons[i].setEnabled(false);
            }
        }

        count++;        
        AI();

    }

    public void AI(){
        count++;


         if(buttons[1].getText().equals(myImage) && buttons[2].getText().equals(myImage) && buttons[3].getText().equals("")){
            buttons[3].setText(Image);
            buttons[3].setEnabled(false);
        } else if(buttons[4].getText().equals(myImage) && buttons[5].getText().equals(myImage) && buttons[6].getText().equals("")){
            buttons[6].setText(Image);
            buttons[6].setEnabled(false);                
        } else if(buttons[7].getText().equals(myImage) && buttons[8].getText().equals(myImage) && buttons[9].getText().equals("")){
            buttons[9].setText(Image);
            buttons[9].setEnabled(false);                
        } 

        else if(buttons[2].getText().equals(myImage) && buttons[3].getText().equals(myImage) && buttons[1].getText().equals("")){
            buttons[1].setText(Image);
            buttons[1].setEnabled(false);                
        } else if(buttons[5].getText().equals(myImage) && buttons[6].getText().equals(myImage) && buttons[4].getText().equals("")){
        buttons[4].setText(Image);
        buttons[4].setEnabled(false);                
        } else if(buttons[8].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[7].getText().equals("")){
            buttons[7].setText(Image);
            buttons[7].setEnabled(false);                
        }

        else if(buttons[1].getText().equals(myImage) && buttons[3].getText().equals(myImage) && buttons[2].getText().equals("")){
            buttons[2].setText(Image);
            buttons[2].setEnabled(false);                
        } else if(buttons[4].getText().equals(myImage) && buttons[6].getText().equals(myImage) && buttons[5].getText().equals("")){
            buttons[5].setText(Image);
            buttons[5].setEnabled(false);                
        } else if(buttons[7].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[8].getText().equals("")){
            buttons[8].setText(Image);
            buttons[8].setEnabled(false);                
        }

        else if(buttons[1].getText().equals(myImage) && buttons[4].getText().equals(myImage) && buttons[7].getText().equals("")){
            buttons[7].setText(Image);
            buttons[7].setEnabled(false);                
        } else if(buttons[2].getText().equals(myImage) && buttons[5].getText().equals(myImage) && buttons[8].getText().equals("")){
            buttons[8].setText(Image);
            buttons[8].setEnabled(false);                
        } else if(buttons[3].getText().equals(myImage) && buttons[6].getText().equals(myImage) && buttons[9].getText().equals("")){
            buttons[9].setText(Image);
            buttons[9].setEnabled(false);                
        }

        else if(buttons[4].getText().equals(myImage) && buttons[7].getText().equals(myImage) && buttons[1].getText().equals("")){
            buttons[1].setText(Image);
            buttons[1].setEnabled(false);                
        } else if(buttons[5].getText().equals(myImage) && buttons[8].getText().equals(myImage) && buttons[2].getText().equals("")){
            buttons[2].setText(Image);
            buttons[2].setEnabled(false);                
        } else if(buttons[6].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[3].getText().equals("")){
            buttons[3].setText(Image);
            buttons[3].setEnabled(false);                
        }

        else if(buttons[1].getText().equals(myImage) && buttons[7].getText().equals(myImage) && buttons[4].getText().equals("")){
            buttons[4].setText(Image);
            buttons[4].setEnabled(false);                
        } else if(buttons[2].getText().equals(myImage) && buttons[8].getText().equals(myImage) && buttons[5].getText().equals("")){
            buttons[5].setText(Image);
            buttons[5].setEnabled(false);                
        } else if(buttons[3].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[6].getText().equals("")){
            buttons[6].setText(Image);
            buttons[6].setEnabled(false);                
        }

        else if(buttons[1].getText().equals(myImage) && buttons[5].getText().equals(myImage) && buttons[9].getText().equals("")){
            buttons[9].setText(Image);
            buttons[9].setEnabled(false);                
        } else if(buttons[5].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[1].getText().equals("")){
            buttons[1].setText(Image);
            buttons[1].setEnabled(false);                
        } else if(buttons[1].getText().equals(myImage) && buttons[9].getText().equals(myImage) && buttons[5].getText().equals("")){
            buttons[5].setText(Image);
            buttons[5].setEnabled(false);                
        }

        else if(buttons[3].getText().equals(myImage) && buttons[5].getText().equals(myImage) && buttons[7].getText().equals("")){
            buttons[7].setText(Image);
            buttons[7].setEnabled(false);                
        } else if(buttons[7].getText().equals(myImage) && buttons[5].getText().equals(myImage) && buttons[3].getText().equals("")){
            buttons[3].setText(Image);
            buttons[3].setEnabled(false);                
        } else if(buttons[7].getText().equals(myImage) && buttons[3].getText().equals(myImage) && buttons[5].getText().equals("")){
            buttons[5].setText(Image);
            buttons[5].setEnabled(false);                
        }

        else if(buttons[1].getText().equals(myImage) && buttons[5].getText().equals(Image) && buttons[9].getText().equals(myImage)) {
            buttons[6].setText(Image);
            buttons[6].setEnabled(false);            
        }    

        else if(buttons[3].getText().equals(myImage) && buttons[5].getText().equals(Image) && buttons[7].getText().equals(myImage)) {
            buttons[4].setText(Image);
            buttons[4].setEnabled(false);            
        }

        else if(buttons[5].getText().equals("")){
            buttons[5].setText(Image);
            buttons[5].setEnabled(false);                
        }

        else if(buttons[1].getText().equals("")){
            buttons[1].setText(Image);
            buttons[1].setEnabled(false);                
        }
        else {
            if(count >= 9)
                checkWin();
            else
                RandomMove();
        }

        checkWin();

    }

    public void RandomMove(){
        Random x = new Random();
        int y = 1 + x.nextInt(9);
        if(buttons[y].getText().equals(Image) || buttons[y].getText().equals(myImage)){
            RandomMove();
        } else {
            buttons[y].setText(Image);
            buttons[y].setEnabled(false);
        }
    }

    public void checkWin(){ 

        /*Determine who won*/
        for(int i=0; i<=7; i++){
            if( buttons[winCombinations[i][0]].getText().equals(buttons[winCombinations[i][1]].getText()) && 
                buttons[winCombinations[i][1]].getText().equals(buttons[winCombinations[i][2]].getText()) && 
                !buttons[winCombinations[i][0]].getText().equals("")) {
                win = true;
            }
        }

        if(count % 2 == 0)
            letter = Image;
        else
            letter = myImage;

        /*Show a dialog when game is over*/
        if(win == true){
            JOptionPane.showMessageDialog(null, letter + " wins!");
            System.exit(0);
        } else if(count >= 9 && win == false){
            JOptionPane.showMessageDialog(null, "The game was tie!");
            System.exit(0);
        }
    }
    public static void main(String[] args)
    {
        new TicTacToe();
    }
}
4

0 回答 0