import java.util.Map;
enum Symbol {
ROCK,
PAPER,
SCISSORS;
private static final Map
<Symbol, Symbol
> ASSOCIATIONS
= Map.
of( ROCK, SCISSORS,
SCISSORS, PAPER,
PAPER, ROCK
);
public static void main
(String[] args
) { System.
out.
println("Rock against scissors: " + ROCK.
against(SCISSORS
)); System.
out.
println("Rock against paper: " + ROCK.
against(PAPER
)); System.
out.
println("Rock against rock: " + ROCK.
against(ROCK
)); }
public Result against(Symbol other) {
if (ASSOCIATIONS.get(this) == other) {
return Result.WIN;
}
else if (ASSOCIATIONS.get(other) == this) {
return Result.LOSE;
}
else {
return Result.TIE;
}
}
}
enum Result {
WIN, LOSE, TIE;
}
aW1wb3J0IGphdmEudXRpbC5NYXA7CgplbnVtIFN5bWJvbCB7CiAgICBST0NLLAogICAgUEFQRVIsCiAgICBTQ0lTU09SUzsKCiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBNYXA8U3ltYm9sLCBTeW1ib2w+IEFTU09DSUFUSU9OUyA9IE1hcC5vZigKICAgICAgICBST0NLLCBTQ0lTU09SUywKICAgICAgICBTQ0lTU09SUywgUEFQRVIsCiAgICAgICAgUEFQRVIsIFJPQ0sKICAgICk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUm9jayBhZ2FpbnN0IHNjaXNzb3JzOiAiICsgUk9DSy5hZ2FpbnN0KFNDSVNTT1JTKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSb2NrIGFnYWluc3QgcGFwZXI6ICIgKyBST0NLLmFnYWluc3QoUEFQRVIpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJvY2sgYWdhaW5zdCByb2NrOiAiICsgUk9DSy5hZ2FpbnN0KFJPQ0spKTsKICAgIH0KCiAgICBwdWJsaWMgUmVzdWx0IGFnYWluc3QoU3ltYm9sIG90aGVyKSB7CiAgICAgICAgaWYgKEFTU09DSUFUSU9OUy5nZXQodGhpcykgPT0gb3RoZXIpIHsKICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5XSU47CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKEFTU09DSUFUSU9OUy5nZXQob3RoZXIpID09IHRoaXMpIHsKICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5MT1NFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5USUU7CiAgICAgICAgfQogICAgfQp9CgplbnVtIFJlc3VsdCB7CiAgICBXSU4sIExPU0UsIFRJRTsKfQo=