import java.util.Scanner;
public class Exer11 {
public static void main(String[] args) {
// [0.0, 1.0)範囲のdouble型の乱数を得る
double r = Math.random();
// 標準出力への文字列の出力方法としてprintlnメソッドもある.
// printlnは引数の文字列を出力した後,改行をする.
System.out.println("r = " + r);
// サイコロを作る
int deme = dice(r, 6);
System.out.println("deme = " + deme);
// じゃんけんをする.0:ぐー, 1:ぱー,2:ちょき
System.out.println("じゃんけんをします.数字を入力してね.0:ぐー, 1:ぱー,2:ちょき");
Scanner scanner = new Scanner(System.in);
int hitoNoTe = scanner.nextInt();
scanner.close();
int kikaiNoTe = janken(r);
System.out.println("じゃんけんぽん:" + kikaiNoTe);
if (hitoNoTe == kikaiNoTe) {
System.out.println("あいこ!");
} else if (hitoNoTe == (kikaiNoTe + 1) % 3) {
System.out.println("あなたの勝ち!");
} else if ((hitoNoTe + 1) % 3 == kikaiNoTe) {
System.out.println("あなたの負け!");
}
}
/**
* サイコロを振る(出目の確率は均等)
*
* @param r 乱数[0.0, 1.0)
* @param men 何面サイコロか
* @return サイコロの目
*/
private static int dice(double r, int men) {
int deme = 0;
// 6面サイコロ
for (int i = 0; i < men; i++) {
// int+int=intだが,int+double=doubleなので敢えて,i + 1.0としている
if (r < (i + 1.0) / men) {
deme = i + 1;
break;
}
}
return deme; // 0を返す場合は異常
}
/**
* ぐーちょきぱーのじゃんけんの手を決める
*
* @param r 乱数[0.0, 1.0)
* @return 0:ぐー, 1:ぱー,2:ちょき
*/
private static int janken(double r) {
int te = -1;
// 6面サイコロ
for (int i = 0; i < 3; i++) {
if (r < (i + 1.0) / 3) {
te = i;
break;
}
}
return te; // -1の場合は異常
}
}