Hey Leute,
bin gerade dabei als Übung für OOP Blackjack zu Programmieren. Hoffe meine Vorstellung ist richtig vom Aufbau her. Compiler zeigt keine Fehler an, allerdings stürtzt mein Programm einfach ab.
Finde leider keine Fehler. Bitte nicht wundern, bin noch relativ am Anfang, also erstmal nur der Aufbau etc.
Vllt. findet jmd. den Fehler.
Spoiler anzeigen
main.cpp
Card.h + Card.cpp
Deck.h + Deck.cpp
Gruß
MB
bin gerade dabei als Übung für OOP Blackjack zu Programmieren. Hoffe meine Vorstellung ist richtig vom Aufbau her. Compiler zeigt keine Fehler an, allerdings stürtzt mein Programm einfach ab.
Finde leider keine Fehler. Bitte nicht wundern, bin noch relativ am Anfang, also erstmal nur der Aufbau etc.
Vllt. findet jmd. den Fehler.
main.cpp
Card.h + Card.cpp
C-Quellcode
- //CARD.H
- #include <string>
- #include <cstdlib>
- using namespace std;
- class Card
- {
- public:
- Card(int, int);
- string getName();
- string getFace();
- string getSuit();
- private:
- int face;
- int suit;
- string faces[13] = {"Ass", "Zwei", "Drei", "Vier", "Fünf", "Sechs",
- "Sieben", "Acht", "Neun", "Zehn", "Bube", "Dame", "König"};
- string suits[4] = {"Kreuz", "Pik", "Herz", "Karo"};
- };
- //CARD.CPP
- #include "Card.h"
- Card::Card(int s = 0, int f = 0)
- {
- suit = s;
- face = f;
- }
- string Card::getName()
- {
- return suits[suit] + " " + faces[face];
- }
- string Card::getFace()
- {
- return faces[face];
- }
- string Card::getSuit()
- {
- return suits[suit];
- }
Deck.h + Deck.cpp
C-Quellcode
- //DECK.H
- #include <iostream>
- #include <string>
- #include <cstdlib>
- #include <time.h>
- #include "Card.h"
- using std::cout;
- using std::cin;
- using std::endl;
- class Deck
- {
- public:
- Deck();
- Card DealACard();
- void Shuffle();
- void PrintAllCards();
- private:
- int size;
- int dealedCards;
- Card Cards[];
- time_t t;
- };
- //DECK.CPP
- #include "Deck.h"
- Deck::Deck()
- {
- size = 52;
- dealedCards = 0;
- time(&t);
- srand((unsigned int)t);
- //Deck füllen
- int k,m,n = 0;
- for(m = 0; m < 4; m++)
- {
- for(n = 0; n < 13; n++)
- {
- Card tmpC = Card(m,n);
- Cards[k] = tmpC; //Glaube hier ist der Fehler, weiß es aber nicht besser ...
- k++;
- }
- }
- }
- Card Deck::DealACard()
- {
- //Prüfen ob Size erreicht
- dealedCards++;
- Card tmpcard = Cards[(rand() % size + 1)];
- return tmpcard;
- }
- void Deck::PrintAllCards()
- {
- int i;
- for(i = 0; i < size; i++)
- {
- cout << Cards[i].getName() << endl;
- }
- }
- void Deck::Shuffle()
- {
- int x,i;
- for(x = 0; x < 6; x++)
- {
- for(i = 0; i < 52; i++)
- {
- int j = (rand()%52)+1;
- Card temp = Cards[i];
- Cards[i] = Cards[j];
- Cards[j] = temp;
- }
- }
- }
Gruß
MB