Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Int funktionit nicht

Empfohlene Antworten

Veröffentlicht

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

danke für die schnelle antwort, du hast mir auch geholfen und danke fur den tipp mit dem syl doch ich bin noch anfänger und hatte nichts anderes parat

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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.