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.

58 lines
1.7 KiB

  1. package de.fd.fh;
  2. public class Game
  3. {
  4. public Figure[] mField;
  5. public static final int whiteRowOther = 7;
  6. public static final int whiteRowFarmer = 6;
  7. public static final int blackRowOther = 0;
  8. public static final int blackRowFarmer = 1;
  9. public void initNewGame()
  10. {
  11. mField = new Figure[Figure.fieldLength * Figure.fieldLength];
  12. // Figuren platzieren
  13. for (int i = 0; i < Figure.fieldLength; i++) // row
  14. {
  15. if (i == Game.whiteRowOther
  16. || i == Game.blackRowOther)
  17. {
  18. for (int j = 0; j < Figure.fieldLength; j++) // col
  19. {
  20. mField[i * Figure.fieldLength + j] = new Figure();
  21. }
  22. }
  23. for (int j = 0; j < Figure.fieldLength; j++) // col
  24. {
  25. mField[Game.whiteRowFarmer * Figure.fieldLength + j] = new FigureFarmer(FigureFarmer.Color.White);
  26. }
  27. for (int j = 0; j < Figure.fieldLength; j++) // col
  28. {
  29. mField[Game.blackRowFarmer * Figure.fieldLength + j] = new FigureFarmer(FigureFarmer.Color.Black);
  30. }
  31. }
  32. mField[Figure.fieldLength * 0 + 0] = new FigureRook(); // schwarzer Turm a8
  33. mField[Figure.fieldLength * 0 + 7] = new FigureRook(); // schwarzer Turm h8
  34. mField[Figure.fieldLength * 7 + 0] = new FigureRook(); // weißer Turm a1
  35. }
  36. boolean moveFigure(int src, int dst)
  37. {
  38. Figure f = mField[src];
  39. if (!f.moveAllowed(src, dst, mField))
  40. {
  41. return false;
  42. }
  43. mField[dst] = f;
  44. mField[src] = null;
  45. return true;
  46. }
  47. }