Game(long randSeed) {
        rnd = randSeed == 0 ? new Random() : new Random(randSeed);
        board = Board.create(rnd);
        for (Hex hex : Board.allHexes())
            if (board.numberAt(hex) == 0)
                robber = hex;
        for (int i = 0; i < KNIGHTS; i++)
            developments.add(Development.KNIGHT);
        for (int i = 0; i < ROAD_BUILDINGS; i++)
            developments.add(Development.ROAD_BUILDING);
        for (int i = 0; i < INVENTIONS; i++)
            developments.add(Development.INVENTION);
        for (int i = 0; i < MONOPOLIES; i++)
            developments.add(Development.MONOPOLY);
        for (int i = 0; i < VICTORY_POINTS; i++)
            developments.add(Development.VICTORY_POINT);
        Collections.shuffle(developments, rnd);
        for (Resource r : Resource.values())
            bank.add(r, EACH_RESOURCE);
    }