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.

45 lines
1.1 KiB

  1. package de.fd.fh.server.game;
  2. import de.fd.fh.server.user.UserId;
  3. import lombok.RequiredArgsConstructor;
  4. import java.util.HashSet;
  5. import java.util.Set;
  6. @RequiredArgsConstructor
  7. public class GameService
  8. {
  9. private final GameRepository repository;
  10. public GameId createGame(final Game game)
  11. {
  12. return (GameId) repository.save(game).getId();
  13. }
  14. public GameId createGame(final UserId blackUser, final UserId whiteUser)
  15. {
  16. final Set<Field> fields = initFields(blackUser, whiteUser);
  17. final Game game = new Game(null, whiteUser, blackUser, whiteUser, fields, null);
  18. return (GameId) repository.save(game).getId();
  19. }
  20. private Set<Field> initFields(UserId blackUser, UserId whiteUser)
  21. {
  22. final Set<Field> fields = new HashSet<>();
  23. for (int x = 0; x < 8; x++)
  24. {
  25. for (int y = 0; y < 8; y++)
  26. {
  27. fields.add(new Field(x, y, getColor(x, y) , null));
  28. }
  29. }
  30. return fields;
  31. }
  32. private Field.Color getColor(final int x, final int y)
  33. {
  34. return (x + y) % 2 != 1 ? Field.Color.WHITE : Field.Color.BLACK;
  35. }
  36. }