コード例 #1
0
ファイル: ChokepointGridWorldMaker.cs プロジェクト: Mokon/mai
 /// <summary>
 /// A constructor with LOS.
 /// </summary>
 /// <param name="LOS"></param>
 public ChokepointGridWorldMaker( int LOS, int NumChokepoints, int Height,
     int Width, int ChokepointRadius, int NumAgents, int NumSteps, int AgentRadius,
     double MoveRate)
 {
     this.xml = new Map( );
       xml.Width = Width;
       xml.Height = Height;
       this.LOS = LOS;
       this.NumChokepoints = NumChokepoints;
       this.ChokepointRadius = ChokepointRadius;
       this.NumAgents = NumAgents;
       this.NumSteps = NumSteps;
       this.AgentRadius = AgentRadius;
       this.MoveRate = MoveRate;
 }
コード例 #2
0
ファイル: RoomsGridWorldMaker.cs プロジェクト: Mokon/mai
 public RoomsGridWorldMaker( int LOS, int Height, int Width, int NumHorzRooms,
     int NumVertRooms, int NumSteps,
     double ChanceOpen, double ChanceClose, int HorzRoomSkip, int VertRoomSkip,
     bool GuarenteeSolveability, double MinAStarDistance, double MaxAStarDistance,
     bool UseCorners, double MinHDistance, double MaxHDistance)
 {
     this.xml = new Map( );
       xml.Width = Width;
       xml.Height = Height;
       this.LOS = LOS;
       this.NumHorzRooms = NumHorzRooms;
       this.NumVertRooms = NumVertRooms;
       this.NumSteps = NumSteps;
       this.ChanceClose = ChanceClose;
       this.ChanceOpen = ChanceOpen;
       this.HorzRoomModifier = HorzRoomSkip + 1;
       this.VertRoomModifier = VertRoomSkip + 1;
       this.GuarenteeSolveability = GuarenteeSolveability;
       this.MaxAStarDistance = MaxAStarDistance;
       this.MinAStarDistance = MinAStarDistance;
       this.UseCorners = UseCorners;
       this.MaxHDistance = MaxHDistance;
       this.MinHDistance = MinHDistance;
 }
コード例 #3
0
ファイル: ChokepointGridWorldMaker.cs プロジェクト: Mokon/mai
 private static void DrawLine( Point From, Point To, Map xml, GenericGridWorldStaticState SS, Point Unit, bool[][] tiles )
 {
     Point Cur = From;
       Stack<Point> Blocked = new Stack<Point>( );
       while ( !Cur.Equals( To ) ) {
     Cur = Next( Cur, xml.Width, xml.Height, To );
     if ( SS.Tiles[Cur.Y][Cur.X]
     is ChokeTile<GenericGridWorldStaticState, GenericGridWorldDynamicState> ) {
       continue;
     } else if ( Unit.X == Cur.X && Unit.Y == Cur.Y ) {
       continue;
     } else if ( SS.Tiles[Cur.Y][Cur.X]
     is BlockedTile<GenericGridWorldStaticState, GenericGridWorldDynamicState> ) {
       while ( Blocked.Count != 0 ) {
     Cur = Blocked.Pop( );
     SS.Tiles[Cur.Y][Cur.X] = new PassableTile<GenericGridWorldStaticState,
       GenericGridWorldDynamicState>( Cur.X, Cur.Y, xml.Height, xml.Width );
     tiles[Cur.Y][Cur.X] = false;
       }
       break;
     } else {
       SS.Tiles[Cur.Y][Cur.X] = new BlockedTile<GenericGridWorldStaticState,
     GenericGridWorldDynamicState>( Cur.X, Cur.Y, xml.Height, xml.Width );
       Blocked.Push( Cur );
       tiles[Cur.Y][Cur.X] = true;
     }
       }
 }