我真的是JAVA的新手,我正在制作井字游戏,我完成了玩家对玩家的游戏,现在我想做玩家对玩家的cpu,我要做的就是当玩家单击按钮以出现X时, cpu会随机选择其按钮以使O出现,但我不知道随机执行操作的代码
我在互联网上搜索了一个小时,仍然没有结果 这是我的代码
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
//my code here to set text and background etc
if(jButton3.getActionCommand().equals("X") && jButton1.getActionCommand().equals("") && jButton2.getActionCommand().equals("")){
//this where i wanna random between 2 button action
}
我希望CPU在两者之间进行选择
jButton1ActionPerformed(evt);
jButton2ActionPerformed(evt);
但是我真的不知道该怎么做
答案 0 :(得分:0)
我将您的问题解释为在用户执行移动后,我该如何编写一个函数,用字母'O'随机标记剩余的正方形之一。用评论纠正我如果我弄错了。
由于我不知道代表您的cpu播放器的代码的确切性质,因此我将提供可以实施的高级解决方案。
1。。首先,在玩家用字母“ X”标记一个正方形后,您必须检查哪些正方形仍未标记。您可以通过在游戏开始时初始化一个1到9的整数ArrayList来实现,该ArrayList表示仍未标记的正方形(按钮)。
图:井字游戏板编号
2。。其次,每次玩家或cpu标记一个正方形时,从列表中删除相应的Integer。
3。。以您当前的状态监视按钮动作事件,并添加以下代码。 (我们的整数ArrayList名为unmarked_boxes)。
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
//my code here to set text and background etc
if(jButton3.getActionCommand().equals("X") && jButton1.getActionCommand().equals("") && jButton2.getActionCommand().equals("")){
Random rand_gen = new Random();
int index_selected = rand_gen.nextInt(unmarked_boxes.size());
box_selected = unmarked_boxes.remove(index_selected);
/*
here you select and mark the button which corresponds to the box
selected. i.e. if the box_selected = 3, then find and mark button3 (not sure
how you access your buttons).
*/
}
注意:如果您只选择在2个正方形之间选择,那您就定格了,那就忘了我描述的ArrayList方法。只需调用rand_gen.nextBoolean()并插入一条if语句,该语句选择一个按钮为true,另一个为false。
这足以让您开始实施解决方案,
祝你好运