Random actions in JAVA
我正在用Java编写我自己的第一个象棋游戏。我的代码已经适用于两个玩家,从键盘手动播放,我想把它扩展到一个玩家对电脑游戏。
我的问题是,我从来没有处理过随机行为。在板上移动工件的方法需要接收4个输入:两个整数表示工件位置,两个整数表示板上的目的地。
选择错误的输入是可以的,因为movepiece方法已经检查了ints是否不在棋盘的边界之外,是否真的达到了当前玩家的颜色,是否有一个棋子在协调中,并且它不是空的,等等。
但我如何随机得到这4个整数呢?如何使它们尽可能接近"真实"输入(这样我就不会花费大量时间取消错误输入的资格)?
多谢了:D
Java提供至少两个选项来生成随机值:
http://docs.oracle.com/javase/6/docs/api/java/util/random.htmlhttp://DOCS.Oracle .COM/JavaSe/ 6 /DOCS/API/Java/Lang/Maunix.html随机化()
例如,要获得以4为界的随机int值:
1 2 3 4 5 6 |
如果你真的想创造一个随机移动的电脑玩家,我想最好这样做:
然而,让电脑播放器随意移动是相当愚蠢的。一个电脑玩家需要有某种逻辑来比较两个动作中哪一个更好。实现这样的逻辑可能相当复杂,而且您最好使用象棋库,正如评论中有人建议的那样。
你不需要4分。你只需要一个。
一种方法: