1

私のプログラムは 2 人用です。各プレイヤーはサイコロを 3 回振ることができ、それぞれのサイコロを振った数字を保持できます。最初のロールから 1 つの番号を保持する場合、番号を保持することを選択するまで、さらに 2 回ロールを続行できます。2 つのサイコロを合計し、合計額が最も高いプレイヤーが勝ちます。プレーヤー クラス (サイコロの値を保持する担当)、サイコロを振って合計を決定する pairOfdice クラス、およびメイン ゲームがあります。プログラムを実行すると、diceGame クラスからこれらのエラーを受け取ります。これらのエラーの意味を知りたいです。私のコードはまだ完成していません。

  • playerGame の getHoldA() は (int) に適用できません
  • playerGame の getHoldB() は (int) に適用できません

メインゲーム

import java.io.*;
import java.lang.*;
import java.util.*;



public class diceGame
{
   public static void main(String[] args) {

  pairOfDice dice;

  dice = new pairOfDice();

  playerGame player;

  player = new playerGame();

  int rollCount = 0;

 int holdA = 0, holdB = 0;
  do {
           dice.roll();    // Roll the first pair of dice.
            System.out.println("Dice 1: " + dice.getDiceA() + "\n" + "Dice 2: " + dice.getDiceB() + "\n" + "The total is: " + dice.getTotal());
    System.out.println("Do you want to hold the fist dice with a value of " + dice.getDiceA());
    if (holdA == 1){
      player.getHoldA();
          player.getHoldA(dice.getDiceA());
          System.out.println("Value of dice A is held");
    }
    System.out.println("Do you want to hold the second dice with a value of " + dice.getDiceB());
      if (holdB == 1){
            player.getHoldB(dice.getDiceB());
            System.out.println("Value of dice B is held");
    }

           rollCount++;
            }
  while (dice.getTurns() <= 3);
  }
}

プレイヤークラス

import java.io.*;

public class playerGame
{
     private int holdA = 0, holdB = 0;

     //constructor
     public playerGame(){
     }

      public void setHoldA (int valA){
         holdA = valA;
       }
     public void setHoldB (int valB){
     holdB = valB;
     }
     public void setPlayer(int player){
       player = player + 1;
     }

     public int getHoldA () {
       return holdA;
     }
     public int getHoldB () {
       return holdB;
     }    

       }

ペアオフィスクラス

import java.io.*;

public class pairOfDice
{

  private int diceA = 0, diceB = 0, turns = 0;

  public pairOfDice() {//constructor
    roll();  
  }
  public void roll(){
    diceA = (int)(Math.random()*6) + 1;
    diceB = (int)(Math.random()*6) + 1;
    turns = turns +1;
  }

  public void setDice(int newDiceA, int diceA) {
    diceA = newDiceA;
  }
  public void setDiceB(int newDiceB, int diceB) {
    diceB = newDiceB;
  }
  public void setTurns(int turns) {
    turns = 0;
  }

  public int getDiceA() {
    return diceA;
  }
  public int getDiceB() {
    return diceB;
  }
  public int getTotal() {
    return (diceA + diceB);
  }
  public int getTurns() {
    return turns;
  }
}
4

2 に答える 2

2

getter (引数を取らない) を使用して値を設定しようとしています。当然、Java はこれをどう処理するかを知りません。

  player.getHoldA(dice.getDiceA());

する必要があります

  player.setHoldA(dice.getDiceA());
于 2013-10-02T21:04:17.683 に答える
1

あなたのメソッドgetHoldAgetHoldBはパラメーターを取りませんが、値を指定してそれらを呼び出しますplayer.getHoldA(dice.getDiceA());。おそらく、セッターを呼び出すつもりでしたか?

于 2013-10-02T21:03:22.177 に答える