我正在用Java编写我自己的第一个国际象棋游戏。 我的代码已经适用于两个玩家,从键盘手动播放,我想将它扩展为一个玩电脑游戏的玩家。
我的问题是,我从未处理过随机动作。 在板上移动一块的方法,需要接收4个输入: 单位的两个整数,以及董事会目的地的两个整数。
选择错误的输入是可以的,因为movePiece方法已经检查了int是否超出了板的界限,它们是否真正达到了当前玩家的颜色,协调中有一块并且它不是空的,等
但是如何随机获得这4个整数?如何使它们尽可能接近“真实”输入(所以我不会花很多时间来取消不良输入)?
非常感谢:D
答案 0 :(得分:2)
Java提供了至少两个生成随机值的选项:
http://docs.oracle.com/javase/6/docs/api/java/util/Random.html http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#random()
E.g。得到以4为界的随机int值:
int x = new Random().nextInt(4);
int y = (int) (Math.random() * 4);
System.out.println(x + " " + y);
>> 2 3
答案 1 :(得分:1)
如果你真的想创造一个随机移动的电脑玩家,我认为这样做会更好:
然而,让计算机玩家随意移动是相当愚蠢的。计算机播放器需要具有某种形式的逻辑来比较两个动作中的哪一个更好。实现这样的逻辑可能相当复杂,你可能最好不要像评论中建议的那样使用国际象棋库。
答案 2 :(得分:0)
您不需要4个整数。你只需要1。
这样做的一种方式: