五子棋小游戏

这是一个五子棋小游戏的实现,包括棋盘绘制、棋子放置、输赢判断和悔棋功能。项目由两个成员合作完成,分别负责界面设计和游戏逻辑。游戏支持黑子先行,具备判断五子连珠的条件,以及悔棋和认输的功能。代码中实现了鼠标监听,处理玩家的点击操作,通过自定义的WinLose方法检查游戏状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

团队成员及任务

小组成员
队长:

卿松林 软工20-1 202086010046

负责模块:

整个程序结构的构思,输赢判断实现,悔棋功能实现

队员

张坤宁 计科20-1 202086010012

负责模块:JFrame容器的设置,界面绘制,鼠标监视器与功能之间的连接

项目简介与要求

本项目意在创建一个五子棋小程序

有五子棋判断输赢的条件

有五子棋的悔棋功能

重新开始游戏

直接认输等功能

项目功能架构图、主要功能流程图

在这里插入图片描述

项目运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心代码

package wzq;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
 
public class game extends JFrame implements MouseListener,imformation {
   
    public static void main(String[] args) {
   
        game mj=new game();
        mj.myJFrame();
    }
    public static final Color Light_Brown = new Color(153,102,0);
    int x = 0, y = 0 ;//保存棋子坐标
    int jl = 0;//步数
    int[][] SaveGame = new int[16][16];//保存每个棋子
    int [] bsx = new int[260];
    int [] bsy = new int[260];
    int qc = 1;//记录白棋=2,黑棋=1
    int qn = 0;//判断棋子是否重复
    boolean canplay = true;//判断游戏是否开始和结束
    String go = "黑子先行";
    //---------------------------------------------------------------------------------------------------------------------
    //窗体
    public void myJFrame() {
   
 
        setTitle("五子棋"); //标题
        setSize(cw, cy); //窗口大小
        setResizable(false); //窗口是否可以改变大小=否
        setDefaultCloseOperation(game.EXIT_ON_CLOSE);//窗口关闭方式为关闭窗口同时结束程序
 
        int width = Toolkit.getDefaultToolkit().getScreenSize().width;//获取屏幕宽度
        int height = Toolkit.getDefaultToolkit().getScreenSize().height;//获取屏幕高度
//        System.out.println("宽度:"+width);//测试
//        System.out.println("高度:"+height);//测试
 
        this.setLocation((width - 800) / 2, (height - 600) / 2); //设置窗口默认位置以屏幕居中
 
        this.addMouseListener(this);
 
        this.setVisible(true); //窗口是否显示=是
    }
 
 
    //---------------------------------------------------------------------------------------------------------------------
    //覆写paint方法,绘制界面
    public void paint(Graphics g) {
   
 
        //双缓冲技术防止屏幕闪烁
        BufferedImage bi = new BufferedImage(800, 600, BufferedImage.TYPE_INT_ARGB);
        Graphics g2 = bi.createGraphics();
 
        //获取图片路径
        BufferedImage image = null;
        try {
   
            image = ImageIO.read(new File("src/wzq/1.png"));
        } catch (IOException e) {
   
            e.printStackTrace();
        }
        g2.drawImage(image, 70, 50, this);//显示图片
 
        g2.setColor(Color.BLACK);//设置画笔颜色
        g2.setFont(new Font("华文行楷", 10, 50));//设置字体
        g2.drawString("   五子棋", 530, 100)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值