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.

74 lines
1.9 KiB

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. char** Schachbrett_erstellen() {
  4. int R = 8; //Reihen
  5. int Z = 8; //zeilen
  6. //Dynamisch Platz zuweisen für schachbrett
  7. char** Brett = (char**)malloc(R * sizeof(char*));
  8. if (Brett == NULL) {
  9. // Fehler bei speicherzuweißung
  10. return NULL;
  11. }
  12. for (int i = 0; i < R; i++) {
  13. Brett[i] = (char*)malloc(Z * sizeof(char));
  14. if (Brett[i] == NULL) {
  15. // Speicherfehlerbehbung
  16. for (int j = 0; j < i; j++) {
  17. free(Brett[j]);
  18. }
  19. free(Brett);
  20. return NULL;
  21. }
  22. }
  23. // Spielbrett befüllen, groß und kleinschreibung unterschiedlich um schwarz/weiß zu trennen
  24. char Aufbau[8][8] = {
  25. { 'R' , 'N' , 'B' , 'Q' , 'K' , 'B' , 'N' , 'R' },
  26. { 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' },
  27. { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' },
  28. { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' },
  29. { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' },
  30. { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' },
  31. { 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' },
  32. { 'r' , 'n' , 'b' , 'q' , 'k' , 'b' , 'n' , 'r' }
  33. };
  34. for (int i = 0; i < 8; i++) {
  35. for (int j = 0; j < 8; j++) {
  36. Brett[i][j] = Aufbau[i][j];
  37. }
  38. }
  39. return Brett;
  40. }
  41. void print_Schachfeld(char** Brett) {
  42. int counter = 1;
  43. printf(" - 1 2 3 4 5 6 7 8 \n");
  44. for (int i = 0; i < 8; i++) {
  45. printf(" %d " , counter);
  46. counter++;
  47. for (int j = 0; j < 8; j++) {
  48. printf(" %c ", Brett[i][j]);
  49. }
  50. printf("\n");
  51. }
  52. printf("\n");
  53. printf("\n");
  54. }
  55. void Schachbrettspeicher_freigeben(char** Brett) {
  56. if (Brett == NULL) {
  57. return;
  58. }
  59. for (int i = 0; i < 8; i++) {
  60. free(Brett[i]);
  61. }
  62. free(Brett);
  63. }