You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.2 KiB

  1. #include "SchereSteinPapier.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. //Erstellen einer Random Nummer
  6. int generateRandom() {
  7. return rand() % 3;
  8. }
  9. //Festlegung des Gewinners
  10. int determineWinner(int spielerWahl, int computerWahl) {
  11. if ((spielerWahl == 0 && computerWahl == 2) ||
  12. (spielerWahl == 1 && computerWahl == 0) ||
  13. (spielerWahl == 2 && computerWahl == 1)) {
  14. return 1; // Spieler gewinnt
  15. }
  16. else if (spielerWahl == computerWahl) {
  17. return 0; // Unentschieden
  18. }
  19. else {
  20. return -1; // Computer gewinnt
  21. }
  22. }
  23. int run_scheresteinpapier() {
  24. srand((unsigned int)time(NULL));
  25. int runden;
  26. printf("Anzahl der Runden (1, 3 oder 5) waehlen: ");
  27. scanf("%d", &runden);
  28. if (runden != 1 && runden != 3 && runden != 5) {
  29. printf("Ungueltige Anzahl der Runden. Bitte 1, 3 oder 5 eingeben.\n");
  30. return 1; // Rueckgabe mit Fehlercode
  31. }
  32. int spielerPunkte = 0;
  33. int computerPunkte = 0;
  34. for (int runde = 1; runde <= runden; ++runde) {
  35. printf("\n--- Runde %d ---\n", runde);
  36. int spielerWahl;
  37. printf("Schere (0), Stein (1) oder Papier (2) waehlen: ");
  38. scanf("%d", &spielerWahl);
  39. if (spielerWahl < 0 || spielerWahl > 2) {
  40. printf("Ungueltige Auswahl. Bitte 0, 1 oder 2 eingeben.\n");
  41. return 1; // Rueckgabe mit Fehlercode
  42. }
  43. int computerWahl = generateRandom();
  44. int ergebnis = determineWinner(spielerWahl, computerWahl);
  45. printf("Computer waehlt: %d\n", computerWahl);
  46. if (ergebnis == 1) {
  47. printf("Gewonnen!\n");
  48. spielerPunkte++;
  49. }
  50. else if (ergebnis == 0) {
  51. printf("Unentschieden!\n");
  52. }
  53. else {
  54. printf("Verloren!\n");
  55. computerPunkte++;
  56. }
  57. }
  58. printf("\n--- Endergebnis ---\n");
  59. printf("Spielerpunkte: %d\n", spielerPunkte);
  60. printf("Computerpunkte: %d\n", computerPunkte);
  61. if (spielerPunkte > computerPunkte) {
  62. printf("Du hast das Spiel gewonnen!\n");
  63. }
  64. else if (spielerPunkte < computerPunkte) {
  65. printf("Du hast das Spiel verloren.\n");
  66. }
  67. else {
  68. printf("Das Spiel endet unentschieden.\n");
  69. }
  70. return 0;
  71. }