gpt4 book ai didi

java - 如何使用 Java 中的 math.random() 函数让计算机在 Connect4 游戏中选择随机列?

转载 作者:行者123 更新时间:2023-12-02 09:57:12 26 4
gpt4 key购买 nike

我一直在用 Java 创建一个四连子游戏。最初,它是为两个人类玩家相互对战而设计的。但是,我现在尝试使用 math.random()第二个玩家(现在是计算机)的功能,以便计算机选择一个随机列来放置计数器(不一定是好或坏的举动,只是随机的)。

目前,math.random()函数只是在人类玩家每次走完后放置计数器的位置上放置一个计数器。我如何获得math.random()函数选择 0 到 6 之间的随机列?

我知道我的代码存在重复/重复/格式不正确,在成功解决此 AI 功能后,我将重构我的代码。

play.java

public class play {

private Connect4Game connect;
public play(Connect4Game connect) {
this.connect=connect;
}

public void playGame() {
System.out.println("Welcome to Connect 4");
System.out.println("To play the game type in the number of the column you want to drop you counter in");
System.out.println("Player One = r Player 2 = y");
System.out.println("");


board boardObj = new board(connect);
boardObj.printBoard();


boolean win = false;
while(!win){

// player 1
String userInput = getUserInput();
int move = Integer.parseInt(userInput);

counter counterObj = new counter(connect);
counterObj.placeCounter('r', move);


boolean hasWon = false;
int count = 0;

// check horizontal
for(int i=0; i<connect.board.length; i++){
for(int j=0; j<connect.board[i].length; j++){
if(connect.board[i][j] == 'r'){
count = count + 1;
if(count == 4){
hasWon = true;

}
}
else{
count = 0;
}
}

}

// check vertical
count = 0;
for(int i=0; i<connect.board[0].length; i++){
for(int j=0; j<connect.board.length; j++){
if(connect.board[j][i] == 'r'){
count = count + 1;
if(count >= 4){
hasWon = true;

}
}
else{
count = 0;
}
}

}
boardObj.printBoard();
if(hasWon){
win = true;
System.out.println("You Have Won!!!");
}

else {

//Computer player
math.random();


counterObj.placeCounter('y',move);


hasWon = false;
count = 0;

// check horizontal
for(int i=0; i<connect.board.length; i++){
for(int j=0; j<connect.board[i].length; j++){
if(connect.board[i][j] == 'y'){
count = count + 1;
if(count >= 4){
hasWon = true;

}
}
else{
count = 0;
}
}

}

// check vertical
count = 0;
for(int i=0; i<connect.board[0].length; i++){
for(int j=0; j<connect.board.length; j++){
if(connect.board[j][i] == 'y'){
count = count + 1;
if(count >= 4){
hasWon = true;

}
}
else{
count = 0;
}
}

}
boardObj.printBoard();
if(hasWon){
win = true;
System.out.println("You Have Won!!!");
}
}

}

}



public String getUserInput(){
String toReturn = null;
try{
toReturn = connect.input.readLine();
}
catch(Exception e){

}
return toReturn;
}

最佳答案

您可以通过以下方式获得随机数:

Random r = new Random();
int num = r.nextInt(7);

我设置了 7 而不是 6,因为最大值是不包括的。所以如果我输入 6,它会给你一个从 0 到 5 的数字。

关于java - 如何使用 Java 中的 math.random() 函数让计算机在 Connect4 游戏中选择随机列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55916168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com