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.

95 lines
2.6 KiB

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include "spieler.h"
  5. #include "Bauer.h"
  6. bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) {
  7. if ((endX > 8 || endY > 8) || (endX < 0 || endY < 0)){
  8. return false;
  9. }
  10. if (player == PLAYER_WHITE &&
  11. (Brett[endY][endX] == 'R' || Brett[endY][endX] == 'N' || Brett[endY][endX] == 'Q' ||
  12. Brett[endY][endX] == 'B' || Brett[endY][endX] == 'K' || Brett[endY][endX] == 'P')){
  13. return false;
  14. }
  15. if (player == PLAYER_BLACK &&
  16. (Brett[endY][endX] == 'r' || Brett[endY][endX] == 'n' || Brett[endY][endX] == 'q' ||
  17. Brett[endY][endX] == 'b' || Brett[endY][endX] == 'k' || Brett[endY][endX] == 'p')){
  18. return false;
  19. }
  20. if (player == PLAYER_WHITE){
  21. switch (Brett[startY][startX]) {
  22. case 'R':
  23. //Datei von Turm aufrufen
  24. break;
  25. case 'N':
  26. //Datei von Springer aufrufen
  27. break;
  28. case 'B':
  29. //Datei von Läufer aufrufen
  30. break;
  31. case 'Q':
  32. //Datei von Dame aufrufen
  33. break;
  34. case 'K':
  35. //Datei von König aufrufen
  36. break;
  37. case 'P':
  38. /* if(istzugerlaubt_Bauer(Brett,startX,startY,endX,endY,player) == true){
  39. return true;
  40. }else{
  41. return false;
  42. }*/
  43. break;
  44. default:
  45. break;
  46. }
  47. }
  48. else {
  49. switch (Brett[startY][startX]) {
  50. case 'r':
  51. //Datei von Turm aufrufen
  52. break;
  53. case 'n':
  54. //Datei von Springer aufrufen
  55. break;
  56. case 'b':
  57. //Datei von Läufer aufrufen
  58. break;
  59. case 'q':
  60. //Datei von Dame aufrufen
  61. break;
  62. case 'k':
  63. //Datei von König aufrufen
  64. break;
  65. case 'p':
  66. //Datei von Bauer aufrufen
  67. break;
  68. default:
  69. break;
  70. }
  71. }
  72. /* Regeln hierhin
  73. z.B. schauen ob der zug auch innerhalb vom spielbrett ist,
  74. schauen ob auf dem zielfeld keine eigene Figur steht,
  75. schauen ob von der startposition aus der zug auch für die ausgewählte figur möglich ist.
  76. return true wenn möglich oder false falls nicht.
  77. */
  78. return true;
  79. }
  80. void machezug(char** Brett, int startX, int startY, int endX, int endY,Player player) {
  81. //wenn istzugerlaubt true ist wird das hier ausgeführt
  82. if(istzugerlaubt(Brett,startX,startY,endX,endY,player) == true){
  83. Brett[endY][endX] = Brett[startY][startX];
  84. Brett[startY][startX] = ' ';
  85. }
  86. }