module ProgInit (setInitTiles , makeTile , setTiles , setMaxCount) where import Graphics.Rendering.OpenGL import Graphics.UI.GLUT import Data.IORef import States import TipTileMaps import System.Random ------Tileたちの初期状態 setInitTiles :: MState -> MState setInitTiles mst = shuffleTiles mst makeTile :: GLint -> GLint -> MState -> TipTile makeTile i j mst = (TipTile (Vector2 i j) (Vector2 i j) NormalTile (i + j * (divTileNum mst))) setTiles :: MState -> MState setTiles mst = let mdN = (divTileNum mst) in mStateTransTipTiles mst ([(makeTile i j mst) | i <- [0..(mdN - 1)] , j <- [0..(mdN - 1)]] ++ [(TipTile (Vector2 (mdN - 1) (-1)) (Vector2 mdN mdN) EmptyTile (-1))]) setMaxCount :: GLint -> GLint setMaxCount n = (13 * n * (n + 1) * (2 * n + 1)) `quot` 6