Zum Inhalt springen

Int funktionit nicht


yannicST

Empfohlene Beiträge

hi leute,

ich progamiere gerade ein Blackjack spie(bin noch anfänger), ich habe eine int für den dealer doch dort zeigt er immer einen Feheler an(zeile 109,110).

Bitte helf mir!

#include <stdio.h>

#include <math.h>

#include <stdlib.h>


int main(void)

{

    int karte, eingabe,karte_dealer;

    srand(time(0));

    karte_dealer=rand()%10+1;

    karte=rand()%10+1;

    int a,b,c,d;

    int e,f,g;

    int i,h,j;

    int k,l,m;

    char  name[10];


    printf("Name:");

    scanf("%s",&name);

    system("cls");

    printf("%s\n",name);

    a=karte;

    printf("%d\n",karte);

    karte=rand()%10+1;

    b=karte;

    printf("%d\n",karte);

    c=a+b;

    if(c==21)

    {

        goto LabelBlackjack;

    }

    LabelEingabe1:

    printf("Sie haben %d wollen sie passen/halten(1) oder noch eine karte(2)?  ",c);

    scanf("%d",&d);

    if(d==1)

    {

        goto LabelDealer;

    }

    else if(d==2)

    {

        goto  LabelNeueKarte1;

    }

        printf("\nNicht g\x81ltige Eingabe!\n");

        goto LabelEingabe1;


    LabelNeueKarte1:

    karte=rand()%10+1;

    e=karte;

    f=e+c;

    printf("%d\n",karte);

    if(f==21)

    {

        goto LabelBlackjack;

    }

    LabelEingabe2:

    printf("Sie haben %d wollen sie passen/halten(1) oder noch eine karte(2)?  ",f);

    scanf("%d",&g);

    if(g==1)

    {

        goto LabelDealer;

    }

    if(g==2)

    {

        goto  LabelNeueKarte2;

    }

    else

    {

        printf("\nNicht g\x81ltige Eingabe!\n");

        goto LabelEingabe2;

    }

    LabelNeueKarte2:

    karte=rand()%10+1;

    i=karte;

    h=f+i;

    printf("%d\n",karte);

    if(h==21)

    {

        goto LabelBlackjack;

    }

    LabelEingabe3:

    printf("Sie haben %d wollen sie passen/halten(1) oder noch eine karte(2)?  ",h);

    scanf("%d",&j);

    if(j==1)

    {

        goto LabelDealer;

    }

    if(j==2)

    {

        goto  LabelNeueKarte3;

    }

    else

    {

        printf("\nNicht g\x81ltige Eingabe!\n");

        goto LabelEingabe3;

    }

    LabelNeueKarte3:

    karte=rand()%10+1;

    k=karte;

    l=k+h;

    printf("%d\n",karte);

    if(l==21)

    {

        goto LabelBlackjack;

    }

    LabelEingabe4:

    printf("Sie haben %d. ",l);


    printf("Sie k\x94nnen  keine weiteren Karten ziehen, der Dealer ist am Zug!");

    LabelDealer:

    int bank,bank2,bank3; //hier ist der fehler

    int bank4,bank5;        //hier ist der fehler

    int bank6,bank7;        //hier ist der fehler

    int bank8,bank9;

    printf("\nDealer\n");

    karte=rand()%10+1;

    bank=karte;

    karte=rand()%10+1;

    bank2=karte;

    printf("%d\n%d\n",bank,bank2);

    bank3=bank+bank2;

    if(bank3==21)

    {

        goto  LabelDealerWin;

    }

    karte=rand()%10+1;

    bank4=karte;

    bank5=bank4+bank3;

    printf("%d\n",bank5);

    if(bank5==21)

    {

        goto LabelDealerWin;

    }

    if(bank5>21)

    {

        goto LabelWin;

    }

    karte=rand()%10+1;

    deal7=karte;

    bank6=bank7+bank5;









    LabelWin:

    printf("Sie haben gewonnen!");

    LabelDealerWin:

    printf("Der Bot hat gewonnen!");

    LabelBlackjack:

    printf("!!!!Blackjack!!!!");


}

danke im vorraus

yannic

Link zu diesem Kommentar
Auf anderen Seiten teilen

Betrache das, was ich nun schreibe, bitte als guten Rat:

Der Stil deines Programms ist furchtbar. Da wird wild in der Gegend herumgesprungen, die Variablen sind schlecht benannt oder einfach nur durchnummeriert, und überall findet sich doppelter und dreifacher Code. Es ist keinerlei Struktur erkennbar.

Das ist bei einem Anfänger nicht weiter verwunderlich. Aber trotzdem solltest du so nicht weitermachen. Wirf das Programm weg.

Dann fängst du von vorne an. Und diesmal schreib nicht einfach drauf los, sondern mach dir vorher Gedanken über die Struktur deines Programms. Mach einen Programmablaufplan oder ein Struktogramm, bevor du auch nur eine einzige Zeile Code schreibst, damit du in die strukturierte Denkweise reinkommst.

Und wenn du das mit diesem Programm nicht schaffst, dann such dir eine einfachere Problemstellung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mal ein paar konkrete Tipps:

* Versuche Funktionalität soweit runterzubrechen, wie es geht.

Beispielsweise kannst Du sämtliche Interaktionen mit dem Spieler in separate Abschnitte Kapseln.

* Benenne Deine Variablen sinnvoll - und keine Angst vor langen Namen

Programmcode will gelesen werden. Das Verhältnis von Code lesen zu Code schreiben ist mindestens 5:1. Das heißt, eine Codezeile wird einmal geschrieben, später aber mindestens noch 5 mal gelesen (ohne sie zu ändern).

Was spricht also dagegen für Code die selbe Sorgfalt an den Tag zu legen, wie man sie für das Formulieren von Texten aufbringt.

Wenn Du eine Variable hast, die den Kartenstapel bezeichnet, dann kannst Du sie auch Kartenstapel nennen. Wenn Du eine Karte hast, nenn' die Variable, Karte. Wenn Du die Summe der Spielerkarten hast, nenn' die Variable ruhig SummeSpielerKarten.

Und dank CodeCompletion hat man trotz langer Namen nicht unbedingt mehr Tipparbeit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...