Permalänk
Medlem

[C++] Blackjack problemz

Ska göra ett blackjack spel dock har jag fastnat nu... När man ska stanna så blir det endast en lång infinity loop som aldrig slutar. (sök efter "while(val == '2'){ ") så hittar ni det.

Sen vill jag också att spelaretot och banktot ska bli 0 när man stannar så man kan starta om spelet utan att starta om hela programmet.

/* Black Jack Oscar Martin funktoner: blanda() */ #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> #include <regex> #include <string> #include <stdlib.h> using namespace std; //Förbered funktioner /* Globala Variabler */ int kortlek[208]; int ordning[208]; int dKort=0; int bank[5]; int spelare1[5]; char val; // Funktioner void slump(); void kortleken(); void start(); int delaut(); void startmeny(); char meny(); int main(){ int spelaretot=0; int banktot=0; int runda=0; int brunda=0; start(); val = meny(); do{ while(val == '1'){ //Dela ut korten till spelare och banken (ge endast 1 kort till banken) spelare1[runda]=delaut(); dKort++; if(runda == 0){ bank[runda]=delaut(); banktot=bank[runda]%100+banktot; dKort++; } //Skriv ut Korten cout << "=== KORT ===" << endl; cout << "Du: " << spelare1[runda]%100 << endl; if(runda == 0){ // Visa endast bankens totala första rundan. cout << "Bank: " << bank[runda]%100 << endl; } spelaretot=spelare1[runda]%100+spelaretot; cout << endl; //Skriv ut det totala cout << "=== TOTALT ===" << endl; cout << "Du:" << spelaretot << endl; if(runda == 0){ // Visa endast bankens totala första rundan. cout << "Banken:" << banktot << endl; } //Kolla spelarens kort > 21 = tjock == 21 Vunnit if(spelaretot > 21){ cout << "TJOCK!" << endl; start(); val = meny(); } else if(spelaretot == 21 && runda == 1){ cout << "==============" << endl; cout << "==BLACK JACK==" << endl; cout << "Du har Vunnit!" << endl; cout << "==============" << endl; start(); val = meny(); } //Här gör vi så att spelaren kan fortsätta hitta eller stanna cout << "Hit eller Stop? H:S" << endl; cin >> val; runda++; } while(val == '2'){ //Om spelaren stannar visa det totala och stanna spelet. //Om runda är 0 och spelaretot är 0 så är inte spelet startat alltså vill //spelaren avsluta programmet if(runda == 0 && spelaretot == 0){ return 0; } while(brunda < 5 || banktot <= 16){ bank[runda]=delaut(); dKort++; banktot=bank[runda]%100+banktot; brunda++; } cout << endl; cout << "=== TOTALT ===" << endl; cout << "Du:" << spelaretot << endl; cout << "Banken:" << banktot << endl; } getch(); cout << "DINMAMMA"; return 0; }while(val != '3'); }// End main /* Funktioner */ void slump(){ srand(time(0)); int temp; ordning[0]=rand()%208; for(int i=1; i < 208; i++){ temp=rand()%208-1; for(int n=0; n < i; n++){ if(temp == ordning[n]){ temp=rand()%208-1; } else{ ordning[i]=temp; } } } } void kortleken(){ int kort=0; for(int antal=0; antal < 4; antal++){ // Hjärter for(int h=antal*52; h <= 12+antal*52; h++){ kortlek[h]=101+kort; kort++; } kort=0; //Ruter for(int r=13+antal*52; r <= 25+antal*52; r++){ kortlek[r]=201+kort; kort++; } kort=0; //Klöver for(int k=26+antal*52; k <= 38+antal*52; k++){ kortlek[k]=301+kort; kort++; } kort=0; //Spader for(int s=39+antal*52; s <= 51+antal*52; s++){ kortlek[s]=401+kort; kort++; } kort=0; } } void start(){ slump(); kortleken(); } int delaut(){ return kortlek[ordning[dKort]]; } char meny(){ char val; cout << "----- BLACK JACK ------" << endl; cout << "1 = Nytt spel" << endl; cout << "2 = Avsluta Spel" << endl; cin >> val; return val; }

Visa signatur

ᕦ(ツ)ᕤ

Permalänk
Medlem

När spelaren stannar ska väll banken dra sina kort tills han är över 16 ?

Sen får du se till att val ändras så spelet löper vidare.

Visa signatur

orka