import java.util.Random;
import java.util.Scanner;
public class Main {
Scanner scan
= new Scanner
(System.
in);
public static void main
(String[] args
) { Main m = new Main();
m.doJanken();
}
private void doJanken(){
System.
out.
println("コンピュータとじゃんけんをします。"); System.
out.
println("グー、チョキ、パーのいずれかをカタカナで入力して下さい。");
int yourHand = getOnesHands();
int cpHand
= new Random().
nextInt(3); doCpHands(cpHand);
judg(yourHand, cpHand);
ask();
}
private void judg(int handA, int handB){
int result = (handA - handB + 3) % 3;
if (result == 0) {
} else if (result == 2) {
System.
out.
println("あなたの勝ちです!"); } else {
System.
out.
println("コンピュータの勝ちです。"); }
}
private void ask(){
System.
out.
println("もう一度やりますか?はいかいいえを入力して下さい。"); String answer
= scan.
nextLine();
if (answer.equals("はい")){
doJanken();
} else if (!answer.equals("いいえ")){
System.
out.
println("はいかいいえのいずれかを入力して下さい。終了します。"); }
}
private int getOnesHands(){
String yourHand
= scan.
nextLine(); HandsEnum handsEnum = HandsEnum.getEnumByName(yourHand);
if(handsEnum == null){
System.
out.
println("グー、チョキ、パーのいずれかを入力して下さい。終了します。"); }
return handsEnum.getNum();
}
private void doCpHands(int num){
String cpHand
= HandsEnum.
getEnumByNum(num
).
toString(); System.
out.
println("コンピュータは" + cpHand
+ "です。"); }
private enum HandsEnum {
GOO("グー", 0),
TYOKI("チョキ", 1),
PAA("パー", 2),
;
private int num;
private HandsEnum
(String name,
int num
) { this.name = name;
this.num = num;
}
return name;
}
public int getNum() {
return num;
}
public static HandsEnum getEnumByName
(String name
) { for (HandsEnum handsEnum : HandsEnum.values()) {
if (handsEnum.toString().equals(name)) {
return handsEnum;
}
}
return null;
}
public static HandsEnum getEnumByNum(int num) {
for (HandsEnum handsEnum : HandsEnum.values()) {
if (handsEnum.getNum() == num) {
return handsEnum;
}
}
return null;
}
}
}
aW1wb3J0IGphdmEudXRpbC5SYW5kb207CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCgpwdWJsaWMgY2xhc3MgTWFpbiB7CglTY2FubmVyIHNjYW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlNYWluIG0gPSBuZXcgTWFpbigpOwoJCW0uZG9KYW5rZW4oKTsKCX0KCglwcml2YXRlIHZvaWQgZG9KYW5rZW4oKXsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOCs+ODs+ODlOODpeODvOOCv+OBqOOBmOOCg+OCk+OBkeOCk+OCkuOBl+OBvuOBmeOAgiIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigi44Kw44O844CB44OB44On44Kt44CB44OR44O844Gu44GE44Ga44KM44GL44KS44Kr44K/44Kr44OK44Gn5YWl5Yqb44GX44Gm5LiL44GV44GE44CCIik7CgoJCWludCB5b3VySGFuZCA9IGdldE9uZXNIYW5kcygpOwoJCWludCBjcEhhbmQgPSBuZXcgUmFuZG9tKCkubmV4dEludCgzKTsKCQlkb0NwSGFuZHMoY3BIYW5kKTsKCQlqdWRnKHlvdXJIYW5kLCBjcEhhbmQpOwoKCQlhc2soKTsKCX0KCglwcml2YXRlIHZvaWQganVkZyhpbnQgaGFuZEEsIGludCBoYW5kQil7CgkJaW50IHJlc3VsdCA9IChoYW5kQSAtIGhhbmRCICsgMykgJSAzOwoJCWlmIChyZXN1bHQgPT0gMCkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOBguOBhOOBk+OBp+OBmeOAgiIpOwoJCX0gZWxzZSBpZiAocmVzdWx0ID09IDIpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCLjgYLjgarjgZ/jga7li53jgaHjgafjgZnvvIEiKTsKCQl9IGVsc2UgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOCs+ODs+ODlOODpeODvOOCv+OBruWLneOBoeOBp+OBmeOAgiIpOwoJCX0KCX0KCglwcml2YXRlIHZvaWQgYXNrKCl7CgkJU3lzdGVtLm91dC5wcmludGxuKCLjgoLjgYbkuIDluqbjgoTjgorjgb7jgZnjgYvvvJ/jga/jgYTjgYvjgYTjgYTjgYjjgpLlhaXlipvjgZfjgabkuIvjgZXjgYTjgIIiKTsKCQlTdHJpbmcgYW5zd2VyID0gc2Nhbi5uZXh0TGluZSgpOwoKCQlpZiAoYW5zd2VyLmVxdWFscygi44Gv44GEIikpewoJCQlkb0phbmtlbigpOwoJCX0gZWxzZSBpZiAoIWFuc3dlci5lcXVhbHMoIuOBhOOBhOOBiCIpKXsKCQkJU3lzdGVtLm91dC5wcmludGxuKCLjga/jgYTjgYvjgYTjgYTjgYjjga7jgYTjgZrjgozjgYvjgpLlhaXlipvjgZfjgabkuIvjgZXjgYTjgILntYLkuobjgZfjgb7jgZnjgIIiKTsKCQl9CgoJCVN5c3RlbS5leGl0KDApOwoJfQoKCXByaXZhdGUgaW50IGdldE9uZXNIYW5kcygpewoJCVN0cmluZyB5b3VySGFuZCA9IHNjYW4ubmV4dExpbmUoKTsKCQlIYW5kc0VudW0gaGFuZHNFbnVtID0gSGFuZHNFbnVtLmdldEVudW1CeU5hbWUoeW91ckhhbmQpOwoKCQlpZihoYW5kc0VudW0gPT0gbnVsbCl7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigi44Kw44O844CB44OB44On44Kt44CB44OR44O844Gu44GE44Ga44KM44GL44KS5YWl5Yqb44GX44Gm5LiL44GV44GE44CC57WC5LqG44GX44G+44GZ44CCIik7CgkJCVN5c3RlbS5leGl0KDEpOwoJCX0KCgkJcmV0dXJuIGhhbmRzRW51bS5nZXROdW0oKTsKCX0KCglwcml2YXRlIHZvaWQgZG9DcEhhbmRzKGludCBudW0pewoJCVN0cmluZyBjcEhhbmQgPSBIYW5kc0VudW0uZ2V0RW51bUJ5TnVtKG51bSkudG9TdHJpbmcoKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOCs+ODs+ODlOODpeODvOOCv+OBryIgKyBjcEhhbmQgKyAi44Gn44GZ44CCIik7Cgl9CgoJcHJpdmF0ZSBlbnVtIEhhbmRzRW51bSB7CgkJR09PKCLjgrDjg7wiLCAwKSwKCQlUWU9LSSgi44OB44On44KtIiwgMSksCgkJUEFBKCLjg5Hjg7wiLCAyKSwKCQk7CgoJCXByaXZhdGUgU3RyaW5nIG5hbWU7CgkJcHJpdmF0ZSBpbnQgbnVtOwoKCQlwcml2YXRlIEhhbmRzRW51bShTdHJpbmcgbmFtZSwgaW50IG51bSkgewoJCQl0aGlzLm5hbWUgPSBuYW1lOwoJCQl0aGlzLm51bSA9IG51bTsKCQl9CgoJCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJCXJldHVybiBuYW1lOwoJCX0KCgkJcHVibGljIGludCBnZXROdW0oKSB7CgkJCXJldHVybiBudW07CgkJfQoKCQlwdWJsaWMgc3RhdGljIEhhbmRzRW51bSBnZXRFbnVtQnlOYW1lKFN0cmluZyBuYW1lKSB7CgkJCWZvciAoSGFuZHNFbnVtIGhhbmRzRW51bSA6IEhhbmRzRW51bS52YWx1ZXMoKSkgewoJCQkJaWYgKGhhbmRzRW51bS50b1N0cmluZygpLmVxdWFscyhuYW1lKSkgewoJCQkJCXJldHVybiBoYW5kc0VudW07CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlwdWJsaWMgc3RhdGljIEhhbmRzRW51bSBnZXRFbnVtQnlOdW0oaW50IG51bSkgewoJCQlmb3IgKEhhbmRzRW51bSBoYW5kc0VudW0gOiBIYW5kc0VudW0udmFsdWVzKCkpIHsKCQkJCWlmIChoYW5kc0VudW0uZ2V0TnVtKCkgPT0gbnVtKSB7CgkJCQkJcmV0dXJuIGhhbmRzRW51bTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9Cn0K