java五子棋中怎么让棋子不消失五子棋没子了能移棋嘛

2023-08-10 20:36:01 浏览

java五子棋下过的位置不能再下了的原因是棋子不能重复下在同一个坐标。根据查询相关公开信息显示,java五子棋中在已经落有棋子的地方不能再落棋子,这是下棋的基本要求。五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯粹型棋类游戏,双方分别使用黑白两色棋子,下在棋盘直线与横线的交叉点上,先形成五子连线的一方获胜。

java五子棋中怎么让棋子不消失五子棋没子了

intcolor=0;//旗子的颜色标识0:白子1:黑子

intbodyArray[][]=newint[16][16];//设置棋盘棋子状态0无子1白子2黑子

if(ckbHB[0].getState())//选择黑子先还是白子先

if(color==1)//判断黑子还是白子

chessBo[next.x][next.y]=true;//用这个时,黑白子可交替出现,

//chessBo[r01][r02]=true;//用这个代替上面那个时黑白子不可交替了,不知道为什么会这样

//加入判断胜负的方法winkill()

出错原因都写在程序内了

棋嘛

通过数组进行判定,如果这个地方的值不为空则是已经有棋子占位了!

给一个数组记录已经下了的棋的位置,0表示没有旗子,1表示有旗子,用你即将要走的那步棋的位置一对比就知道有没有子了

//publicJFrame(Stringtitle)创建一个新的、初始不可见的、具有指定标题的Frame。

//publicvoidsetDefaultCloseOperation(intoperation)设置用户在此窗体上发起"close"时默认执行的操作

//operation-用户关闭该窗体时应该执行的操作

//DO_NOTHING_ON_CLOSE(在WindowConstants中定义):不执行任何操作;

//publicvoidaddWindowListener(WindowListenerl)添加指定的窗口侦听器,以从此窗口接收窗口事件。如果l为null,则不抛出任何异常,且不执行任何操作。

//publicvoidsetContentPane(ContainercontentPane)设置contentPane属性。此方法由构造方法调用。

//这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列

//五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:

//NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一

//publicvoidadd(Componentcomp,Objectconstraints)将指定的组件添加到此容器的尾部

//comp-要添加的组件constraints-表示此组件的布局约束的对象

//publicvoidsetBorder(Borderborder)设置此组件的边框。

//Border对象负责定义组件的insets(直接对组件重写所有insets设置),并且可选地呈现这些insets范围内的边框装饰。要为

//swing组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是insets)。在单个组件中可使用复合边框来嵌套多个边框。

//类EmptyBorder该类提供了一个占用空间但不执行绘制的空透明边框。

//top边框顶部inset,left边框左部inset,bottom边框底部inset,right边框右部inset

//创建具有指定行数和列数的网格布局。给布局中的所有组件分配相等的大小。

//rows-该rows具有表示任意行数的值零

//cols-该cols具有表示任意列数的值零

//4行一列,水平,垂直间距

p.setBorder(newTitledBorder("工具"));//加外框和标题

start.addActionListener(newActionListener(){//addActionListener添加指定的动作侦听器,以接收发自此按钮的动作事件。

//publicGridLayout(introws,intcols)创建具有指定行数和列数的网格布局。给布局中的所有组件分配相等的大小。

//rows和cols中的一个可以为零(但不能两者同时为零),这表示可以将任何数目的对象置于行或列中。

//publicvoidsetBackground(Colorbg)设置此组件的背景色。

cells[i][j].setBorder(newLineBorder(Color.red));//设置此组件的边框

//类JLabel用于短文本字符串或图像或二者的显示区。

//类LineBorder实现单色、任意厚度线边框的类。

//publicLineBorder(Colorcolor)创建具有指定颜色、厚度为1(thickness=1)的线边框。

//alignment-SwingConstants中定义的以下常量之一:

//publicvoidaddMouseListener(MouseListenerl)添加指定的鼠标侦听器,以接收发自此组件的鼠标事件。

//l-鼠标侦听器。如果侦听器l为null,则不会抛出异常并且不执行动作。

//类MouseAdapter接收鼠标事件的抽象适配器类。此类中的方法为空。此类存在的目的是方便创建侦听器对象。

//鼠标事件使用户能够跟踪鼠标何时被按下、释放、单击、移动、拖动、何时进入一个组件、何时退出、何时滚动鼠标滚轮。

//publicvoidmouseClicked(MouseEvente)鼠标按键在组件上单击(按下并释放)时调用。

setIcon(blackIco);//publicvoidsetIcon(IcondefaultIcon)设置按钮的默认图标。如果没有显式地设置按下的图标,则此图标还被用作“按下”和“禁用”图标。

//类JOptionPane,JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。

//调出带有选项Yes、No和Cancel的对话框;

//parentComponent-确定在其中显示对话框的Frame;如果为null或者parentComponent不具有Frame,则使用默认的Frame

String[]msg={"黑方厉害!","白方牛人!"};

JOptionPane.showMessageDialog(win,"结束了!请重新开始!");

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。