Kortspel C++ (Array kortlek)
Hejsan forumet!!!
Ja jag sitter med C++. Håller på med en kortlek där EN array skall representera en kortlek. Kortleken går ut på att man skall blanda en kortlek och sedan skall max sex kort dras, tre till spelaren och tre till datorn. Bäst av tre gäller. Just nu sitter jag fast hur jag skall skapa en array just för kortleken. Koden nedan fungerar tills man kommer till card(); där kortleken skapas och skall föras in i arrayen som är tvådimensionell. När jag kör programmet "kraschar" själva programmeringsprogrammet. Varför gör den det och vad orsakar problemet? Testa så får ni se!
Kan inte se vad fel är i koden iallafall. Har ni bättre förslag hur det skall genomföras är det välkommet.
Spelet börjar med en huvudmeny där spelaren frågas om den vill börja spela sedan hoppar programmet vidare till funktionen card(); som skall skapa kortleken. Just nu har jag programmerat så att den skall skriva ut hela kortleken. Tanken är sedan att finna ett sätt att blanda kortleken via en rand funktion som skall kasta om arrayens positioner slumpmässigt.
#include <iostream>
#include <ctime>
#include <string>
#include <cstring>
#include <vector>
using namespace std;
// Globala Variabler
int deckofcards[4][13]; //Array kortlek
int suits[4]; // Array för färg på korten
int value[13]; // Array för kortens valörer
int computer[3]; // array för spelarens dragna kort
int player[3]; // array för datorns dragna kort
int computercard;
int playercard;
int cardplayer;
int cardcomputer;
char answer;
// Funktioner
void startmeny();
void cards();
void playagain();
int main(){
int playerpoints;
int computerpoints;
int won = 0;
int lost = 0;
startmeny();
cards();
cout<< " |---------- ROUND 1 ----------| " <<endl;
cout<< " Your card: " << player[1] <<endl;
cout<< " Computer card: " << computercard <<endl;
if(playercard > computercard){
cout << " You Won !!! " <<endl;
won++;
cout << " You have won: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
else if (playercard < computercard){
cout << " YOU LOST!!! " <<endl;
lost++;
cout << " You have won: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
else if (playerpoints == computerpoints){
cout << " It's a Draw " <<endl;
cout << " You have won: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
cout<< " |---------- RESULT ----------| " <<endl;
if(playerpoints > computerpoints){
cout << " YOU WON THE GAME!!! " <<endl;
won;
cout << " You have won: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
else if (playerpoints < computerpoints){
cout << " YOU LOST THE GAME !!! " <<endl;
lost;
cout << " Du har vunnit: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
else if (playerpoints == computerpoints){
cout << " THE GAME IS A DRAW !!! :S " <<endl;
cout << " You have won: " << won << " times. " <<endl;
cout << " You have lost: " << lost << " times. " <<endl;
}
playagain();
cin.get();
cin.ignore();
}//main
// FUNKTIONER
void cards(){ // Skapa kortleken
int x;
int y;
string suits[4];
string value[13];
string deckofcards[4][13]; // Arrayen "kortleken" skapas via suits och value
suits[1] = "Clubs";
suits[2] = "Diamonds";
suits[3] = "Hearts";
suits[4] = "Spades";
value[1] = "2";
value[2] = "3";
value[3] = "4";
value[4] = "5";
value[5] = "6";
value[6] = "7";
value[7] = "8";
value[8] = "9";
value[9] = "10";
value[10] = "Jack";
value[11] = "Queen";
value[12] = "King";
value[13] = "Aces";
for(x = 0 ; x < 4; x++){
for(y = 0; y < 13; y++){
deckofcards[x][y] = suits[x] + value[y]; // lägga in korten i ordning
}
}
for(x = 0; x < 4; x++){
for(y = 0; y < 13; y++){
cout<< deckofcards[x][y] + ' ' <<endl;//skriva ut kortleken
}
}
}
void startmeny(){
char answer;
do{
cout<< " THE CARDGAME! " <<endl;
cout<< " Turn the cards and see if you win, best of three! " <<endl;
cout<< " Do you want to play? (Y/N) " <<endl <<endl;
cin>> answer;
}while((answer != 'y') && (answer != 'Y'));
}
void playagain(){
char playagain; // variabeln for val for spela igen
cout<< " Want to play the game again? (Y/N) " <<endl;
cin>> playagain; // variabeln for val for spela igen
}