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.

36 lines
965 B

  1. package de.fd.fh;
  2. public class FigureRook extends Figure
  3. {
  4. @Override
  5. public boolean moveAllowed(int src, int dst, Figure[] field)
  6. {
  7. int rowDiff = src / fieldLength - dst / fieldLength; // hoch/runter
  8. int relStep = src % fieldLength - dst % fieldLength; // links//rechts
  9. if (rowDiff > 0 && relStep > 0) // diagonal nach links oben
  10. {
  11. return false;
  12. }
  13. if (rowDiff > 0 && relStep < 0) // diagonal nach rechts oben
  14. {
  15. return false;
  16. }
  17. if (rowDiff < 0 && relStep > 0) // diagonal nach rechts oben
  18. {
  19. return false;
  20. }
  21. if (rowDiff < 0 && relStep < 0) // diagonal nach rechts unten
  22. {
  23. return false;
  24. }
  25. // TODO: keine Figuren auf dem Weg "überspringen"
  26. // TODO: falls Figur auf Ziel und keine Figuren auf Weg -> Figur schlagen
  27. return super.moveAllowed(src, dst, field);
  28. }
  29. }