JAVA简单五子棋

JAVA简单五子棋,这几天刚做的,放在CSDN也是为了保存自己的成果吧。``因为只是一名大一生刚接触java所以有些专业词用的不到位。见谅见谅,也没有做悔棋和剩余时间,嘿嘿
在这里插入图片描述

package com.Swing;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/*
五子棋分三大部分,
第一部分是窗口和背景,框架构思还有棋盘棋子可以用drawLine,drawRect,drawstring来完成按钮棋盘和边框,setColor使用颜色,
setColor(new Color(,,,)))自定义颜色,setFont更改字体大小,setStrok(new basicStrok(0.0f))改变线条粗细。
fillOval填充圆形,画出棋子,总的来说白棋黑黑棋已经在棋盘上用二维数组遍历了一遍。

第二部分是监听器,因为五子棋是靠鼠标的使用只用MouseListener就行。通过确定监听范围,消息弹窗即可;
当点击游戏开始时判定==0时canplay由false变成true然后才能开始游戏。
要注意窗口的使用是JOptionPane.showMessageDialog(this,"内容","提示框内容")——只有确认按钮,还是使用JOptionPane.shouwConfirDialog——有确认,取消,否按钮
最后把获胜方法调用到监听器里。当哪一方棋子到达五个时输出结果。

第三部分内部算法,判断输赢,清空棋盘,方法是棋盘遍历,判定方向为横,纵,左上到右下,左下到右上。
使用当有一枚棋子落在棋盘时,会进行个方向的判定,如果有棋子则棋子加一循环判断直到循环到第五个棋子,输出结果,如果棋子不到五个则不做反应

 */
public  class SwingWuZiQi extends JFrame implements MouseListener {
   


    public static final long serialVersionUID = 1L;
    //用来获取屏幕分辨率
    int width = Toolkit.getDefaultToolkit().getScreenSize().width;
    int height = Toolkit.getDefaultToolkit().getScreenSize().height;


    int x, y;
    int[][] qizi = new int[15][15];
    String message = "黑方先手";

    boolean canplay = false;
    boolean isblack = true;
  

    int[] chessb = new int[255];
    int[] chessa = new int[255];
    int countX, countY;

    BufferedImage bgImage = null;//用于插入图片
    BufferedImage agImage=null;
    ImageIcon icon=null;

    public SwingWuZiQi() {
   
//用来使窗口居中
        this.setLocation((width - 500) / 2, (height - 500) / 2);
        this.setTitle("五子棋2.0");//标签
        this.setLayout(null);

        this.setSize(600, 500);//窗口大小
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭动作
        this.setResizable(false);//窗口不可调节
        this.setVisible(true);//运行准备
        this.addMouseListener(this);


        try {
   
            bgImage = ImageIO.read(new File("/Users/mac/Desktop/JAVA游戏照片/五子棋/gufeng.jpg"));
            //照片路径
        } catch (IOException e) {
   
            e.printStackTrace();
        }
        this.repaint();//调用绘画

        try {
   
            agImage = ImageIO.read(new File("/Users/mac/Desktop/JAVA游戏照片/五子棋/muban1.jpg"));
        } catch(IOException e)
        {
   
            e.printStackTrace();
        }
        this.repaint();
    }
    public void paint(Graphics g) {
   
        BufferedImage buf= new BufferedImage(getX(),getY(),BufferedImage
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值