したがって、ユーザーが2つの異なるゲームをプレイすることを選択できるメニューを作成したいとします。私はメインメソッドを作成し、forループを作成したり、さまざまなゲームオプションのためのステートメントを切り替えたり、終了することができるようにしたいが、クラスをどのように呼び出すかわからないので、選択したときにゲームが実行される。メインメソッドでのクラスの呼び出し
誰かが私にこのことについてどうやって説明してもらえますか?ありがとう!
import java.util.Scanner;
import java.util.Random;
public class RpsGame {
/* Valid user input: rock, paper, scissors */
public static void main(String[] args) {
System.out.print("Please Make Your Choice (Rock, Paper or Scissors): ");
try {
Scanner sc =
new Scanner(System.in);
String userInput =
sc.next();
if (isValid(userInput)) {
game(userInput);
} else {
print("Invalid user input!\nWrite rock, paper or scissors!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void print(String text) {
System.out.println(text);
}
public static boolean isValid(String input) {
if (input.equalsIgnoreCase("rock")) {
return true;
}
if (input.equalsIgnoreCase("paper")) {
return true;
}
if (input.equalsIgnoreCase("scissors")) {
return true;
}
return false;
}
public static void game(String user) {
String computer = computerResults();
//System.out.print("Please Make Your Choice: ");
print(user + " vs " + computer + "\n");
if (user.equalsIgnoreCase(computer)) {
print("Oh, Snap! Tied - No winners.");
} else {
if (checkWin(user, computer)) {
print("You won against the computer!");
} else {
print("You lost against the computer!");
}
}
}
public static String computerResults() {
String types[] =
{"rock", "paper", "scissors"};
Random rand = new Random();
int computerChoice = rand.nextInt(3);;
return types[computerChoice];
}
public static boolean checkWin(String user, String opponent) {
if ((!isValid(user)) && (!isValid(opponent))) {
return false;
}
String rock = "rock", paper = "paper", scissors = "scissors";
if ((user.equalsIgnoreCase(rock)) && (opponent.equalsIgnoreCase(scissors))) {
return true;
}
if ((user.equalsIgnoreCase(scissors)) && (opponent.equalsIgnoreCase(paper))) {
return true;
}
if ((user.equalsIgnoreCase(paper)) && (opponent.equalsIgnoreCase(rock ))) {
return true;
}
return false;
//If no possible win, assume loss.
}
}
をあなたは「クラスを呼び出す」とはどういう意味ですか?クラスのインスタンスを作成し、メソッドなどを呼び出すことができます。これを行う方法の構造は、Javaチュートリアルでカバーされています。あなたがすでに持っているコードにはその例があります。あなたが試したものと何が効いていないものかを明確にすることはできますか? – David
はい。だから、私はそれが私の主な方法であるように新しいファイルを作成するつもりです。その中で私はメニューを持っていますが、私はゲームを走らせるためにメソッドをどのように呼び出すのかは分かりません。私はまだコードを書いていない、私はちょうど私がこれについて行くだろうかを把握しようとしています。 –
次に、入門的なJavaチュートリアルから始めましょう。クラスのインスタンスとメソッドの作成は* *チュートリアルでカバーされます。 'MyClass x = new MyClass();'と 'x.someMethod();'は簡単な例です。 – David