Newbie braucht hilfe
-
Hi!
Ich hab mir vorgenommen ein kartenspiel zu schreiben.
Allerdings hab ich keine Ahnung wie ich die karten 'mischen' kann.Für Lösungsvorschläge bedanke ich mich schon mal.
-
Wenn sie in einem std::vector stehen mit random_shuffle.
Jockel
-
Jockelx schrieb:
Wenn sie in einem std::vector stehen mit random_shuffle.
Jockel
sorry, aber ich versteh kein wort
-
Hi!
Die Funktion random_shuffle könnte das vllt. gut erledigen oder rotate an diversen stellen ansetzen lassen oder permutationen erzeugen mit next_permutation (bzw. prev_permutation).
Code-Hacker
-
Hi!
Canon schrieb:
Jockelx schrieb:
Wenn sie in einem std::vector stehen mit random_shuffle.
Jockel
sorry, aber ich versteh kein wort
OMG!
random_shuffle ist ein Algorithmus aus der Header algorithm. Diese sind anwendbar auf alle Container. Wie speicherst du die Elemente? In einem vector?Code-Hacker
-
Sag mal was für ein Spiel du schreibst.
Ich hab mich gerade an Doppelkopf versucht und bin wohl
daran gescheitert.
Jetzt weiss ich aber wenigstens, warum alle mir bekannten
Doppelkopfspiele so schlecht sindJockel
-
hast du schon einen ansatz?es gibt sehr viele möglichkeiten für einen allgorithmus fürs mischen...z.b rekursiv oder itterativ...
-
Primitiv aber leicht verständlich:
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int zahlen[10]={0,1,2,3,4,5,6,7,8,9}; int tmpzahl,zufall1,zufall2; for(int i=0; i<10; i++) { cout << "zahlen[" << i << "]=" << zahlen[i] << endl; } cout << endl << endl << endl; srand(time(NULL)); for(int i=0; i<50; i++) { zufall1=rand() % 10; zufall2=rand() % 10; tmpzahl=zahlen[zufall2]; zahlen[zufall2]=zahlen[zufall1]; zahlen[zufall1]=tmpzahl; } for(int i=0; i<10; i++) { cout << "zahlen[" << i << "]=" << zahlen[i] << endl; } cin.get(); return 0; }