C Rennen



  • Moin,

    Edit: Danke an Dirk, funktioniert



  • Vorweg:
    du solttest das srand nur einmal im Programm aufrufen.
    Gleich am Anfang von main .

    Mit

    printf("%c \n",BahnIgel[IgelPos]);
        printf("%c \n",BahnHase[HasePos]);
    

    gibst du auch nur ein Zeichen aus.
    Da du die Zeichen vorher gerade frisch gesetzt hast, ist das identisch mit

    puts("I");
      puts("H");
    

    Wenn du das als String behandeln willst, dann musst du die alte Position mit einem Leerzeichen überschreiben und darfst die Nullterminierung nicht vergessen.
    Im Augenblick stehen auch Zufallswerte in dem Array.

    Du kannst auch in einer Schleife Leerzeichen ausgeben und dann das 'H' oder 'I'. So kannst du auf die Arrays verzichten.



  • Nicht einfach alles löschen 😡 :

    Genesiss schrieb:

    int main()
    {
     
    char BahnIgel[70]                                                           //Array Laufbahn Igel
    char BahnIgel[70]                                                           //Array Laufbahn Hase
    int IgelPos=0;                                                              //Positionsvariablen
    int HasePos=0;
    int IgelZZ;                                                                 //Zufallszahl Igel
    int HaseZZ;                                                                 //Zufallszahl Hase
     
     
    Sleep(3000);
    printf("Und los geht's!\n");
    Sleep(1000);
     
        while ((IgelPos<69) && (HasePos<69))                                    //Schleife Rennen Beginn
        {
     
        printf("---------------------Das Rennen von Hase und Igel---------------------\n");
     
     
        srand(time(NULL));
                                                                                //Berechnung der Zufallszahlen
        //IgelZufallszahl
        IgelZZ=rand() % 100+1;
     
        //HaseZufallszahl
        HaseZZ=rand() % 100+1;
     
     
        if (IgelZZ>=10 && IgelZZ<=50)                                             //Auswahl der Laufarten Igel
            IgelPos=IgelPos+3;
        if (IgelZZ>=60 && IgelZZ<=70)
            IgelPos=IgelPos-6;
        if (IgelZZ>70 && IgelZZ<=100)
            IgelPos=IgelPos+1;
     
     
        if (HaseZZ>=30 && HaseZZ<=40)                                             //Auswahl der Laufarten Hase
            HasePos=HasePos+9;
        if (HaseZZ==50)
            HasePos=HasePos-12;
        if (HaseZZ>=60 && HaseZZ<=80)
            HasePos=HasePos+1;
        if (HaseZZ>=90 && HaseZZ<=100)
            HasePos=HasePos-2;
     
     
        if (IgelPos<0)                                                            //Begrenzung des Rennens
            IgelPos=0;
        if (IgelPos>69)
            IgelPos=69;
        if (HasePos<0)
            HasePos=0;
        if (HasePos>69)
            IgelPos=69;
     
     
        BahnIgel[IgelPos]='I';
        BahnHase[HasePos]='H';
     
        printf("%c \n",BahnIgel[IgelPos]);
        printf("%c \n",BahnHase[HasePos]);
        printf("----------------------------------------------------------------------");
        printf("\n");
        printf("Igel: %i von 69!\n",IgelPos);
        printf("Hase: %i von 69!\n",HasePos);
     
     
        Sleep(1000);
        system("cls");
     
        }                                                                       //Schleife Rennen Ende
     
    return 0;
     
    }
    

Anmelden zum Antworten