Javaでじゃんけんをする

概要

じゃんけんをするプログラム。

class Judge {

	String name;// 審判の名前

	void judgement(Player no1, Player no2) {// じゃんけん一回させる
		no1.showPlayerHand();
		no2.showPlayerHand();
		System.out.println(no1 + "vs." + no2);
		if (((no1.playerHand == Player.STONE) && (no2.playerHand == Player.SCISSORS))
				|| ((no1.playerHand == Player.SCISSORS) && (no2.playerHand == Player.PAPER))
				|| ((no1.playerHand == Player.PAPER) && (no2.playerHand == Player.STONE))) {
			no1.playerWinCount++;// 勝利のお知らせ
			System.out.println(no1.name + "が勝ちました");
		} else if (((no2.playerHand == Player.STONE) && (no1.playerHand == Player.SCISSORS))
				|| ((no2.playerHand == Player.SCISSORS) && (no1.playerHand == Player.PAPER))
				|| ((no2.playerHand == Player.PAPER) && (no1.playerHand == Player.STONE))) {
			no2.playerWinCount++;// 勝利のお知らせ
			System.out.println(no2.name + "が勝ちました");
		} else {
			System.out.println("引き分けです");
		}
	}

	void doJanken3Times(Player no1, Player no2) {
		this.judgement(no1, no2);
		this.judgement(no1, no2);
		this.judgement(no1, no2);
		System.out.println("じゃんけん終了");
		System.out.println(no1.playerWinCount + "対" + no2.playerWinCount + "で");
		if (no1.playerWinCount > no2.playerWinCount) {
			System.out.println(no1.name + "の勝ちです");
		} else if (no1.playerWinCount < no2.playerWinCount) {
			System.out.println(no2.name + "の勝ちです");
		} else {
			System.out.println("引き分けです");
		}
	}
}

class Player {
	String name;
	public static final int STONE = 0;// グー
	public static final int SCISSORS = 1;// チョキ
	public static final int PAPER = 2;// パー
	int playerWinCount = 0;
	int playerHand = 0;// pレーヤーの手
	static double randNum = 0;// 乱数格納用

	Player(String name) {
		this.name = name;
	}

	void showPlayerHand() {
		randNum = Math.random() * 3;// 乱数0,1,2の発生
		// 乱数の値によって、手の出し方を決める
		if (randNum < 1) {
			this.playerHand = STONE;
		} else if (randNum < 2) {
			this.playerHand = SCISSORS;
		} else {
			this.playerHand = PAPER;
		}
	}

	public String toString() {
		String hand = null;
		if (playerHand == STONE) {
			hand = "グー";
		}
		if (playerHand == SCISSORS) {
			hand = "チョキ";
		}
		if (playerHand == PAPER) {
			hand = "パー";
		}
		return hand;
	}
}

public class ObjectJanken {
	public static void main(String[] args) {
		// 審判
		Judge saito = new Judge();

		// プレーヤー1
		Player murata = new Player("村田");

		// プレーヤー2
		Player yamada = new Player("山田");

		// じゃんけん
		saito.doJanken3Times(murata, yamada);

	}
}

実行結果

パーvs.グー
村田が勝ちました
パーvs.グー
村田が勝ちました
パーvs.グー
村田が勝ちました
じゃんけん終了
3対0で
村田の勝ちです

AKB48じゃんけん大会公式ガイドブック2015 (FLASH増刊)

AKB48じゃんけん大会公式ガイドブック2015 (FLASH増刊)