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
45 lines
1.1 KiB
package de.fd.fh.server.game;
|
|
|
|
import de.fd.fh.server.user.UserId;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
@RequiredArgsConstructor
|
|
public class GameService
|
|
{
|
|
private final GameRepository repository;
|
|
|
|
public GameId createGame(final Game game)
|
|
{
|
|
return (GameId) repository.save(game).getId();
|
|
}
|
|
|
|
public GameId createGame(final UserId blackUser, final UserId whiteUser)
|
|
{
|
|
final Set<Field> fields = initFields(blackUser, whiteUser);
|
|
|
|
final Game game = new Game(null, whiteUser, blackUser, whiteUser, fields, null);
|
|
|
|
return (GameId) repository.save(game).getId();
|
|
}
|
|
|
|
private Set<Field> initFields(UserId blackUser, UserId whiteUser)
|
|
{
|
|
final Set<Field> fields = new HashSet<>();
|
|
for (int x = 0; x < 8; x++)
|
|
{
|
|
for (int y = 0; y < 8; y++)
|
|
{
|
|
fields.add(new Field(x, y, getColor(x, y) , null));
|
|
}
|
|
}
|
|
return fields;
|
|
}
|
|
|
|
private Field.Color getColor(final int x, final int y)
|
|
{
|
|
return (x + y) % 2 != 1 ? Field.Color.WHITE : Field.Color.BLACK;
|
|
}
|
|
}
|