Benötige hilfe bei Projekt ( 17 und 4 )



  • okay, ich hab bisher so gedacht,
    das spiel soll für 2 spieler ausgelegt sein,
    erst wird 1 array mit den "karten" gefüllt, also 52,
    dachte also das ich ne schleife in ner schleife mach und dann immer 4x1 4x2... usw. ins array schreibe,
    dann hab ich ja aber das problem das die "karten" noch nicht gemischt sind bzw. weiss ich nicht wie ich dann ne "zufällige" karte/zahl bekomme

    der spieler soll dann die möglichkeit haben noch eine karte zu nehmen oder stopp zu sagen, sagt er stopp soll sein ergebnis gespeichert werden und dann ist spieler 2 dran der ebenfalls noch eine karte nehmen kann oder stopp sagt, sein ergebnis wird dann ebenfalls gespeichert

    die ergebnisse sollen nachher ausgewertet werden, und der gewinnername wird ausgegeben

    ich weiss jetz nicht ob das so funktioniert 😕



  • flashderechte schrieb:

    okay, ich hab bisher so gedacht,
    das spiel soll für 2 spieler ausgelegt sein,
    erst wird 1 array mit den "karten" gefüllt, also 52,
    dachte also das ich ne schleife in ner schleife mach und dann immer 4x1 4x2... usw. ins array schreibe,
    dann hab ich ja aber das problem das die "karten" noch nicht gemischt sind bzw. weiss ich nicht wie ich dann ne "zufällige" karte/zahl bekomme

    der spieler soll dann die möglichkeit haben noch eine karte zu nehmen oder stopp zu sagen, sagt er stopp soll sein ergebnis gespeichert werden und dann ist spieler 2 dran der ebenfalls noch eine karte nehmen kann oder stopp sagt, sein ergebnis wird dann ebenfalls gespeichert

    die ergebnisse sollen nachher ausgewertet werden, und der gewinnername wird ausgegeben

    ich weiss jetz nicht ob das so funktioniert 😕

    Was die prinzipiellen Schritte angeht ist das alles sehr leicht machbar.
    Programmier einfach mal drauf los.
    Du kannst ja mit einer Klasse "Game" beginnen...

    Für das zufällige Kartenziehen bzw. Mischen solltest du dir rand() ansehen:
    http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html



  • Kuldren schrieb:

    Für das zufällige Kartenziehen bzw. Mischen solltest du dir rand() ansehen:
    http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html

    oder gleich std::random_shuffle() (auch auf cplusplus.com, unter algorithm)



  • Dieser Thread wurde von Moderator/in Korbinian aus dem Forum Projekte in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Wie schon beschrieben: Setz Dich erst mal mit Stift und Papier hin und arbeite ein Konzept aus: D.h.: Welche Klassen benötige ich? Welche Funktionen liefern Sie? Wie sehen die Schnittstellen aus? Wo kann man sinnvoll Vererbung einbauen? Lohnt sich eine GameStateMachine?

    Als grobe Übersicht:

    class Card    // Einzelne Karte
    {
        int value; // Wert (7,8,9,10,11)
        std::string name;
        // Oder gleich als std::map
    }    
    class Deck;    // Kartendeck
    {
        void Shuffle()    // Mischen
        {
             std::random_shuffle(cards); // #include <algorithm>
        }
        void Deal();       // Karte austeilen
    
        Card cards[52];
    
    }
    
    class Hand    // Eine Kartenhand
    {
        std::vector<Card> cards;    // Vektor mit Karten
        void GetCard();
    
    }
    
    class Player
    {
        Hand hand;     // Jeder Spieler hat eine Hand mit Karten
    }
    
    class BlackJack
    {
        // Hier werden die Spielregeln festgelegt und der Gewinner berechnet
        void CalcWinner();
    }
    
    class Game
    {
        Deck deck;
        Player player[x];
        BlackJack bjack;
    
        void Round();   // eine Runde
        void Reset();
    }
    
    etc pp...
    

    Ob Du jetzt manche Klassen auf Strukturen reduzierst sei dahingestellt.
    Dieses Grundgerüst kannst Du Schritt für Schritt umsetzen...

    EDIT: Auf die Form wurde hier ebenfalls verzichtet. So oder ähnlich könnte man sich ein Konzept aufbauen



  • XHansWurstX schrieb:

    Ob Du jetzt manche Klassen auf Strukturen reduzierst sei dahingestellt.

    Was ist denn damit gemeint? 😕



  • Zweifler schrieb:

    XHansWurstX schrieb:

    Ob Du jetzt manche Klassen auf Strukturen reduzierst sei dahingestellt.

    Was ist denn damit gemeint? 😕

    XHansWurstX schrieb:

    class Card    // Einzelne Karte
    {
        int value; // Wert (7,8,9,10,11)
        std::string name;
        // Oder gleich als std::map
    }
    

    Es würde zB reichen eine einzelne Karte statt als Klasse, als einfache Struktur zu implementieren...



  • XHansWurstX schrieb:

    Es würde zB reichen eine einzelne Karte statt als Klasse, als einfache Struktur zu implementieren...

    Mir ist noch nicht ganz klar was du mit "einfache Struktur" meinst.

    In C++ ist

    class {};
    

    und

    struct {};
    

    bis auf die unterschiedliche private/public Politik dasselbe.

    Aber vielleicht meinst du es anders.



  • Hallo,

    ich habe auch das Projekt 17+4 und hänge gerade fest.

    Wenn der Computer bei zwischen den Zahlen 10-15 liegt soll die wahrscheinlichkeit das er noch eine zieht bei 70 % liegen und bei 15-18 nur noch bei 30 % könnte mir da jemand helfen... weiß wirklich nicht wie ich das richtig im Code schreiben kann.

    Danke schon mal


  • Mod

    Zieh eine Zufallszahl zwischen 0 und 1 und guck, ob sie kleiner als 0.7 ist. Die Wahrscheinlichkeit dafür ist 70%.

    Und beim nächsten Mal bitte keine Uraltthreads ausgraben, wenn man eine neue Frage hat.


Anmelden zum Antworten