本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下

棋盘模块:

画五子棋棋盘:19条横线、19条竖线

步骤一:显示棋盘

我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这张图片。

DrawChessBoard.java

package xchen.test.simpleGobang;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import javax.swing.JPanel;

public class DrawChessBoard extends JPanel{

public Image boardImg;

public DrawChessBoard() {

boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard.png");

if(boardImg == null)

System.err.println("png do not exist");

}

@Override

protected void paintComponent(Graphics g) {

// TODO Auto-generated method stub

super.paintComponent(g);

int imgWidth = boardImg.getWidth(this);

int imgHeight = boardImg.getHeight(this);

int FWidth = getWidth();

int FHeight= getHeight();

int x=(FWidth-imgWidth)/2;

int y=(FHeight-imgHeight)/2;

g.drawImage(boardImg, x, y, null);

}

}

Main.java

package xchen.test.simpleGobang;

import java.awt.Container;

import javax.swing.JFrame;

import xchen.test.simpleGobang.DrawChessBoard;

public class Main extends JFrame{

private DrawChessBoard drawChessBoard;

public Main() {

drawChessBoard = new DrawChessBoard();

//Frame标题

setTitle("单机五子棋");

Container containerPane =getContentPane();

containerPane.add(drawChessBoard);

}

public static void main(String[] args) {

Main m = new Main();

m.setVisible(true);

}

}

运行一下

步骤二:为棋盘画上横竖线

DrawChessBoard.java

package xchen.test.simpleGobang;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import javax.swing.JPanel;

public class DrawChessBoard extends JPanel{

public Image boardImg;

final private int ROWS = 19;

public DrawChessBoard() {

boardImg = Toolkit.getDefaultToolkit().getImage("res/drawable/chessboard2.png");

if(boardImg == null)

System.err.println("png do not exist");

}

@Override

protected void paintComponent(Graphics g) {

// TODO Auto-generated method stub

super.paintComponent(g);

int imgWidth = boardImg.getWidth(this);

int imgHeight = boardImg.getHeight(this);

int FWidth = getWidth();

int FHeight= getHeight();

int x=(FWidth-imgWidth)/2;

int y=(FHeight-imgHeight)/2;

g.drawImage(boardImg, x, y, null);

int margin = x;

int span_x=imgWidth/ROWS;

int span_y=imgHeight/ROWS;

//画横线

for(int i=0;i

{

g.drawLine(x, y+i*span_y, FWidth-x,y+i*span_y);

}

//画竖线

for(int i=0;i

{

g.drawLine(x+i*span_x, y, x+i*span_x,FHeight-y);

}

}

}

Main.java不变

运行一下

遇到的问题:

1)Eclipse不识别文件夹下的图片

问题:文件夹中有图片,但是在Eclipse项目栏中不显示

解决办法:在Eclipse中,选中根目录,F5 refresh,就显示出来了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java画五子棋盘_Java实现两人五子棋游戏(二) 画出棋盘相关推荐

  1. java五子棋棋盘_Java实现两人五子棋游戏(二) 画出棋盘

    此文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根 ...

  2. Java实现一个简单的两人五子棋游戏(一) 系统设计

    实现一个基本的单机五子棋功能 该五子棋棋盘大小为19*19的网格,玩家可以通过鼠标点击棋盘来落子,当出现五连珠时,提示一方胜出~ 1)模块划分 主模块:调用其他模块实现五子棋功能 棋盘模块:绘制五子棋 ...

  3. Java黑皮书课后题第8章:***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中。谁先实现一行、一列或者一对角线上有4个相同颜色的棋子。

    ***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中.谁先实现一行.一列或者一对角线上有4个相同颜色的棋子 题目 题目描述与运行示例 破题 代码 题目 题目描述 ...

  4. C语言简单五子棋两人/五子棋人机

    对于初学C语言的同学,五子棋不可谓不是一个好的练习.我们不但要考虑玩家及电脑的落子,还要考虑棋盘是否已满.是否有一方已经获得胜利.因此我们要考虑好各种情况,设定好函数及循环. 下面是两人五子棋的简单代 ...

  5. 1、两人做游戏,轮流报数,报出的数只能是1、2、3、4、5、6、7、8其中之一,把两个人报出的数连加起来,谁报数后加起来的和是123,谁就获胜,让你先报,为了确保胜利,你第一个数报多少?

    看到一道奥数题,如下 两人做游戏,轮流报数,报出的数只能是1.2.3.4.5.6.7.8其中之一,把两个人报出的数连加起来,谁报数后加起来的和是123,谁就获胜,让你先报,为了确保胜利,你第一个数报多 ...

  6. java五子棋盘_Java实现一个简单的两人五子棋游戏(二) 画棋盘

    棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这 ...

  7. 适合智商180以上的两人对弈游戏

    今天在- 33IQ http://www.33iq.com/group/topic/43251/这个网站上看到的,相当于一个博弈吧,挺有意思的 请别介意我用了一个如此有噱头的名字作为这个游戏的名字. ...

  8. div和div之间画横线_HTML如何在两个div标签中间画一条竖线

    近日在画一个界面的时候,遇到一个需求:在界面当中画一条竖线,且这条竖线在高度上需要自动占满整个父div(即这条竖线的高度和两个div中较高的一个等高). 往常我们画一条横线直接用标签 即可,当画一条竖 ...

  9. java五子棋实验报告6_Java实现两人五子棋游戏(六) 行棋方变换

    前面我们已经画好棋盘和棋子,并可以自由落子,且可以判断棋盘中是否有五连珠.接下来的工作是,每次落子后交换行棋方(即将下一棋子颜色由白->黑或黑->白),并将胜出判断增加颜色判断条件(棋盘上 ...

最新文章

  1. 科研必备:10款提升科研效率的神器
  2. android studio 导入、移除module、以及加载module中的jar包
  3. Linux CentOS7 rsync通过服务同步、linux系统日志、screen工具
  4. springboot整合redis操作缓存(将查询到的数据放在缓存中)
  5. 快速排序(quick sort)
  6. 母版事件中注册javascript脚本
  7. elctron项目_electron项目结构介绍
  8. Java多线程学习总结(3)——Java线程的6种状态及切换
  9. 互联网流量劫持的背后:黑客月入至少三万
  10. 《Java程序员职场全攻略:从小工到专家》连载十三:给自己估个好价
  11. 如何在 Mac 上将PDF 转换为 Word?
  12. OSPFv3报文格式与作用分析
  13. 超全深度学习细粒度图像分析:项目、综述、教程一网打尽
  14. VS2013 百度云资源以及密钥
  15. 债券中的久期是什么意思
  16. 第七十一章 SQL函数 LAST_DAY
  17. Infor SunSystems咨询服务市场报告-市场规模、市场份额、市场定位、产品类型以及发展规划
  18. vnc以及xfce安装\xrdp连接
  19. 社群运营中KOL的作用
  20. arthes—线上debug好帮手

热门文章

  1. CGI上传文件以及大小限制修改
  2. 【7】Spring Boot系列之REST Docs
  3. 达人评测 锐龙r7 5800x3D相当于i几 r75800x3d参数
  4. 表情自动生成器java代码实现
  5. setaspectratio函数_ProCAST介绍及菜单详解分解
  6. SCR Screen Recorder Pro 0.21.7 汉化专业版(安卓手机屏幕录像软件)
  7. 自学Java篇之JFrame创建《石头迷阵小游戏》
  8. 2018上半年软件设计师下午真题及答案
  9. OPC通讯的安全防护
  10. 【愚公系列】2022年09月 python人工智能-PyTorch环境配置及安装