質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2266閲覧

java  じゃんけんゲーム 順位付け

kisaragizinzin7

総合スコア90

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/08/17 04:21

javaでじゃんけんゲームを作っていています。

・4人全員でじゃんけんをして、勝った者負けた者が複数いる場合は、その者で再度じゃんけんを行い、1位から4位まで順位を付ける
というルールでやっています。
今judgeクラスで
4人でじゃんけんし、勝った人グループと負けた人グループに分けて、またグループごとでじゃんけんしてこれを繰り返し1位から4位まで順位をつけようとしています。
そこでPlayerクラスに自分の順位を持ちたい?覚えさせときたい?のですが、どのようにすればいいのか教えていただきたいです。
よろしくお願いいたします。

Playerクラス
//コンストラクタ
public Player(String name){
this.name = name;
}

//手を出すメソッド
public int player_hand(){

Random rnd = new Random(); int run = rnd.nextInt(3); //0から2の数字をランダムに取り出す if(run == 0){ //0ならグー hand = gu; } else if(run == 1){ //1ならチョキ hand = tyoki; } else{ //2(その他)ならパー hand = pa; } return hand;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

順位をPlayerに持たせるだけであれば、swordoneさんの回答です。

ただ、僕の回答は少し異なります。というのも、現実の世界でPlayerが現在の順位を知っている事ってありますか?選手が4人の場合は、他の人の結果もわかっている事が多いので、現在の順位がわかりそうです。しかし、人数が増えてきたら順位表を用意し、そこに戦績をまとめ、順位がわかるようにすると思います。

自分自身の戦績はわかっても、順位の計算は別のクラス(例えばRankingBoard)に分けたら?というのが僕の回答です。そうすると順位計算が楽になると思います。検討してみてください。

投稿2015/08/17 04:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kisaragizinzin7

2015/08/17 09:21

回答ありがとうございます^^ ぜひ考えてみます!
guest

0

ベストアンサー

Playerクラスのメンバに順位を管理するメンバを加えればいいです.

java

1public class Player{ 2 3 private String name; 4 private int rank; 5 6 //省略 7 8 public void setRank(int rank){ 9 this.rank = rank; 10 } 11 12 public int getRank(){ 13 return rank; 14 } 15}

投稿2015/08/17 04:27

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kisaragizinzin7

2015/08/17 04:55

回答ありがとうございます^^ これはセッターとゲッターというものですよね? private修飾子を使うことで自分の順位を覚えさせることができるということでしょうか?
swordone

2015/08/17 05:01

privateは単に player.rank = 3; などとして直接操作されるのを防ぐためのものです. 自分だけできちんとわかって使うならprivateでもpublicでも,無くても構いません. privateとかpublicとかいうのはあくまで「アクセス権限」の設定で, クラスに変数を持たせることでその情報を持たせることができます.
kisaragizinzin7

2015/08/17 09:20

クラスに変数を持たせた時点ということなんですね。 ありがとうございます^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問