java编程实现国际象棋棋盘

本文实例为大家分享了java编程实现国际象棋棋盘的具体代码,供大家参考,具体内容如下

问题描述:

打印出国际象棋棋盘(黑白交错)

问题分析:

棋盘由八块黑白相间的方块组成,通过swing编程实现。其中用标签来实现方块,在方块中填充黑或白色。通过i,j来遍历行和列,以i和j的值来判断填充什么颜色

代码分析

import javax.swing.*;
import java.awt.*;

public class _2ChessBoard {
 public static void main(String[] args) {
 //新建窗口
  JFrame jFrame=new JFrame("国际象棋棋盘");
  //设置窗口的大小(八个格子,每个格子宽,高为20个像素)
  jFrame.setSize(160,160);
  //窗口的位置
  jFrame.setLocation(300,300);
  //格子的行数,列数
  int m=8;
  //格子的像素
  int n=20;
  for(int i=0;i<m;i++){
   for(int j=0;j<m;j++){
   //在每个位置添加标签
    JLabel jLabel=new JLabel();
    //标签的大小为格子的大小
    jLabel.setSize(n,n);
    //标签的位置为索引乘以格子的高度/宽度
    jLabel.setLocation(i*n,j*n);
    //放置黑色方块
    if((i+j)%2==0){
     jLabel.setBackground(Color.BLACK);
     //设置不透明度为不透明
     jLabel.setOpaque(true);
    }else{
    //放置白色方块
     jLabel.setBackground(Color.WHITE);
     jLabel.setOpaque(true);
    }
  //设置边界颜色   jLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    jFrame.add(jLabel);
   }
  }
  //窗体设置可见
  jFrame.setVisible(true);
  //关闭退出
  jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

完整代码

import javax.swing.*;
import java.awt.*;

public class _2ChessBoard {
 public static void main(String[] args) {
  JFrame jFrame=new JFrame("国际象棋棋盘");
  jFrame.setSize(160,160);
  jFrame.setLocation(300,300);
  int m=8;
  int n=20;
  for(int i=0;i<m;i++){
   for(int j=0;j<m;j++){
    JLabel jLabel=new JLabel();
    jLabel.setSize(n,n);
    jLabel.setLocation(i*n,j*n);
    if((i+j)%2==0){
     jLabel.setBackground(Color.BLACK);
     jLabel.setOpaque(true);
    }else{
     jLabel.setBackground(Color.WHITE);
     jLabel.setOpaque(true);
    }
    jLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    jFrame.add(jLabel);
   }
  }
  jFrame.setVisible(true);
  jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

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

(0)

相关推荐

  • java打印国际象棋棋盘的方法

    本文实例为大家分享了java打印出国际象棋棋盘的具体代码,供大家参考,具体内容如下 问题分析 观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块.这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块. (1)确定程序框架 这是一个绘图案例,这里我们采用JFrame创建窗口,然后在窗口里添加JLabel标签组件,通过前面的问题分析可知,JLabel标

  • Java基于分治算法实现的棋盘覆盖问题示例

    本文实例讲述了Java基于分治算法实现的棋盘覆盖问题.分享给大家供大家参考,具体如下: 在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖.四个L型骨牌如下图: 棋盘中的特殊方格如图: 实现的基本原理是将2^k * 2^k的棋盘分成四块2^(k - 1) * 2^(k - 1)的子棋盘,特殊方格一定在其中的一个子棋盘中,如果特殊方格在某一个子棋盘中,继续递归处理这个子棋盘,直到这个子棋盘中只有一个方格为止如果特殊方格不

  • java绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码:  一.中国象棋棋盘代码 import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class ChineseChese extends Frame{

  • Java实现两人五子棋游戏(二) 画出棋盘

    本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这张图片. DrawChessBoard.java package xchen.test.simpleGobang; import java.awt.Graphics; import java.awt.Image; impor

  • java使用swing绘制国际象棋棋盘

    本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.Color; import java.awt.Point; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; public class guo_ji_xiang_qi_qipan { public static void main(

  • java编程实现国际象棋棋盘

    本文实例为大家分享了java编程实现国际象棋棋盘的具体代码,供大家参考,具体内容如下 问题描述: 打印出国际象棋棋盘(黑白交错) 问题分析: 棋盘由八块黑白相间的方块组成,通过swing编程实现.其中用标签来实现方块,在方块中填充黑或白色.通过i,j来遍历行和列,以i和j的值来判断填充什么颜色 代码分析 import javax.swing.*; import java.awt.*; public class _2ChessBoard { public static void main(Stri

  • Linux Shell编程绘制国际象棋棋盘

    这两天在学习一些shell编程的知识,在做到一道国际象棋的题目时,觉得有些意思,就将它写成博客. 先来看看国际象棋棋盘长啥样: 仔细想了会棋盘的分布规则,这个问题肯定有很多思路,我自己想到的是规则是 1.将棋盘行数作为一个大循环,循环8次,每次循环根据行号的奇偶来确定格子颜色的次序: 2.在单个行中,循环8次并判断列的奇偶数来确定打印颜色 以上思路能够打印出最简单的棋盘,但是shell中一个空格的显示形状并非正方形,而且是空格的高度大于宽度.因此需要在单个棋盘的行的打印循环外在加一层控制打印空格

  • shell脚本打印国际象棋棋盘

    本文实例为大家分享了shell打印国际象棋棋盘的具体代码,供大家参考,具体内容如下 代码如下: #!/bin/bash #set chess cell's width read -p "Please set the chess cell's width( two space width as unit ):" width if [[ $width =~ "^[0-9]+$" ]];then echo "wrong width setting, check

  • Java编程实现五子棋人人对战代码示例

    利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识.w表示白棋,b表示黑棋 import java.util.Scanner; public class MainMethod { public static char[][] c = new char[10][10]; public static void main(String[] args) { MainMethod mainMethod = new MainMethod(); mainMethod.init()

  • python输出国际象棋棋盘的实例分享

    国际象棋是当今国际上最流行的智力体育运动项目.青年人下棋可以锻炼思维.增强记忆力和培养坚强的意志:中年人下棋可以享受美学:老年下棋可以很好的休息娱乐.国际象棋游戏有自己的规则,需要两个人将棋子落在棋盘上. 棋子落在棋盘上事件,在计算机看来,是一段程序,而这些程序又由一系列的指令组成.关心编程语言的使用趋势的人都知道,最近几年,国内最火的两种语言非 Python 与 Go 莫属,今天,我们就在计算机上用python开启一段输出国际象棋棋盘的编程之旅. 程序分析:用i控制行,j来控制列,根据i+j的

  • Java编程删除链表中重复的节点问题解决思路及源码分享

    一. 题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 二. 例子 输入链表:1->2->3->3->4->4->5 处理后为:1->2->5 三. 思路 个人感觉这题关键是注意指针的指向,可以定义一个first对象(值为-1,主要用于返回操作后的链表),first.next指向head,定义一个last同样指向first(主要用于操作记录要删除节点的前一个节点),定义一个p指向head,指向当前节点.

  • Java编程实现从尾到头打印链表代码实例

    问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; ListNode(int val){ this.val = val; } } 思路1:此题明显想到是利用栈的思想,后进先出,先遍历链表,依次将结点值进栈.最后在遍历栈出栈. public static Stack<Integer> printListReverse_Stack(ListNode li

  • Java编程基础测试题分享

    单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A.  int i=10; B.  float f=1.1;     //float f=1.1f C.  double d=34.4; D.  byte b=127; long类型的数据加后缀L或者l float类型的数据加后缀F或者f 整数默认是int类型 浮点数默认是double类型 2. 下面哪个不是java中的关键字?(C) A. public B.  true C.  main D.  class 3. 下面程序哪个语句是

随机推荐