好吧,我是个初学者,正在编写 connect 4 游戏。我已经对所有内容进行了编码,以便两个玩家可以互相对战,但我想添加一个与计算机对战的功能。
我不需要它非常智能并找出放置该零件的最佳位置,我只需要使用像随机函数这样简单的东西来放置它,但我不知道如何做到这一点。
这是我的游戏基本结构代码:
{
makeBoard();
System.out.println("Choose 0 - 5 to pick which column to drop your piece!");
System.out.println("R is red and Y is yellow.");
System.out.println("Player 1, you are red. Player 2, you are yellow.");
System.out.println("Good luck!");
printBoard();
boolean flag = true;
while(flag)
{
dropRed();
printBoard();
if(!redCheck())
{
flag = false;
break;
} //check r
dropYellow();
printBoard();
if(!yellowCheck())
{
flag = false;
break;
} //check y
} // closes while
感谢任何指导,如果您想查看更多代码,请告诉我,谢谢!
最佳答案
I just need to use something as simple as the random function
那么在公共(public) Java API 中查找它可能是个好主意。我真的没有空! https://docs.oracle.com/javase/8/docs/api/java/util/Random.html
下一步是决定如何找到空闲的地方。
显而易见的方法是简单地使用随机类来获取一些坐标并检查它们是否仍然空闲。这有一些缺点,特别是即使有可用的位置,它也有可能永远不会成功。毕竟是随机选择的...
我建议采用一种更像面向对象的方法。
这意味着您拥有可用坐标的列表(而不是数组!)。为此,您需要一个自定义类(数据传输对象 DTO)来保存 X
和 Y
值。
当真正的玩家轮到你时,你可以从这个列表中删除他的选择。 (Java 中数组不是动态的)
随机玩家可以将 nextInt(LIMIT)
方法与列表 size()
getter 结合使用,从可用位置列表中获取随机值。
每一轮都会缩短列表,当列表为空时(您可以使用 empty()
方法检查),gane 就结束了。
关于java - 连接4对电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264420/