對於我的作業,我應該使用java創建一個Rock,Paper,Scissors遊戲。但是,還有一個轉折點。計算機應根據用戶之前選擇的武器選擇最有可能擊敗用戶的武器。例如,如果用戶選擇了紙張3次,但每次只選擇了1次Rock和Scissors,計算機應該選擇剪刀作爲最有可能擊敗紙張的武器,這是迄今爲止用戶最常用的選擇。這是我到目前爲止:使用AI Java的岩石紙剪刀遊戲
import java.util.Random;
import java.util.Scanner;
public class CSCD210HW3
{
public static void main(String[] args)
{
displayGreeting();
computerChoice();
gameCode();
}
public static void displayGreeting()
{
System.out.print("This is the classic Rock, Paper, Scissors game everyone has grown to know and love. The \nrules are the same. Paper beats rock, rock beats scissors, scissors beats paper. Good luck fool!");
System.out.println();
}
public static String computerChoice()
{
Random randomGenrator = new Random();
int randomNumber = randomGenrator.nextInt(3);
int cpuRock = 0;
int cpuPaper = 0;
int cpuScissors = 0;
String weapon = "nothing";
switch(randomNumber)
{
case 0:
weapon = "rock";
cpuRock++;
break;
case 1:
weapon = "paper";
cpuPaper++;
break;
case 2:
weapon = "scissors";
cpuScissors++;
break;
}
return weapon;
}
public static String playerChoice()
{
Scanner kb = new Scanner(System.in);
String input = "";
System.out.println();
System.out.print("Please Choose Your Weapon: ");
input = kb.next();
String inputLower = input.toLowerCase();
return inputLower;
}
public static void gameCode()
{
int ties = 0;
int playerWins = 0;
int compWins = 0;
int userScissors = 0;
int userRock = 0;
int userPaper = 0;
String player;
String comp;
do
{
player = playerChoice();
if(player == "scissors")
{
userScissors++;
}
else if(player == "rock")
{
userRock++;
}
else if(player == "paper")
{
userPaper++;
}
comp = computerChoice();
if(player.equals("rock")&&comp.equals("rock"))
{
System.out.println("You and the Computer Both Chose Rock. It's a Tie!");
ties++;
userRock++;
}
else if(player.equals("paper")&&comp.equals("paper"))
{
System.out.println("You and the Computer Both Chose Paper. It's a Tie!");
ties++;
userPaper++;
}
else if(player.equals("scissors")&&comp.equals("scissors"))
{
System.out.println("You and the Computer Both Chose Scissors. It's a Tie!");
ties++;
userScissors++;
}
else if (player.equals("rock") && comp.equals("scissors"))
{
System.out.println("You Chose Rock and the Computer Chose Scissors. You Win!");
playerWins++;
userRock++;
}
else if(comp.equals("rock") && player.equals("scissors"))
{
System.out.println("You Chose Scissors and the Computer Chose Rock. You Lose!");
compWins++;
userScissors++;
}
else if(player.equals("scissors")&& comp.equals("paper"))
{
System.out.println("You Chose Scissors and the Computer Chose Paper. You Win!");
playerWins ++;
userScissors++;
}
else if(comp.equals("scissors") && player.equals("paper"))
{
System.out.println("You Chose Paper and the Computer Chose Scissors. You Lose!");
compWins++;
userPaper++;
}
else if(player.equals("paper") && comp.equals("rock"))
{
System.out.println("You Chose Paper and the Computer Chose Rock. You Win!");
playerWins++;
userPaper++;
}
else if(comp.equals("paper")&& player.equals("rock"))
{
System.out.println("You Chose Paper and the Computer Chose Rock. You Lose!");
compWins++;
userRock++;
}
else
{
System.out.println("Invalid Input. Please Re-Enter. ");
System.out.println();
}
}while(!(player.equals("quit")));
System.out.println("Here are the results: ");
System.out.println("Ties: " + ties);
System.out.println("Computer Wins: " + compWins);
System.out.println("Player Wins: " + playerWins);
System.out.println();
System.out.println("Times Rock Chosen: "+userRock);
System.out.println("Times Paper Chosen: "+userPaper);
System.out.println("Times Scissors Chosen: "+userScissors);
return;
}//end
}
我不知道如何使電腦選擇最有可能擊敗用戶的武器。我聽說過AI可能會工作,但我以前從未使用過。我會怎麼做呢?
將此代碼翻譯成代碼,並在有更多特定問題時再回來。 *例如,如果用戶選擇了3次紙張,但每次只選擇了1次Rock和Scissors,計算機應該選擇剪刀作爲最有可能擊敗紙張的武器,這是迄今爲止用戶最常使用的選擇。* – 2014-10-21 22:41:11
這就是要點。我不知道該怎麼做。 – Avsfan9 2014-10-21 22:42:24
然後你應該跟你的老師說話,而不是我們。從廣義上講,首先要記住每件武器的使用量。然後基於此確定答案。 – 2014-10-21 22:43:54