简单的无禁手五子棋实现

  • 效果图
    • 功能
    • 运行环境说明
    • 源码
      • Board
      • 还有一个 Game , 组合即可
    • 源文件
    • 有疑问看这里

效果图

先来看一下效果图:



功能

悔棋,和棋不做详细说明。

胜场数在效果展示中有相关。

背景可以根据自己的喜好在文件夹中更换,改变背景图片。

落子和触发功能按键时伴有音效。

运行环境说明

编码时使用IDE: eclipse 2020-03
JDK 版本: JDK 1.8

源码

Board

import java.util.Stack;
import java.applet.Applet;
import java.applet.AudioClip;
import java.io.*;
import java.net.*;
class Previous{int x;int y;Previous(int x,int y){this.x=x;this.y=y;}
}
public class Board
{int sum=1;int  chess[][];int  step[][];//创建一个栈用来存放每一步的走式;Stack<Previous> all;public Board() {chess=new int [15][15];step=new int[15][15];all=new Stack<>();}//检查是否能放棋子boolean CheckPut(int x,int y) {if(chess[x][y]==0) return true;return false;}//判断输赢public int CanWin(int x,int y,int clr) {              //根据五子棋规则,黑子先手,则应该有clr=1为黑棋,clr=2为白棋int win=0;//横向判断输赢for(int i=x-4;i<x+5;i++) {if(i<0) continue;             //左右两边出界if(i>14) break;if(chess[i][y]==clr) win++;else win=0;if(win==5) return clr;}win=0;//纵向判断for(int j=y-4;j<y+5;j++) {if(j<0) continue;if(j>14) break;if(chess[x][j]==clr) win++;else win=0;if(win==5) return clr;}win=0;//副对角线判断for(int i=x-4,j=y+4;i<x+5&&j>y-5;i++,j--) {if(i<0||j<0||i>14||j>14) continue;if(chess[i][j]==clr) win++;else  win=0;if(win==5) return clr;}win=0;//主对角线判断for(int i=x-4,j=y-4;i<x+5&&j<y+5;i++,j++) {if(i<0||j<0) continue;if(i>14||j>14) break;if(chess[i][j]==clr)   win++;else  win=0;if(win==5) return clr;}return 0;}//此处下棋,并检查下棋后是否胜利public int ChessHere(int x,int y,int clr) {if(CheckPut(x,y)) {step[x][y]=sum++;chess[x][y]=clr;Previous p=new Previous(x,y);all.push(p);return CanWin(x,y,clr);          //检查此时是否胜利}else return -1;    //CanWin中return 0,在后面会有条件判断}//获取棋盘当前落子状态public int[][] GetChess(){return chess;}//获取步数public int[][] GetStep(){return step;}  //重开public void ReStart() {for(int i=0;i<15;i++) {for(int j=0;j<15;j++) {chess[i][j]=0;//step[i][j]=0;    //步数置零与否都可}}all.clear();sum=1;}//悔棋public void Regret() {if(all.isEmpty()) return ;Previous c=all.pop();chess[c.x][c.y]=0;}public void Music(String s)
{   try {File f;URI  uri;URL url;AudioClip music; f = new File("src/"+s+".wav"); uri = f.toURI();url = uri.toURL();music = Applet.newAudioClip(url);music.play(); } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}  //解析地址
}
}

还有一个 Game , 组合即可

源文件

需要的话点击,迷宫 五子棋 源码 + 报告

笔者邮箱: lzzy604@126.com

对您有帮助的话,就点赞,评论支持一下作者吧。

有疑问看这里

有疑问的话,请在评论区留言或私信笔者。

五子棋的实现 Java课程设计相关推荐

  1. 五子棋 java 课设,五子棋java课程设计

    五子棋java课程设计 目目 录录 一.课程设计任务及要求 1 二.需求分析. 1 2.1 棋盘板块 .1 2.2 聊天板块 .1 2.3 ChatSever .1 2.4 编译环境 .1 2.5 参 ...

  2. 大学java课程设计-简单五子棋

    大学java课程设计-简单五子棋 前言 效果图 课设要求 五子棋介绍 五子棋介绍 游戏玩法 系统需求分析 系统的设计与实现 项目工程结构 运行环境 代码设计 前言 第一次写博客,不知道写些什么,就打算 ...

  3. JAVA课程设计——“小羊吃蓝莓”小游戏

    JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...

  4. Java课程设计基于ssm的微信小程序

    Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟

  5. ATM柜员机JAVA课程设计_ATM柜员机学年论文设计(Java课程设计)

    内容简介: ATM柜员机学年论文设计(Java课程设计),共23页,4599字,附源程序. 一. 程序介绍3 二. 开发环境搭建3 1. MyEclipse 5.5.1 GA安装3 2. MyEcli ...

  6. java中国象棋网络对弈,java课程设计---中国象棋对弈系统

    java课程设计---中国象棋对弈系统 1 目目 录录 摘要 1 关键字 1 正文 2 1.程序设计说明. 2 1.1 程序的设计及实现 2 1.1.1搜索引擎的实现(engine包) . 2 1.1 ...

  7. 计算器小程序java课程设计,java课程设计----计算器小程序报告.doc

    java课程设计----计算器小程序报告.doc #####学院JAVA语言课程设计报告小程序计算器系统管理班级:#######姓名:#####指导老师:###时间:2012年6月25日至6月29日2 ...

  8. ATM柜员机JAVA课程设计_JAVA课程设计报告银行ATM机系统.doc

    JAVA课程设计报告银行ATM机系统 Java课程设计报告 题 目 银行ATM机系统 所在院系 软件学院 学生姓名 金磊 专 业 R机械+软件 班 级 R机械094 学 号 2011年 7 月 15日 ...

  9. java课程设计 考试系统,java课程设计考试系统.

    java课程设计考试系统.Tag内容描述: 1.目 录 第一章第一章 引言引言 3 1 1目的 3 1 2名词解释 3 1 3参考资料 3 1 4文档结构 3 第第 2 章章远景远景 4 2 1项目概 ...

  10. Java课程设计报告--绩效考核信息管理系统

     Java课程设计报告 题目      绩效考核信息管理系统    学生姓名         学    号                   院    系        年级专业计算机科学与技术 班 ...

最新文章

  1. spring aop 应用实例
  2. VTK:vtkNew<vtkDenseArray<double>>用法实战
  3. 使用myeclipse建立maven项目(重要)
  4. 一文读懂视频监控系统全过程内容
  5. 想在“双十一”做“爆款”?你的数据库存能支撑吗?
  6. app开发第二次总结
  7. intellij idea 使用 git stash
  8. 精细加工领域中超快激光的应用
  9. 一元云购qq互联回调地址错误解决办法
  10. murmur3哈希算法
  11. DGV中复选框第一列可编辑 ,第一列固定显示
  12. HSSFWorkbook EXCEL导出
  13. poj java 提交_POJ代码提交器 QNetworkAccessManager post get
  14. ABAP 供应商主数据批量导入
  15. SPEC2000程序编译和性能热点分析
  16. 俄方产量也将削减恐左右油价未来走势
  17. java 设计一个动物声音“模拟器”
  18. e代理与和合首创达成战略合作,共创WealthTech生态圈
  19. mac(object c)开发入门
  20. 智能导诊--菜鸡的程序人生

热门文章

  1. 六度好友算法【转载】
  2. 记录一下把域名从阿里云服务商转入到华为云
  3. BERT模型—2.BERT模型预训练与微调
  4. android休闲游戏,休闲放松是王道 六款安卓休闲游戏推荐
  5. 【Excel】正态分布函数 NORM.DIST / 标准差STDEV.S、STDEV.P
  6. 宝塔nginx自编译云锁web防护教程
  7. C语言——输出一个正方形
  8. DDR SDRAM内存测试的一种官方方案(简单易懂)
  9. Bugku CTF 抄错的字符 WP
  10. matlab练习程序(图像放大/缩小,双线性插值)