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