Skip to content

Instantly share code, notes, and snippets.

@surinoel
Created July 16, 2019 14:34
Show Gist options
  • Save surinoel/4eaf3bdb0fc8245f8c7747aab7cfddce to your computer and use it in GitHub Desktop.
Save surinoel/4eaf3bdb0fc8245f8c7747aab7cfddce to your computer and use it in GitHub Desktop.
#include <stdio.h>
int frame[11], is_strike[11], is_spare[11];
int score;
int totalsum(int frameNum) {
int sum = 0;
for (int i = 1; i <= frameNum; i++) {
sum += frame[i];
}
return sum;
}
int main(void) {
for (int i = 1; i <= 10; i++) {
printf("%d frame first score : ", i);
scanf("%d", &score);
int frameScore = 0;
frameScore += score; frame[i] += score;
if (i - 2 >= 1 && is_strike[i - 2] > 0) {
is_strike[i - 2] -= 1;
frame[i - 2] += score;
if (is_strike[i - 2] == 0) {
printf("%d frameScore : %d\n", i - 2, totalsum(i - 2));
}
}
if (i - 1 >= 1 && is_strike[i - 1] > 0) {
is_strike[i - 1] -= 1;
frame[i - 1] += score;
if (is_strike[i - 1] == 0) {
printf("%d frameScore : %d\n", i - 1, totalsum(i - 1));
}
}
if (i - 1 >= 1 && is_spare[i - 1] > 0) {
is_spare[i - 1] -= 1;
frame[i - 1] += score;
if (is_spare[i - 1] == 0) {
printf("%d frameScore : %d\n", i - 1, totalsum(i - 1));
}
}
if (score == 10) {
is_strike[i] += 2;
continue;
}
printf("%d frame second score : ", i); scanf("%d", &score);
frameScore += score; frame[i] += score;
if (i - 1 >= 1 && is_strike[i - 1] > 0) {
is_strike[i - 1] -= 1;
frame[i - 1] += score;
if (is_strike[i - 1] == 0) {
printf("%d frameScore : %d\n", i - 1, totalsum(i - 1));
}
}
if (frameScore == 10) {
is_spare[i] += 1;
continue;
}
printf("%d frameScore : %d\n", i, totalsum(i));
}
if (is_strike[10]) {
printf("10 frame second score : "); scanf("%d", &score);
if (is_strike[9]) {
frame[9] += score;
is_strike[9] -= 1;
printf("9 frameScore : %d\n", totalsum(9));
}
frame[10] += score;
printf("10 frame third score : "); scanf("%d", &score);
frame[10] += score;
printf("10 frameScore : %d\n", totalsum(10));
}
else if (is_spare[10]) {
printf("10 frame second score : "); scanf("%d", &score);
frame[10] += score;
printf("10 frameScore : %d\n", totalsum(10));
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment