0

学校の課題があります。説明が非常に曖昧だと思います... 誰かがそれを読んで解釈を与えるか、教師以外の言葉で各方法を簡単に説明していただければ幸いです. 課題は次のように尋ねます... 注: 彼の説明が漠然としすぎていると感じただけです。だから、私はコードを求めていません.thanks。

The players will be children of the following (partially defined) class:

public abstract class Player implements Comparable{
   public String name;   // name of player
   public    int id;     // identifier for the player
   protected int wins;   
   protected int losses;
   protected int ties;

   public abstract String play(Player opponent);
   // returns one of "rock", "paper", or "scissors"

   public void update(String myGesture, 
                      String opponentGesture,
                      Player opponent);
   // this method will update the player's stats 
   // (wins, losses, ties) based on the gestures (inputs)
   // for a recent game played against opponent (also input)

   public Player(String name, int id){...}
   // constructor that initializes player's name and id
You will need to fill in the code for the constructor and the update methods for the Player class. You can add other "hidden" attributes and methods as you wish (Note: if you add things to Player, be sure it is something that ALL children classes will also use). You will also need to implement three classes that extend the Player class:

public class SimplePlayer extends Player{...}
// A SimplePlayer will always play the same 
// gesture (either rock, paper, or scissors)
// in every game it plays, regardless
// of who its opponent is.  The gesture is 
// randomly chosen when the SimplePlayer is created.


public class RandomPlayer extends Player{...}
// A RandomPlayer will always play a random
// gesture (rock, paper, or scissors) in 
// every game it plays, regardless of who 
// its opponent is.  


public class SmartPlayer extends Player{...}
// A SmartPlayer will try to use past knowledge
// of games played against a particular 
// opponent when playing them again.
You can add any hidden attributes and methods to the children classes as you wish.

編集: このクラスは Comparable を実装しているので、異なるジェスチャを比較するメソッドは play() でしょうか?

4

2 に答える 2

1

私は彼が求めたことを私自身の言葉で言い換えましたが、他にできることはあまりありません。

  • play() は、プレイヤーが選択したジェスチャーを返します。

  • update() はどちらが勝ったかを決定し、ジェスチャに応じて勝ち、負け、または引き分けに + 1 を追加します。

  • Player() プレイヤー名と ID を初期化します

  • SimplePlayer() は、使用するジェスチャーを初期化します。これは一定のままです

  • RandomPLayer() は、プレイするすべてのゲームでジェスチャをランダムに初期化します。

  • SmartPlayer() は、反対側のプレーヤーが通常使用するジェスチャーに基づいてジェスチャーを選択します。

于 2013-04-08T03:01:15.550 に答える
1

ここで、明らかな (?) ことを言い換えてみます。教師はあなたに抽象クラスを提供し、クラスPlayerを実装するように依頼しました。それぞれのコンストラクターを実装し、抽象メソッドと更新メソッドも実装することになっています。SimplePlayerRandomPlayer

クラスはSimplePlayer、ランダムなジェスチャでブートストラップする必要があります。ジャンケン、はさみ、または紙のいずれかのジェスチャをランダムに選択し、playメソッドの出力として一貫して返す必要があります。これは、対戦相手の戦略が何であれSimplePlayer、同じままである必要があることを意味します。

反対RandomPlayerに、毎回ランダムな戦略を返す必要があります。具体的に言えば、playメソッドはランダムなものを返す必要があります。

そのupdate(...)方法はおそらく興味深いものです。現在のプレイヤーと対戦相手の戦略に応じて、結果を更新する必要があります。ルールがよくわからない場合は、こちらを参照してください。簡単に言えば、if..else現在のプレイヤーと対戦相手のプレイヤーの戦略を比較するには、たくさんのブロックが必要になる場合があります。

これがお役に立てば幸いです。実装の幸運を祈ります。

于 2013-04-08T03:03:16.203 に答える