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.

85 lines
2.2 KiB

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