2012-05-04 17 views
-3

私のJavaクラスでの割り当てについて私は2人のプレーヤーの間にTria Gameを作成するためのプログラムを書くことになっています。プログラムを完了しましたが、私たちもそれを追加したいと考えています。 Javaの2D配列?

テスターでは、各プレイヤーの回答した質問の情報を2次元配列に追加します(この2次元配列には、 2人のプレイヤー、それぞれ5つの質問)

正しい答えを表示して(質問の新しい方法を呼び出す)、プレーヤの答えを含む2D配列を表示します。最後に、各プレーヤーと勝ったプレーヤーのポイントを表示します。

私はこれをどのように行うことができますか?私はあなたが私に与えることができるすべての助けに感謝します。ここで

は、これまでのところ、最初は「質問」と呼ばれる私のクラスであり、第二は、「トリビアゲーム」と呼ばれるテスター

public class Question 
{ 
    String question; 
    String possibleAns1; 
    String possibleAns2; 
    String possibleAns3; 
    String possibleAns4; 
    int CorrectAnsNum; 

    Question(String ques, String ans1, String ans2, String ans3, String ans4, int num) 
    { 
    question = ques; 
    possibleAns1 = ans1; 
    possibleAns2 = ans2; 
    possibleAns3 = ans3; 
    possibleAns4 = ans4; 
    CorrectAnsNum = num; 
    } 

    Question(){ 
    } 

    String getQuestion(){ 
    return question; 
    } 

    String getAns1(){ 
    return possibleAns1; 
    } 

    String getAns2(){ 
    return possibleAns2; 
    } 

    String getAns3(){ 
    return possibleAns3; 
    } 

    String getAns4(){ 
    return possibleAns4; 
    } 

    int getCorrectAnsNum(){ 
    return CorrectAnsNum; 
    } 

    void setQuestion(String newQuestion){ 
    question = newQuestion; 
    } 

    void setAns1(String newPossibleAns1){ 
    possibleAns1 = newPossibleAns1; 
    } 

    void setAns2(String newPossibleAns2){ 
    possibleAns2 = newPossibleAns2; 
    } 

    void setAns3(String newPossibleAns3){ 
    possibleAns3 = newPossibleAns3; 
    } 

    void setAns4(String newPossibleAns4){ 
    possibleAns4 = newPossibleAns4; 
    } 

    void setCorrectAnsNum(int newCorrectAnsNum){ 
    CorrectAnsNum = newCorrectAnsNum; 
    } 
} 

/////////// TESTER

である私のコードです

String[][] allAnswers = new String[10][4]; 
012:
import java.util.ArrayList; 
import java.util.Scanner; 

public class TriviaGame 
{ 
    public static void main(String args[]) 
    { 
    Scanner input = new Scanner(System.in); 

    int pointsPlayer1 = 0; 
    int pointsPlayer2 = 0; 

    Question q1 = new Question("How many days are there in a week?", "5", "2", "7", "57", 3); 
    Question q2 = new Question("What is the first month of the year?", "February", "January", "December", "August", 2); 
    Question q3 = new Question("How many hours are there in one day?", "32", "12", "0", "24", 4); 
    Question q4 = new Question("What is the capital of Massachusetts?", "Framingham", "Worcester", "Boston", "Springfield", 3); 
    Question q5 = new Question("At what age are you legally aloud to buy lottery tickets", "18", "16", "21", "19", 1); 
    Question q6 = new Question("What sport can you hit a homerun in?", "Golf", "Football", "Soccer", "Baseball", 4); 
    Question q7 = new Question("Which one of these fruits is yellow?", "Apple", "Banana", "Strawberry", "Grape", 2); 
    Question q8 = new Question("Who is the current president of the United States?", "Bill Clinton", "George Bush", "Barack Obama", "Jason Statham", 3); 
    Question q9 = new Question("What is the highway speed limit in most areas?", "85", "65", "35", "110", 2); 

    Question q10 = new Question(); 
    q10.setQuestion("What is the company that makes the iPod?"); 

    q10.setAns1("Microsoft"); 
    q10.setAns2("Verizon"); 
    q10.setAns3("Apple"); 
    q10.setAns4("Walmart"); 
    q10.setCorrectAnsNum(3); 

    ArrayList<Question> questionList = new ArrayList<Question>(); 

    questionList.add(q1); 
    questionList.add(q2); 
    questionList.add(q3); 
    questionList.add(q4); 
    questionList.add(q5); 
    questionList.add(q6); 
    questionList.add(q7); 
    questionList.add(q8); 
    questionList.add(q9); 
    questionList.add(q10); 

    System.out.println("****Player1****"); 

    for(int i = 0; i < 5; i++) 
    { 
     Question q = questionList.get(i); 

     System.out.println("\n" + (i+1) + ". " + q.getQuestion()); 
     System.out.println("1) " + q.getAns1()); 
     System.out.println("2) " + q.getAns2()); 
     System.out.println("3) " + q.getAns3()); 
     System.out.println("4) " + q.getAns4()); 

     System.out.print("Enter your answer: "); 
     int userAns = input.nextInt(); 

     if (userAns == q.getCorrectAnsNum()) 
     pointsPlayer1++; 
    } 

    System.out.println("\n****Player2****"); 

    for(int i = 5; i < 10; i++) 
    { 
     Question q = questionList.get(i); 

     System.out.println("\n" + (i+1) + ". " + q.getQuestion()); 
     System.out.println("1) " + q.getAns1()); 
     System.out.println("2) " + q.getAns2()); 
     System.out.println("3) " + q.getAns3()); 
     System.out.println("4) " + q.getAns4()); 

     System.out.print("Enter your answer: "); 
     int userAns = input.nextInt(); 

     if (userAns == q.getCorrectAnsNum()) 
     pointsPlayer2++; 
    } 

    System.out.println("\n****Points Earned****"); 
    System.out.println("Player 1: " + pointsPlayer1); 
    System.out.println("Player 2: " + pointsPlayer2); 

    if (pointsPlayer1>pointsPlayer2) 
     System.out.println("\nPlayer 1 is the winner! "); 
    else if (pointsPlayer1<pointsPlayer2) 
     System.out.println("\nPlayer 2 is the winner! "); 
    else 
     System.out.println("\nIt's a tie! "); 
    } 
} 
+4

このサイトは、他の人の宿題を行うことについてではなく、特定の問題であなたを助けるためのものです。あなたの質問にもっと具体的にお答えし、あなたがどこにいるのか教えてください。 – Yogu

+0

私はそのように遭遇した場合は申し訳なく思っていますが、これまでに行った作業を添付してきました。私が求めているのは、仕上げ方法に関するアドバイスです。私は誰かが「宿題をする」ことを決して求めなかった。私が混乱している部分をかっこに入れた質問 – Andrew

+0

ここで*正確に*問題がありますか?その配列を定義できますか?あなたは何を入れるべきか知っていますか?あなたは配列を埋める方法を知っていますか?あなたはそれを出力する方法を知っていますか?それを出力するときはいつ知っていますか? – Yogu

答えて

1

Javaでは、あなたは、2つの次元である配列の配列を、宣言することができます変数questionAnswersがStringの配列です

for (String[] questionAnswers : allAnswers) { 

:さて、あなたは外側の配列を反復処理することができます。あなたは、この内側の配列を反復処理し、答えを設定することができます。

questionAnswers[0] = "Answer 1"; 
// ... 

注Javaでは配列は常にゼロベースであることを、最初の答えはインデックス0

に属しているので、あなたはまた、アクセスすることができますインデックス演算子を使用して、特定のフィールド:

System.out.println("Second answer of question 3 is: " questionAnswers[2][1]; 

これはあなたに非常に明確ではなかった場合、あなたはJavaでa tutorial on multidimensional arraysをお読みください。

+0

ありがとう、私はあなたがそれをかなりクリアしたと思います。それは有り難いです :) – Andrew