Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * zraten.c
- *
- * Zahlenraten
- * erweiterte C-Konvertierung des BASIC-Beispiels:
- * 10 print"{clear}guess my number (1-99)":print
- * 20 x=int(rnd(1)*99)+1:n=0
- * 30 input"your guess";g:n=n+1
- * 40 if g<x then print"too small":goto 30
- * 50 if g>x then print"too large":goto 30
- * 60 print"got it! in "n"tries"
- *
- * M. Bergmann 01.01.2023
- *
- */
- #include <exec/types.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- /* -- Prototypen -- */
- int create_rnumber(void);
- int show_screen(int lauf, char *text, BOOL hit);
- /* -- create_rnumber() --*/
- int create_rnumber(void)
- {
- int rnumber = 0;
- srand((unsigned)time(NULL)); /* SEED für Zufallszahl */
- rnumber = rand() % 99; /* Bereich 0 - 99 */
- return rnumber;
- }
- /* -- show_screen() -- */
- int show_screen(int lauf, char *text, BOOL hit)
- {
- int tip;
- char meldung[128];
- system("CLS");
- strcpy(meldung, text);
- puts("====================");
- puts("= ZAHLENRATEN V1.0 =");
- puts("====================\n");
- puts("ERRATE ZAHL ZWISCHEN 0 und 99!\n");
- printf("Versuch : \t%d\n", lauf + 1);
- printf("UEBRIG : \t%d\n", 14 - lauf);
- printf("HINWEIS : \t%s\n", meldung);
- /* Zahl eingeben */
- if (hit == FALSE)
- {
- printf("\nEingabe: \t");
- scanf("%d", &tip);
- }
- return (tip);
- }
- /* -- main() -- */
- int main(void)
- {
- int rzahl = 0; /* Zufallzahl zwischen 0 und 99 */
- int guess = 0; /* geratene Zahl */
- int run = 0; /* aktueller Durchlauf */
- char meldung[128];
- /* -- Zufallszahl erzeugen -- */
- rzahl = create_rnumber();
- /* -- max. 15 Durchläufe erlauben -- */
- while (run < 15)
- {
- /* -- Geratene Zahl einlesen -- */
- if (run == 0)
- {
- guess = show_screen(run, "Rate jetzt!", FALSE);
- run++;
- }
- /* -- auswerten und Hinweis geben -- */
- if (guess == rzahl )
- {
- strcpy(meldung, "Treffer - VERSENKT!");
- guess = show_screen(run - 1, meldung, TRUE);
- printf("\nDie zu erratende Zahl war : %d\n\n", rzahl);
- return 0;
- }
- if (guess < rzahl )
- {
- strcpy(meldung, "Zahl zu klein.");
- guess = show_screen(run, meldung, FALSE);
- run++;
- }
- if (guess > rzahl )
- {
- strcpy(meldung, "Zahl zu gross.");
- guess = show_screen(run, meldung, FALSE);
- run++;
- }
- }
- printf("Zahl nicht erraten - schade!\nDie zu erratende Zahl war : %d\n", rzahl);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement