Citat:
Ursprungligen inskrivet av n3mo
Tack för det, jag förstår den första delen och håller på att applicera den till min kod. Frågan är den sista delen kan förklaras och om det finns något annat sätt än att använda "list" då det inte rekommenderas av min handledare.
private List<int> Swap(int a, int b, List<int> Deck):
Swap är en funktion som byter plats på position a i listan Deck med position b.
Först skapar den integern temp som får samma värde som position Deck[a] har.
Deck[a] ersätts med värdet i Deck[b].
Deck[b] ersätts med värdet i temp, alltså Deck[a]s tidigare värde.
Funktionen returnerar den modifierade listan Deck.
Temp behövs då följande rader inte gör vad funktionen avser:
Deck[a] = Deck[b]; //Deck[a] får värdet av Deck[b], helt rätt
Deck[b] = Deck[a]; //Deck[b] får värdet av Deck[a] som har värdet av Deck[b]
Ett alternativ skulle vara att skapa en klass som har hand om antalet lekar i blandningen, en för att återställa leken, en för att del ut kort. Snabbt ex:
class cardPool{
int numOfDecks;
vector<list<deck> > currentPool;
bool shuffleDeck();
card getCardFromDeck(); //Skicka ett kort från leken tills
//Det inte längre finns några kort.
bool changeNumOfDecks(int); //Ändra antalet kortlekar
int cardLeft(); //Antalet kort som finns kvar
}
Då kan du få en klass som du kan använda i alla dina kortspelprogram, ex. för texas holdem kan du köra något i stil med:
//Ge spelare kort
for(int i = 0; i<players; i++){
playerListOfCards[i].add(crdpl.getCardFromDeck());
playerListOfCards[i].add(crdpl.getCardFromDecK());
}
//Ge floppen kort
for(int i = 0; i<3; i++)
flopListOfCards.add(crdpl.getCardFromDeck());
Nu blir jag lite sugen på att bygga en sån klass själv!
Hade varit kul!