summaryrefslogtreecommitdiff
path: root/2a.c
diff options
context:
space:
mode:
Diffstat (limited to '2a.c')
-rw-r--r--2a.c78
1 files changed, 0 insertions, 78 deletions
diff --git a/2a.c b/2a.c
deleted file mode 100644
index 0985442..0000000
--- a/2a.c
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#include <stdio.h>
-#include <string.h>
-
-
-enum RPS {
- ROCK,
- PAPR,
- SCRS,
-};
-
-
-enum RPS
-rps_beats(enum RPS rps)
-{
- switch (rps) {
- case ROCK: return SCRS;
- case PAPR: return ROCK;
- case SCRS: return PAPR;
- }
- return -1;
-}
-
-
-int
-rps_pickscore(enum RPS rps)
-{
- switch (rps) {
- case ROCK: return 1;
- case PAPR: return 2;
- case SCRS: return 3;
- }
- return 0;
-}
-
-
-int
-rps_gamescore_b(enum RPS a, enum RPS b)
-{
- if (b == a)
- return 3;
- if (rps_beats(b) == a)
- return 6;
- return 0;
-}
-
-
-int
-main()
-{
- char buf[BUFSIZ];
- int score = 0;
-
- while (fgets(buf, sizeof(buf), stdin)) {
- enum RPS a, b;
-
- if (strlen(buf) != 4)
- break;
- switch (buf[0]) {
- case 'A': a = ROCK; break;
- case 'B': a = PAPR; break;
- case 'C': a = SCRS; break;
- default: return 1;
- }
- switch (buf[2]) {
- case 'X': b = ROCK; break;
- case 'Y': b = PAPR; break;
- case 'Z': b = SCRS; break;
- default: return 1;
- }
- score += rps_pickscore(b) + rps_gamescore_b(a, b);
- }
-
- printf("Score: %d\n", score);
-
- return 0;
-}
-