java 五子棋 项目

编程入门 行业动态 更新时间:2024-10-24 12:30:43

java <a href=https://www.elefans.com/category/jswz/34/1769950.html style=五子棋 项目"/>

java 五子棋 项目

一、需求分析

1、界面设计

左:棋盘,单独写一个GamePanel类

右:控制栏panel2

2、功能

2.1 棋盘

首先绘制一个棋盘。考虑重绘,将该绘制写在paint()重写中。

2.2 下棋

用户点击相应位置:计算出棋子的位置,绘制棋子,并存储棋子位置。同样将该绘制写在paint()重写中。

2.3 胜利

胜利判断:横向、竖直、斜向判断

2.4 电脑下棋

使用xxx实现

二、实现

0、Config 常数接口

存在一些数为常量,不须改变。

需要时直接继承该接口。

1、绘制棋盘

我们将UI分为两个板块,左边为游戏区域

将绘制棋盘的功能代码,放在paint()函数中,解决重绘功能

public void paint(Graphics gr){

super.paint(gr);

System.out.println("重绘");

//绘制棋盘

for(int i=0;i

gr.drawLine(X0,Y0+SIZE*i,X0+SIZE*(LINE-1),Y0+SIZE*i);//竖向画线

gr.drawLine(X0+SIZE*i,Y0,X0+SIZE*i,Y0+SIZE*(LINE-1));//横向画线

}

}

2、下棋功能

三、源码

0、

package com.java7.wuziqi0712_win;

public interface Config {

public static final int X0=30;

public static final int Y0=30;

public static final int SIZE=40;//棋盘间隔大小

public static final int LINE=19;//棋盘线条数目

//保存棋子,二维数组对应第i,j个,是否存在棋子,不存在为0;若存在,黑棋为1,白棋为0

public int chessArray[][] = new int[LINE][LINE];

}

1、GameUI

package com.java7.wuziqi0715_ai;

import javax.swing.*;

import java.awt.*;

public class GameUI implements Config {

public static void main(String args[]){

GameUI game = new GameUI();

game.showUI();

}

public void showUI(){

//1.建立面板

JFrame jf = new JFrame();

jf.setTitle("五子棋1.0");

jf.setSize(X0*2+SIZE*(LINE-1)+130,X0*2+SIZE*(LINE-1)+22);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(3);

//2.绘制棋盘

GamePanel gp = new GamePanel();

jf.add(gp);

//3.绘制按钮

JPanel jp2 = new JPanel();

jp2.setBackground(Color.WHITE);

jp2.setPreferredSize(new Dimension(130,0));

//jp2.setBorder(BorderFactory.createLineBorder(Color.red));//设置面板边框颜色

jf.add(jp2,BorderLayout.EAST);

JButton jb1 = new JButton("重新开始");

JLabel lb1 = new JLabel("\n--------\n");

JButton jb2 = new JButton("玩家对战");

JButton jb3 = new JButton("悔棋");

JLabel lb2 = new JLabel("\n--------\n");

JButton jb4 = new JButton("人机对战");

jp2.add(jb1);

jp2.add(lb1);

jp2.add(jb2);

jp2.add(jb3);

jp2.add(lb2);

jp2.add(jb4);

JRadioButton jrb1= new JRadioButton("玩家先手",true);

JRadioButton jrb2= new JRadioButton("电脑先手");

//单选按钮,互斥,一次只能选择一个

ButtonGroup bg = new ButtonGroup();

bg.add(jrb1);

bg.add(jrb2);

jp2.add(jrb1);

jp2.add(jrb2);

jf.setVisible(true);

//3.下棋 :在jf上加鼠标监听器

//画笔

Graphics gr = gp.getGraphics();

//创建监听器对象

GameMouse mouse = new GameMouse(gr,chessArray,jf);

//给面板加上监听器

gp.addMouseListener(mouse);

jb1.addActionListener(mouse);

jb2.addActionListener(mouse);

jb3.addActionListener(mouse);

jb4.addActionListener(mouse);

jrb1.addActionListener(mouse);

jrb2.addActionListener(mouse);

}

}

更多推荐

java 五子棋 项目

本文发布于:2024-02-12 02:04:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1685138.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:五子   项目   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!