Split Display (gui) and Maze (work), prepare for another model

- prepare for a shorter storage model without any resolution
This commit is contained in:
philippe lhardy
2020-12-20 19:18:17 +01:00
parent a70ead877a
commit e146199ba0
15 changed files with 720 additions and 450 deletions

View File

@@ -0,0 +1,38 @@
package org.artisanlogiciel.games.maze.model;
import org.artisanlogiciel.games.maze.MovesProvider;
import org.artisanlogiciel.games.maze.WallsProvider;
public class HalfSquareModelCreator {
interface SetXY
{
void setXY(HalfSquareRasterModel model, int x, int y);
}
HalfSquareRasterModel createFromFunc(int width, int height, SetXY func)
{
HalfSquareRasterModel model = new HalfSquareRasterModel(width,height);
for (int y=0; y<model.getHeight();y++)
{
for (int x=0; x<model.getWidth();x++)
{
func.setXY(model,x,y);
}
}
return model;
}
public HalfSquareRasterModel createFromWallsProvider(WallsProvider provider)
{
SetXY setWalls = ( model, x, y ) -> { model.setWalls(x,y, provider.getWalls(x,y)); };
return createFromFunc( provider.getWidth(), provider.getHeight(), setWalls);
}
public HalfSquareRasterModel createFromMovesProvider(MovesProvider provider)
{
SetXY setMoves = ( model, x, y ) -> { model.setMoves(x,y,provider.getMoves(x,y)); };
return createFromFunc( provider.getWidth(), provider.getHeight(), setMoves);
}
}