Würfeln war zu allen Zeiten ein beliebtes Spiel. Simulieren Sie mit Holfe eines Programms das 10-malige Werfen eines Würfels durch einen Spieler. Geben Sie das Ergebnis und die Häufigkeitsverteilung der geworfenen Zahlen aus.
- Folgende Vorgehensweise kann Ihnen bei der Implementierung helfen:
- Legen Sie geeignete Variablen zum Verwalten der gezogenen Zahlen und der ermittelten Häufigkeiten an.
- "Würfeln" Sie 10 Zufallszahlen.
- Geben Sie die gezogenen Zahlen aus.
- Ermitteln Sie die Häufigkeit des keweiligen Auftretens der Augenzahlen von 1 bis 6.
- Geben Sie diese Häufigkeiten aus.
- Erweitern Sie das Programm derart, dass nicht nur ein Spieler beteiligt ist, sondern mehrere Spieler mitspielen.
- Überlegen Sie sich, wie Sie das Programm erweitern müssten, um auch die Namen und die Adressen der Spieler verwalten zu können.
Hinweise:
- Programmieren Sie so, dass eine Änderung der Spielerzahl und der Wurfzahl pro Spieler möglichst wenig Aufwand bedeutet.
- Das Layout kann sich an untenstehender Abbildung orientieren. Es ist ein Testfall für 8 Spielern mit je 10 Würfen abgebildet.
- Für die Generierung der Zufallszahlen können Sie die Funktionen randomize() und rand() einsetzen.
Übungen:
1. Legen Sie eine geeignete Variable zum Verwalten der gezogenen Zahlen an!
int aiValues[10];
2. Würfeln Sie 10 Zufallszahlen!
for ( int k = 0; k < 10; k++) {
aiValue[k] = rand() % 6 + 1;
}
3. Ermitteln Sie die Häufigkeitsverteilung der gezogenen Zahlen!
int aiTimes[6];
for (int k = 0; k < 10; k++) {
aiTimes[aiValues[k] - 1] ++;
}
4. Erweitern Sie das Programm, so dass verschiedene Spieler verwaltet werden können!
2014.10.15
5. Die Namen der beteiligten Spieler sollen verwaltbar sein!
der Name ist keine int-Info, also nicht wie bisher im Feld verwaltbar, also brauchen wir eine Datenstruktur die mehrere verschiedene Datentypen verwalten kann
struct StrukturtypName {
Datentyp StrukturelementName;
Datentyp StrukturelementName;
};
struct T_Wuerfeln {
char cName[20];
int aiZehnMalZufall[10];
};
6. Definieren Sie eine Variable für einen einzelnen Spieler!
T_Wuerfeln Spieler;
7. Lesen Sie den Namen des Spielers ein!
cin >> Spieler.cName;
8. Speichern Sie die gewürfelten Zahlen des Spielers!
for(int i = 0; i < 10; i++) {
Spieler.aiZehnMalZufall[i] = rand() % 6 +1;
}
9. Zeigen Sie den Namen und die Würfelergebnisse an!
cout << Spieler.cName << ": ";
for(int i = 0; i < 10; i++) {
cout << Spieler.aiZehnMalZufall[i] << " ";
}
10. Definieren Sie eine Variable für mehrere Spieler (z.B. 8)!
T_Wuerfeln Spieler[8];
11. Lesen Sie die Namen der Spieler ein!
for(int i = 0; i < 8; i++) {
cin >> Spieler[i].cName;
}
12. Speichern Sie alle gewürfelten Zahlen aller Spieler!
for(int spnr = 0; spnr < 8; spnr++) {
for(int i = 0; i < 10; i++) {
Spieler[spnr].aiZehnMalZufall[i] = rand() % 6 + 1;
}
}
13. Zeigen Sie alle Namen und alle Würfelergebnisse an!
14. Ermitteln Sie die gesamte Häufigkeitsverteilung!
Welche Änderungen sind zue Speicherung der Häufigkeitsverteilung jedes einzelnen Spielers nötig?
Quellcode:
Würfelspiel für 1 Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-13/Wuerfelspiel_1_Spieler_besser.cpp
Würfelspiel für mehrere Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-14/Wuerfelspiel.cpp
Würfelspiel für 1 Spieler mit Name: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_1_Spieler_mit_name.cpp
Würfelspiel für mehrere Spieler mit Namen: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_mit_Name.cpp
Würfelspiel für mehrere Spieler mit Namen und persönliche Häufigkeit: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-16/Wuerfelspiel_mit_Name_und_persoenliche_Haeufigkeiten.cpp
3. Ermitteln Sie die Häufigkeitsverteilung der gezogenen Zahlen!
int aiTimes[6];
for (int k = 0; k < 10; k++) {
aiTimes[aiValues[k] - 1] ++;
}
4. Erweitern Sie das Programm, so dass verschiedene Spieler verwaltet werden können!
2014.10.15
5. Die Namen der beteiligten Spieler sollen verwaltbar sein!
der Name ist keine int-Info, also nicht wie bisher im Feld verwaltbar, also brauchen wir eine Datenstruktur die mehrere verschiedene Datentypen verwalten kann
struct StrukturtypName {
Datentyp StrukturelementName;
Datentyp StrukturelementName;
};
struct T_Wuerfeln {
char cName[20];
int aiZehnMalZufall[10];
};
6. Definieren Sie eine Variable für einen einzelnen Spieler!
T_Wuerfeln Spieler;
7. Lesen Sie den Namen des Spielers ein!
cin >> Spieler.cName;
8. Speichern Sie die gewürfelten Zahlen des Spielers!
for(int i = 0; i < 10; i++) {
Spieler.aiZehnMalZufall[i] = rand() % 6 +1;
}
9. Zeigen Sie den Namen und die Würfelergebnisse an!
cout << Spieler.cName << ": ";
for(int i = 0; i < 10; i++) {
cout << Spieler.aiZehnMalZufall[i] << " ";
}
10. Definieren Sie eine Variable für mehrere Spieler (z.B. 8)!
T_Wuerfeln Spieler[8];
11. Lesen Sie die Namen der Spieler ein!
for(int i = 0; i < 8; i++) {
cin >> Spieler[i].cName;
}
12. Speichern Sie alle gewürfelten Zahlen aller Spieler!
for(int spnr = 0; spnr < 8; spnr++) {
for(int i = 0; i < 10; i++) {
Spieler[spnr].aiZehnMalZufall[i] = rand() % 6 + 1;
}
}
13. Zeigen Sie alle Namen und alle Würfelergebnisse an!
14. Ermitteln Sie die gesamte Häufigkeitsverteilung!
Welche Änderungen sind zue Speicherung der Häufigkeitsverteilung jedes einzelnen Spielers nötig?
Quellcode:
Würfelspiel für 1 Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-13/Wuerfelspiel_1_Spieler_besser.cpp
Würfelspiel für mehrere Spieler: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-14/Wuerfelspiel.cpp
Würfelspiel für 1 Spieler mit Name: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_1_Spieler_mit_name.cpp
Würfelspiel für mehrere Spieler mit Namen: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-15/Wuerfelspiel_mit_Name.cpp
Würfelspiel für mehrere Spieler mit Namen und persönliche Häufigkeit: https://github.com/binary-sequence/awp-uebungen/blob/master/2014-10-16/Wuerfelspiel_mit_Name_und_persoenliche_Haeufigkeiten.cpp
No hay comentarios:
Publicar un comentario