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();
do{
m.doJanken();
}while(m.ask());
}
private void doJanken(){
System.
out.
println("コンピュータとじゃんけんをします。"); System.
out.
println("グー、チョキ、パーのいずれかをカタカナで入力して下さい。");
int yourHand = getOnesHands();
int cpHand
= new Random().
nextInt(3); doCpHands(cpHand);
judg(yourHand, cpHand);
}
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 boolean ask(){
System.
out.
println("もう一度やりますか?はいかいいえを入力して下さい。"); String answer
= scan.
nextLine();
if (answer.equals("はい")){
return true;
} else if (!answer.equals("いいえ")){
System.
out.
println("はいかいいえのいずれかを入力して下さい。"); }
return false;
}
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;
}
}
}
aW1wb3J0IGphdmEudXRpbC5SYW5kb207CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCgpwdWJsaWMgY2xhc3MgTWFpbiB7CglTY2FubmVyIHNjYW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlNYWluIG0gPSBuZXcgTWFpbigpOwogICAgICAgIGRvewoJCSAgbS5kb0phbmtlbigpOwogICAgICAgIH13aGlsZShtLmFzaygpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIue1guS6huOBl+OBvuOBmeOAgiIpOwoJfQoKCXByaXZhdGUgdm9pZCBkb0phbmtlbigpewoJCVN5c3RlbS5vdXQucHJpbnRsbigi44Kz44Oz44OU44Ol44O844K/44Go44GY44KD44KT44GR44KT44KS44GX44G+44GZ44CCIik7CgkJU3lzdGVtLm91dC5wcmludGxuKCLjgrDjg7zjgIHjg4Hjg6fjgq3jgIHjg5Hjg7zjga7jgYTjgZrjgozjgYvjgpLjgqvjgr/jgqvjg4rjgaflhaXlipvjgZfjgabkuIvjgZXjgYTjgIIiKTsKCgkJaW50IHlvdXJIYW5kID0gZ2V0T25lc0hhbmRzKCk7CgkJaW50IGNwSGFuZCA9IG5ldyBSYW5kb20oKS5uZXh0SW50KDMpOwoJCWRvQ3BIYW5kcyhjcEhhbmQpOwoJCWp1ZGcoeW91ckhhbmQsIGNwSGFuZCk7CgoJCQoJfQoKCXByaXZhdGUgdm9pZCBqdWRnKGludCBoYW5kQSwgaW50IGhhbmRCKXsKCQlpbnQgcmVzdWx0ID0gKGhhbmRBIC0gaGFuZEIgKyAzKSAlIDM7CgkJaWYgKHJlc3VsdCA9PSAwKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigi44GC44GE44GT44Gn44GZ44CCIik7CgkJfSBlbHNlIGlmIChyZXN1bHQgPT0gMikgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOBguOBquOBn+OBruWLneOBoeOBp+OBme+8gSIpOwoJCX0gZWxzZSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigi44Kz44Oz44OU44Ol44O844K/44Gu5Yud44Gh44Gn44GZ44CCIik7CgkJfQoJfQoKCXByaXZhdGUgYm9vbGVhbiBhc2soKXsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOCguOBhuS4gOW6puOChOOCiuOBvuOBmeOBi++8n+OBr+OBhOOBi+OBhOOBhOOBiOOCkuWFpeWKm+OBl+OBpuS4i+OBleOBhOOAgiIpOwoJCVN0cmluZyBhbnN3ZXIgPSBzY2FuLm5leHRMaW5lKCk7CgoJCWlmIChhbnN3ZXIuZXF1YWxzKCLjga/jgYQiKSl7CgkJCXJldHVybiB0cnVlOwoJCX0gZWxzZSBpZiAoIWFuc3dlci5lcXVhbHMoIuOBhOOBhOOBiCIpKXsKCQkJU3lzdGVtLm91dC5wcmludGxuKCLjga/jgYTjgYvjgYTjgYTjgYjjga7jgYTjgZrjgozjgYvjgpLlhaXlipvjgZfjgabkuIvjgZXjgYTjgIIiKTsKCQl9CgoJCXJldHVybiBmYWxzZTsKCX0KCglwcml2YXRlIGludCBnZXRPbmVzSGFuZHMoKXsKCQlTdHJpbmcgeW91ckhhbmQgPSBzY2FuLm5leHRMaW5lKCk7CgkJSGFuZHNFbnVtIGhhbmRzRW51bSA9IEhhbmRzRW51bS5nZXRFbnVtQnlOYW1lKHlvdXJIYW5kKTsKCgkJaWYoaGFuZHNFbnVtID09IG51bGwpewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIuOCsOODvOOAgeODgeODp+OCreOAgeODkeODvOOBruOBhOOBmuOCjOOBi+OCkuWFpeWKm+OBl+OBpuS4i+OBleOBhOOAgue1guS6huOBl+OBvuOBmeOAgiIpOwoJCQlTeXN0ZW0uZXhpdCgxKTsKCQl9CgoJCXJldHVybiBoYW5kc0VudW0uZ2V0TnVtKCk7Cgl9CgoJcHJpdmF0ZSB2b2lkIGRvQ3BIYW5kcyhpbnQgbnVtKXsKCQlTdHJpbmcgY3BIYW5kID0gSGFuZHNFbnVtLmdldEVudW1CeU51bShudW0pLnRvU3RyaW5nKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCLjgrPjg7Pjg5Tjg6Xjg7zjgr/jga8iICsgY3BIYW5kICsgIuOBp+OBmeOAgiIpOwoJfQoKCXByaXZhdGUgZW51bSBIYW5kc0VudW0gewoJCUdPTygi44Kw44O8IiwgMCksCgkJVFlPS0koIuODgeODp+OCrSIsIDEpLAoJCVBBQSgi44OR44O8IiwgMiksCgkJOwoKCQlwcml2YXRlIFN0cmluZyBuYW1lOwoJCXByaXZhdGUgaW50IG51bTsKCgkJcHJpdmF0ZSBIYW5kc0VudW0oU3RyaW5nIG5hbWUsIGludCBudW0pIHsKCQkJdGhpcy5uYW1lID0gbmFtZTsKCQkJdGhpcy5udW0gPSBudW07CgkJfQoKCQlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewoJCQlyZXR1cm4gbmFtZTsKCQl9CgoJCXB1YmxpYyBpbnQgZ2V0TnVtKCkgewoJCQlyZXR1cm4gbnVtOwoJCX0KCgkJcHVibGljIHN0YXRpYyBIYW5kc0VudW0gZ2V0RW51bUJ5TmFtZShTdHJpbmcgbmFtZSkgewoJCQlmb3IgKEhhbmRzRW51bSBoYW5kc0VudW0gOiBIYW5kc0VudW0udmFsdWVzKCkpIHsKCQkJCWlmIChoYW5kc0VudW0udG9TdHJpbmcoKS5lcXVhbHMobmFtZSkpIHsKCQkJCQlyZXR1cm4gaGFuZHNFbnVtOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCgkJcHVibGljIHN0YXRpYyBIYW5kc0VudW0gZ2V0RW51bUJ5TnVtKGludCBudW0pIHsKCQkJZm9yIChIYW5kc0VudW0gaGFuZHNFbnVtIDogSGFuZHNFbnVtLnZhbHVlcygpKSB7CgkJCQlpZiAoaGFuZHNFbnVtLmdldE51bSgpID09IG51bSkgewoJCQkJCXJldHVybiBoYW5kc0VudW07CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJfQp9Cg==