Continous Integration in der Praxis Gruppenarbeit
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.

146 lines
4.8 KiB

3 years ago
3 years ago
3 years ago
  1. using MiniGames.Shared.Models;
  2. using System;
  3. namespace MiniGames.Client.ViewModel
  4. {
  5. public class SchereSteinPapierEchseSpock
  6. {
  7. SchereSteinPapierEchseSpockModel RegelModel = new();
  8. public string HandAuswahl(string spielerHand)
  9. {
  10. Random rnd = new();
  11. const string stein = "Stein";
  12. const string schere = "Schere";
  13. const string papier = "Papier";
  14. const string echse = "Echse";
  15. const string spock = "Spock";
  16. string cpuHand = CPUHand(rnd.Next(0, 5));
  17. string erg = "";
  18. switch (spielerHand)
  19. {
  20. case stein:
  21. erg = SpielerStein(stein, cpuHand);
  22. break;
  23. case schere:
  24. erg = SpielerSchere(schere, cpuHand);
  25. break;
  26. case papier:
  27. erg = SpielerPapier(papier, cpuHand);
  28. break;
  29. case echse:
  30. erg = SpielerEchse(echse, cpuHand);
  31. break;
  32. case spock:
  33. erg = SpielerSpock(spock, cpuHand);
  34. break;
  35. }
  36. return erg;
  37. }
  38. public string SpielerStein(string spielerHand, string gegnerHand)
  39. {
  40. if (spielerHand.Equals(RegelModel.hand[0]) && (gegnerHand.Equals(RegelModel.hand[1]) || gegnerHand.Equals(RegelModel.hand[3])))
  41. {
  42. return RegelModel.erg[0];
  43. }
  44. else if (spielerHand.Equals(RegelModel.hand[0]) && (gegnerHand.Equals(RegelModel.hand[2]) || gegnerHand.Equals(RegelModel.hand[4])))
  45. {
  46. return RegelModel.erg[1];
  47. }
  48. else
  49. {
  50. return RegelModel.erg[2];
  51. }
  52. }
  53. public string SpielerSchere(string spielerHand, string gegnerHand)
  54. {
  55. if (spielerHand.Equals(RegelModel.hand[1]) && (gegnerHand.Equals(RegelModel.hand[2]) || gegnerHand.Equals(RegelModel.hand[3])))
  56. {
  57. return RegelModel.erg[0];
  58. }
  59. else if (spielerHand.Equals(RegelModel.hand[1]) && (gegnerHand.Equals(RegelModel.hand[0]) || gegnerHand.Equals(RegelModel.hand[4])))
  60. {
  61. return RegelModel.erg[1];
  62. }
  63. else
  64. {
  65. return RegelModel.erg[2];
  66. }
  67. }
  68. public string SpielerPapier(string spielerHand, string gegnerHand)
  69. {
  70. if (spielerHand.Equals(RegelModel.hand[2]) && (gegnerHand.Equals(RegelModel.hand[0]) || gegnerHand.Equals(RegelModel.hand[4])))
  71. {
  72. return RegelModel.erg[0];
  73. }
  74. else if (spielerHand.Equals(RegelModel.hand[2]) && (gegnerHand.Equals(RegelModel.hand[1]) || gegnerHand.Equals(RegelModel.hand[3])))
  75. {
  76. return RegelModel.erg[1];
  77. }
  78. else
  79. {
  80. return RegelModel.erg[2];
  81. }
  82. }
  83. public string SpielerEchse(string spielerHand, string gegnerHand)
  84. {
  85. if (spielerHand.Equals(RegelModel.hand[3]) && (gegnerHand.Equals(RegelModel.hand[2]) || gegnerHand.Equals(RegelModel.hand[4])))
  86. {
  87. return RegelModel.erg[0];
  88. }
  89. else if (spielerHand.Equals(RegelModel.hand[3]) && (gegnerHand.Equals(RegelModel.hand[0]) || gegnerHand.Equals(RegelModel.hand[1])))
  90. {
  91. return RegelModel.erg[1];
  92. }
  93. else
  94. {
  95. return RegelModel.erg[2];
  96. }
  97. }
  98. public string SpielerSpock(string spielerHand, string gegnerHand)
  99. {
  100. if (spielerHand.Equals(RegelModel.hand[4]) && (gegnerHand.Equals(RegelModel.hand[0]) || gegnerHand.Equals(RegelModel.hand[1])))
  101. {
  102. return RegelModel.erg[0];
  103. }
  104. else if (spielerHand.Equals(RegelModel.hand[4]) && (gegnerHand.Equals(RegelModel.hand[2]) || gegnerHand.Equals(RegelModel.hand[3])))
  105. {
  106. return RegelModel.erg[1];
  107. }
  108. else
  109. {
  110. return RegelModel.erg[2];
  111. }
  112. }
  113. public string CPUHand(int index)
  114. {
  115. return RegelModel.hand[index];
  116. }
  117. public static SchereSteinPapierEchseSpockModel PunkteBerechnung(SchereSteinPapierEchseSpockModel spieleModel, string ergebnis)
  118. {
  119. switch (ergebnis)
  120. {
  121. case "Gewonnen":
  122. spieleModel.SpielerListe[0].Punkte += 1;
  123. break;
  124. case "Verloren":
  125. spieleModel.SpielerListe[1].Punkte += 1;
  126. break;
  127. default:
  128. break;
  129. }
  130. return spieleModel;
  131. }
  132. }
  133. }