public class Main {
public static void println
(String s
) {
}
public static java.util.Scanner myScanner;
static {
myScanner
= new java.
util.
Scanner(System.
in);}
public static String readLine
() {
return myScanner.nextLine().trim();
}
public static String handToString
(int hand
) {
switch (hand)
{
case 0: return "グー";
case 1: return "チョキ";
case 2: return "パー";
}
return "無効";
}
public static boolean isValidHand(int hand)
{
return 0 <= hand && hand < 3;
}
public static int inputHand()
{
int myHand;
for (;;) {
println("グーなら0、チョキなら1、パーなら2を入力してください。");
String myHandStr
= readLine
(); myHand = -1;
try {
myHand
= Integer.
parseInt(myHandStr
); {}
if (isValidHand(myHand)) break;
println("入力が無効です。再入力して下さい。");
}
return myHand;
}
public static void main
(String[] args
) {
println("2人でじゃんけんをします。");
boolean retry = true;
do {
int myHand = inputHand();
int cpuHand
= new java.
util.
Random().
nextInt(3);
println(myName+"の手は"+handToString(myHand)+"です。");
println(cpuName+"の手は"+handToString(cpuHand)+"です。");
if (myHand == cpuHand)
println("あいこでした。もう一度やります。");
else if ((cpuHand - myHand + 3) % 3 == 1) {
println(myName+"の勝ちです。");
retry = false;
}
else {
println("残念ながら"+cpuName+"の勝ちです。");
retry = false;
}
} while (retry);
}
}
cHVibGljIGNsYXNzIE1haW4geyAKcHVibGljIHN0YXRpYyB2b2lkIHByaW50bG4oU3RyaW5nIHMpCnsKU3lzdGVtLm91dC5wcmludGxuKHMpOwp9CnB1YmxpYyBzdGF0aWMgamF2YS51dGlsLlNjYW5uZXIgbXlTY2FubmVyOwpzdGF0aWMgewpteVNjYW5uZXIgPSBuZXcgamF2YS51dGlsLlNjYW5uZXIoU3lzdGVtLmluKTsKfQpwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkTGluZSgpCnsKcmV0dXJuIG15U2Nhbm5lci5uZXh0TGluZSgpLnRyaW0oKTsKfQpwdWJsaWMgc3RhdGljIFN0cmluZyBoYW5kVG9TdHJpbmcoaW50IGhhbmQpCnsKc3dpdGNoIChoYW5kKQp7CmNhc2UgMDogcmV0dXJuICLjgrDjg7wiOwpjYXNlIDE6IHJldHVybiAi44OB44On44KtIjsKY2FzZSAyOiByZXR1cm4gIuODkeODvCI7Cn0KcmV0dXJuICLnhKHlirkiOwp9CnB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1ZhbGlkSGFuZChpbnQgaGFuZCkKewpyZXR1cm4gMCA8PSBoYW5kICYmIGhhbmQgPCAzOwp9CnB1YmxpYyBzdGF0aWMgaW50IGlucHV0SGFuZCgpCnsKICAgIGludCBteUhhbmQ7CiAgICBmb3IgKDs7KSB7CiAgICAJcHJpbnRsbigi44Kw44O844Gq44KJMOOAgeODgeODp+OCreOBquOCiTHjgIHjg5Hjg7zjgarjgoky44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCIik7CgkgICAgU3RyaW5nIG15SGFuZFN0ciA9IHJlYWRMaW5lKCk7CiAgICAgICAgbXlIYW5kID0gLTE7CiAgICAgICAgdHJ5IHsKICAgIAkgICAgbXlIYW5kID0gSW50ZWdlci5wYXJzZUludChteUhhbmRTdHIpOwogICAgICAgIH0gY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkKICAgICAgICB7fQogICAgICAgIGlmIChpc1ZhbGlkSGFuZChteUhhbmQpKSBicmVhazsKICAgICAgICBwcmludGxuKCLlhaXlipvjgYznhKHlirnjgafjgZnjgILlho3lhaXlipvjgZfjgabkuIvjgZXjgYTjgIIiKTsKICAgIH0KICAgIHJldHVybiBteUhhbmQ7Cn0KCgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIAoJCXByaW50bG4oIjLkurrjgafjgZjjgoPjgpPjgZHjgpPjgpLjgZfjgb7jgZnjgIIiKTsKCgkJU3RyaW5nIG15TmFtZSA9ICLjgYLjgarjgZ8iOwoJCVN0cmluZyBjcHVOYW1lID0gIuOCs+ODs+ODlOODpeODvOOCvyI7CgoJCWJvb2xlYW4gcmV0cnkgPSB0cnVlOwoJCWRvIHsKICAgICAgICAgICAgaW50IG15SGFuZCA9IGlucHV0SGFuZCgpOwoJCQlpbnQgY3B1SGFuZCA9IG5ldyBqYXZhLnV0aWwuUmFuZG9tKCkubmV4dEludCgzKTsKCiAgICAgICAgICAgIHByaW50bG4obXlOYW1lKyLjga7miYvjga8iK2hhbmRUb1N0cmluZyhteUhhbmQpKyLjgafjgZnjgIIiKTsKCQkJcHJpbnRsbihjcHVOYW1lKyLjga7miYvjga8iK2hhbmRUb1N0cmluZyhjcHVIYW5kKSsi44Gn44GZ44CCIik7CgoJCQlpZiAobXlIYW5kID09IGNwdUhhbmQpCgkJCQlwcmludGxuKCLjgYLjgYTjgZPjgafjgZfjgZ/jgILjgoLjgYbkuIDluqbjgoTjgorjgb7jgZnjgIIiKTsKCgkJCWVsc2UgaWYgKChjcHVIYW5kIC0gbXlIYW5kICsgMykgJSAzID09IDEpIHsKCQkJCXByaW50bG4obXlOYW1lKyLjga7li53jgaHjgafjgZnjgIIiKTsKCQkJCXJldHJ5ID0gZmFsc2U7CgkJCX0KCQkJZWxzZSB7CgkJCQlwcmludGxuKCLmrovlv7XjgarjgYzjgokiK2NwdU5hbWUrIuOBruWLneOBoeOBp+OBmeOAgiIpOwoJCQkJcmV0cnkgPSBmYWxzZTsKCQkJfQoKCQl9IHdoaWxlIChyZXRyeSk7Cgl9Cn0K