public ExtendedFieldTest() { this.Width = DefaultWidth; this.Height = DefaultHeight; var f = new ExtendedField(6, 12, DefaultWidth, DefaultHeight); f.Container.AttachTo(this); var feeder = new SimplePipeFeeder(6, Colors.Yellow); feeder.Container.MoveTo(Tile.ShadowBorder, Tile.ShadowBorder + Tile.Size).AttachTo(this); f.Overlay.AttachTo(this); f.PipeToBeBuilt = feeder.Current; f.PipeToBeBuiltUsed += delegate { feeder.MoveNext(); f.PipeToBeBuilt = feeder.Current; }; var Randomized = f.Field.Tiles.TileList.Randomize().GetEnumerator(); Randomized.Take().Drain.Show(); Randomized.Take().Drain.Show(); Randomized.Take().Drain.Show(); }
public ColoredFieldTest() { this.Width = DefaultWidth; this.Height = DefaultHeight; var f = new ExtendedField(16, 6, DefaultWidth, DefaultHeight); f.Field.DefaultPipeColor = Colors.Green; f.Field.Tiles.Color = Colors.Pink; f.Container.AttachTo(this); #region feeder var feeder = new SimplePipeFeeder(6, Colors.Yellow); feeder.Container.AttachTo(this); var feeder_autohide = new SimplePipeFeeder.AutoHide(feeder, f.Overlay, DefaultWidth, DefaultHeight); f.Overlay.AttachTo(this); f.PipeToBeBuilt = feeder.Current; f.PipeToBeBuiltUsed += delegate { feeder.MoveNext(); f.PipeToBeBuilt = feeder.Current; }; #endregion #region setting up some stuff on the field var Randomized = f.Field.Tiles.TileList.Randomize().GetEnumerator(); Enumerable.Range(0, 4).ForEach( Index => { var Target = Randomized.Take(); Target.Drain.Show(); if (Index % 2 == 0) f.Field[Target] = new SimplePipe.LeftToDrain(); else f.Field[Target] = new SimplePipe.RightToDrain(); } ); var PumpTimeout = new Random(); Enumerable.Range(0, 4).ForEach( Index => { var Target = Randomized.Take(); var pump = default(SimplePipe); if (Index % 2 == 0) pump = new SimplePipe.PumpToLeft(); else pump = new SimplePipe.PumpToRight(); pump.AddTimer(PumpTimeout.Next(20, 150), pump.Input.Pump); f.Field[Target] = pump; } ); #endregion }
public SpaceInvaderTest() { this.Width = DefaultWidth; this.Height = DefaultHeight; // SpaceInvaderTest // http://www.glassgiant.com/ascii/ // http://text-image.com/convert/ // these maps could be inside a zip file var map = new ASCIIImage(@" MMMMMMM...MMMMMMMMMMMMMMMMMMM...MMMMMMMM MMMMMMM...MMMMMMMMMMMMMMMMMMM...MMMMMMMM MMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM MMMMMMM MMMMMMMM MMMMMMM MMMMMMMM MMM MMMM MMMM MMMM MMM MMMM MMMM MMMM MMM MMMM MMMM MMMM ... ... ... ... ...MMMM MMMMMMMMMMMMMMMMMMM MMMM ...MMMM MMMMMMMMMMMMMMMMMMM MMMM MMMMMMMMMM MMM. MMMMMMMMMMM MMMMMMMMMM MMM. MMMMMMMMMMM MMMMMMMMMM MMM. MMMMMMMMMMM ".Trim()); var f = new ExtendedField(map.Width, map.Height, DefaultWidth, DefaultHeight); f.Field.Tiles.TileList.ForEach( value => { if (map[value.IndexX, value.IndexY] == "M") f.Field.Tiles[value.IndexX, value.IndexY].Hide(); } ); f.Field.DefaultPipeColor = Colors.Yellow; f.Field.Tiles.Color = Colors.Cyan; f.Container.AttachTo(this); #region feeder var feeder = new SimplePipeFeeder(6, Colors.Brown); feeder.Container.AttachTo(this); var feeder_autohide = new SimplePipeFeeder.AutoHide(feeder, f.Overlay, DefaultWidth, DefaultHeight); f.Overlay.AttachTo(this); f.PipeToBeBuilt = feeder.Current; f.PipeToBeBuiltUsed += delegate { feeder.MoveNext(); f.PipeToBeBuilt = feeder.Current; }; #endregion #region setting up some stuff on the field var Randomized = f.Field.Tiles.TileList.Where(k => k.IsVisible).Randomize().GetEnumerator(); Enumerable.Range(0, 4).ForEach( Index => { var Target = Randomized.Take(); Target.Drain.Show(); if (Index % 2 == 0) f.Field[Target] = new SimplePipe.LeftToDrain(); else f.Field[Target] = new SimplePipe.RightToDrain(); } ); var PumpTimeout = new Random(); Enumerable.Range(0, 4).ForEach( Index => { var Target = Randomized.Take(); var pump = default(SimplePipe); if (Index % 2 == 0) pump = new SimplePipe.PumpToLeft(); else pump = new SimplePipe.PumpToRight(); pump.AddTimer(PumpTimeout.Next(20, 150), pump.Input.Pump); f.Field[Target] = pump; } ); Enumerable.Range(0, 6).ForEach( Index => { var Target = Randomized.Take(); f.Field[Target] = new SimplePipe.BonusPickup(); } ); #endregion }