/* $Source$ * $State$ * $Revision$ */ #include #include #include char buffer[32]; char PlayerName[32]; int Number; int Attempts; void reads(void) { char* p; printf("> "); fflush(stdout); fgets(buffer, sizeof(buffer), stdin); p = strchr(buffer, '\n'); if (p != NULL) *p = '\0'; } void game(void) { printf("See if you can guess my number.\n"); Number = rand() % 100; Attempts = 1; for (;;) { int guess; printf("\n"); reads(); guess = atoi(buffer); if (guess == Number) { printf("\nYou got it right in only %d %s!\n", Attempts, (Attempts == 1) ? "go" : "goes"); return; } if (guess < Number) printf("\nTry a bit higher.\n"); if (guess > Number) printf("\nTry a bit lower.\n"); Attempts++; } } int main(int argc, char* argv[]) { printf("\nHi there! I'm written in C. Before we start, what is your name?\n"); reads(); strcpy(PlayerName, buffer); printf("\nHello, %s! ", PlayerName); for (;;) { game(); printf("\nWould you like another go?\n"); reads(); if ((buffer[0] == 'n') || (buffer[0] == 'N')) { printf("\nThanks for playing --- goodbye!\n"); exit(0); } printf("\nExcellent! "); } return 0; }