我正在实验室工作,这是一个连接四的游戏。我在基本概念方面遇到了麻烦,例如类如何相互通信,如何使用私有实例变量,如何使用ArrayList,如何比较JLabels或将它们设置为可比较的东西......
为了给出一个简单的分类,我有四个类:GUI、游戏、玩家、名称
我可以通过使用两个四循环来创建GUI,游戏是一个7列6块的网格。这些作品是图像,
JLabel Piece = new JLabel("images/blank.png");
例如,表示空白点。
图形用户界面是基于一个JFrame,单一的内容窗格和四个面板,一个是标题,指示谁在玩,谁赢了,另一个是伴随着7行的7个按钮,可能要玩的地方的网格本身,然后是一个按钮面板,让您可以选择重播。
我缺少很多概念。例如,重播按钮应该在游戏结束后才会出现。
我不明白如何使用数组列表。我尝试使用
ArrayList<ArrayList<JLabel>> myList = new ArrayList<ArrayList<JLabel>>();
所以当我通过运行两个for循环来创建GUI时,就像这样
For ( c = 0 ; c<8 ; c++) {
ArrayList<JLabel> column = new ArrayList<JLabel>();
For ( r = 0 ; r<7 ; r++) {
ArrayList<JLabel> row = new ArrayList<JLabel>();
JLabel empty = new JLabel("images/blank.png");
row.add(empty);
}
column.add(row);
}
即使是这一小步,我也已经感到困惑了。我知道上面的两个for循环不正确,特别是ArrayList。我不知道如何创建数组列表并使用它们。
使用类似的东西
column.get().get();
myList.get().get();
来得到一个特定的片段。
我不知道如何将它传递给一个参数,例如,如果我按下第7列的按钮7,并且还没有播放棋子,我可以从第7列第6行的最低区域开始,并将其更新为已播放的棋子,红色或黄色,用于相应的玩家。
这是含糊不清的,我怀疑我能取得任何进展,但我非常需要帮助。助教/老师没有多少时间,我相信我非常缺乏完成这个项目的能力。
我明白它是如何工作的/我必须用文字做什么,但在应用Java代码方面......我将不胜感激任何帮助。
好的,首先,你应该使用一个枚举数组。数组列表适用于许多项目,并且可以有快速变化的数字。数组旨在将数据存放在某种网格中。由于您使用的是静态板,请使用数组!它们的内存占用也少得多。例如:
//Note you should use [column][row] as that is common practice.
States[][] grid = new States[7][6];
//And initialize it:
for(int i = 0; i < grid.length; i++)
for(int o = 0; o < grid[i].length; o++)
grid[i][o] = EMPTY_JLABEL;
然后声明一个枚举(这是一个新类)(注意:将FULL_PLAYER_ONE_JLABEL和FULL_PLAYER_TWO_JLABEL替换为具有每个图像的JLabels):
public enum States {
FULL_PLAYER_ONE(FULL_PLAYER_ONE_JLABEL), FULL_PLAYER_TWO(FULL_PLAYER_TWO_JLABEL), EMPTY(EMPTY_JLABEL);
//The image of the appropriate state.
private JLabel label;
//Enum constructors must be private
private States(JLabel label) {
this.label = label;
}
public JLabel getLabel() {
return label;
}
}
在您的 GUI 中,有一个仅在游戏结束时才添加到帧中的 JButton。此外,还添加一个按钮来指示玩家何时单击了每一列。
JButton button = new JButton();
//Initialize JButton and add to frame...
//Anytime before the frame is set to visible:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/* Perform tests for for what should happen.
For example test whose turn it is then call a method to add a piece to that column. Then call a checker to see if someone has won. If so, display the replay button, otherwise do nothing (allow other player to move).
*/
}
}
我正在制作一个名为SOS的游戏。这是一款3x3的棋盘游戏,与Tic Tac Toe的概念相同,但在这款游戏中,玩家无法选择是以X还是O的身份进行游戏,游戏中唯一的规则是形成“SOS”。 我们的项目应该在所有职位被填补后终止,每个组成的“SOS”将被添加到组成“SOS”的玩家中。 我的问题是关于得分。在第一行输入SOS后,即,我尝试在第二行第一列输入“O”,玩家2将递增。它不应该递增,因为它不满足我
这是我关于堆栈溢出的第一个问题,所以如果我的问题中有一个新手错误,请原谅,请随时更正,因为我计划在未来几个月内更多地使用此网站。 不管怎样,我是高中12年级的学生,我被一个家庭作业问题卡住了。所以基本上我们被分配了一个创建战争游戏(纸牌游戏)的项目,我们被要求每天做一小部分。到目前为止,直到今天一切都很顺利,因此我向你们提出了这个问题。 以下是该项目的内容: 卡片 它有什么: 私有int值:卡的值
很抱歉打扰你们,我是编程新手,一直在这个程序上有问题。 谢了! *********编辑***************我从BMI中删除了int值,但有损转换错误仍然存在。有什么办法解决这个问题吗?
问题内容: 我想我对使用Redis的所有命令都有很好的了解,但是我很难确定使用它的最佳方法。我正在设计一个客户通知系统,当他们的任何电路出现警报时,都会通过他们的首选方法(电子邮件,SNMP,Syslog)通知他们。 这样,我得到一个设备名称和一个端口。我需要将其与一个客户相关联,然后将该客户与一种交付方式相关联。使用关系数据库时,看起来可能像这样: (大大简化了示例)。 我可以看到如何使用列表哈
我正在开发一个基于Java(客户机和服务器)的多人策略游戏。我没有太多的经验在网络游戏,但我做过一些小事情,像一个多功能聊天和2个玩家的抽签tac脚趾与插座。我不是在找人为我编写代码,只是给我一些指导。 游戏经历了多个阶段:首先,用户连接并登录。在他被赋予主持/加入游戏的选择权之后。在他加入一个游戏或者某人加入他的游戏之后,客户端就会继续进入游戏阶段。游戏是1v1的,只需要每隔5秒来回发送数据(如
一 单层神经网络(感知器) 1.结构 下面来说明感知器模型。 在原来MP模型的“输入”位置添加神经元节点,标志其为“输入单元”。其余不变,于是我们就有了下图:从本图开始,我们将权值w1, w2, w3写到“连接线”的中间。 图1 单层神经网络 在“感知器”中,有两个层次。分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。 我