/* Original Forge practice program. See LICENSE.txt. */ #include #include #include int award_points(int tokens, int chain, int misses) { if (tokens > 99) tokens = 99; int points = tokens * 7; if (chain >= 3) points += 50; points -= misses * 2; return points < 0 ? 0 : points; } static int argument(const char *text, int *value) { char *end; errno = 0; long n = strtol(text, &end, 10); if (errno || end == text || *end || n < 0 || n > 999) return 0; *value = (int)n; return 1; } int main(int argc, char **argv) { int tokens, chain, misses; if (argc != 4 || !argument(argv[1], &tokens) || !argument(argv[2], &chain) || !argument(argv[3], &misses)) { fprintf(stderr, "Use: score_lab TOKENS CHAIN MISSES (integers 0..999)\n"); return 2; } printf("Forge practice score: %d\n", award_points(tokens, chain, misses)); return 0; }