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.

62 lines
1.3 KiB

  1. package de.fd.fh;
  2. public class FigureFarmer extends Figure
  3. {
  4. enum Color { Black, White};
  5. public Color mColor;
  6. public FigureFarmer(Color colorCode)
  7. {
  8. mColor = colorCode;
  9. }
  10. @Override
  11. public boolean moveAllowed(int src, int dst, Figure[] field)
  12. {
  13. int rowDiff = src / fieldLength - dst / fieldLength; // hoch/runter
  14. if (rowDiff > 1) // weißer Bauer nicht mehr als 1 Schritt nach "oben"
  15. {
  16. return false;
  17. }
  18. if (rowDiff <= 0) // weißer Bauer kein Schritt "runter"
  19. {
  20. return false;
  21. }
  22. // TODO: nur ein Schritt nach oben, wenn auf Ziel keine Figur
  23. // TODO: links, rechts verboten
  24. // TODO: Diagonal links/rechts hoch, wenn Figur geschlagen werden kann (Figur auf Ziel)
  25. return super.moveAllowed(src, dst, field);
  26. }
  27. @Override
  28. public boolean equals(Object o)
  29. {
  30. if (o == null)
  31. {
  32. return false;
  33. }
  34. if (this == o)
  35. {
  36. return true;
  37. }
  38. if (this.getClass() != o.getClass())
  39. {
  40. return false;
  41. }
  42. FigureFarmer otherFigure = (FigureFarmer)o;
  43. if (this.mColor != otherFigure.mColor)
  44. {
  45. return false;
  46. }
  47. return true;
  48. }
  49. }