コード例 #1
0
        private static void ParseInput()
        {
            var segments = (Console.ReadLine()).Split(' ');
            var N = Convert.ToInt32(segments[0]);
            var Q = Convert.ToInt32(segments[1]);
            var V = Convert.ToInt32(segments[2]);

            starFighters = new StarFighter[N];

            for (int i = 0; i < N; i++)
            {
                segments = (Console.ReadLine()).Split(' ');
                var frequency = Convert.ToInt32(segments[2]);
                var sf = new StarFighter(Convert.ToInt32(segments[0]), Convert.ToInt32(segments[1]), frequency);
                starFighters[i] = sf;
            }

            queries = new int[Q][];

            for (int i = 0; i < Q; i++)
            {
                segments = (Console.ReadLine()).Split(' ');
                queries[i] = new int[] { Convert.ToInt32(segments[0]), Convert.ToInt32(segments[1]), Convert.ToInt32(segments[2]), 0 };
            }
        }
コード例 #2
0
        public void InitClient(string key)
        {
            var fighter = new StarFighter(Color.Red, new SizeF(10f, 10f), new Vector2F(200, 200), 0);

            fighter.Init();
            gameObjects.Add(key, fighter);
            Console.WriteLine("sending " + key + " objects");
            try
            {
                foreach (var obj in gameObjects)
                {
                    string typeName = obj.Value.GetType().Name.ToString();
                    Console.WriteLine("sending to " + key + " " + " of type" + typeName + " " + obj.ToString());
                    var item = ((IGame2DProperties)obj.Value);
                    var dat  = key + "," + item.Location.X + "," + item.Location.Y;
                    var type = (GameAction)Enum.Parse(typeof(GameAction), typeName);
                    ServerSide.SendData(type, dat, PlayingClients[key].Ns);
                }
                ServerSide.SendCommand(GameAction.Done, PlayingClients[key].Ns);
            }
            catch
            {
            }

            PlayingClients[key].status = "loaded";
            foreach (var obj in gameObjects)
            {
                obj.Value.Init();
            }
        }
コード例 #3
0
 public Aeronautical()
 {
     Name                = "Aeronautics and Space";
     Description         = "A fleet of pilots flying aircraft and spacecraft";
     StandardIssueWeapon = new StarFighter();
     Soldiers            = new List <ICharacter>();
 }
コード例 #4
0
        private static void ParseInput()
        {
            var segments = (Console.ReadLine()).Split(' ');
            var N        = Convert.ToInt32(segments[0]);
            var Q        = Convert.ToInt32(segments[1]);
            var V        = Convert.ToInt32(segments[2]);

            starFighters = new StarFighter[N];

            for (int i = 0; i < N; i++)
            {
                segments = (Console.ReadLine()).Split(' ');
                var frequency = Convert.ToInt32(segments[2]);
                var sf        = new StarFighter(Convert.ToInt32(segments[0]), Convert.ToInt32(segments[1]), frequency);
                starFighters[i] = sf;
            }

            queries = new int[Q][];

            for (int i = 0; i < Q; i++)
            {
                segments   = (Console.ReadLine()).Split(' ');
                queries[i] = new int[] { Convert.ToInt32(segments[0]), Convert.ToInt32(segments[1]), Convert.ToInt32(segments[2]), 0 };
            }
        }
コード例 #5
0
        public override void Init()
        {
            base.Init();
            BackColor = Color.Black;
            GameWindow.AudioPlayer.Item1.PlayTrack("background");

            for (int i = 0; i < 15; i++)
            {
                var len      = MathAssist.RandInt(15, 80);
                var size     = new SizeF(len, len);
                var location = new Vector2F(MathAssist.RandInt(0, GameWindow.DisplaySize.Width), MathAssist.RandInt(0, GameWindow.DisplaySize.Height));
                var angle    = MathAssist.RandInt(0, 359);
                var velocity = MathAssist.RandInt(1, 3);
                var asteroid = new Asteroid(Color.Gray, size, location, angle, velocity);
                asteroid.Init();
                gameObjects.Add("asteroid" + i, asteroid);
            }

            for (int i = 0; i < 200; i++)
            {
                var radius = MathAssist.RandInt(1, 3);
                var color  = Color.FromArgb(MathAssist.RandInt(50, 200), MathAssist.RandInt(50, 200), MathAssist.RandInt(50, 200));
                var rect   = new Rectangle(MathAssist.RandInt(0, Screen.PrimaryScreen.Bounds.Width), MathAssist.RandInt(0, Screen.PrimaryScreen.Bounds.Height), radius, radius);
                gameObjects.Add("star" + i, new Star(color, rect, MathAssist.RandInt(1, 2), MathAssist.RandInt(1, 2)));
            }

            var f1 = new StarFighter(Color.Red, new SizeF(10f, 10f), new Vector2F(200, 200), 0);

            mainPlayerID = f1.ID;
            scores.Add(mainPlayerID, 0);
            var f2 = new StarFighter(Color.Blue, new SizeF(10f, 10f), new Vector2F(250, 250), 180);

            secondPlayer = f2.ID;
            scores.Add(secondPlayer, 0);
            gameObjects.Add(f1.ID, f1);
            gameObjects.Add(f2.ID, f2);
            //  GameWindow.View.FollowedObject = (IViewFollowed)f1;
            //  RenderManager.RenderList.Add("f1", new Graphic.Render(RenderType.Default, true, f.Location, null, f.Angle,new Vector2F(0,0), f.Size, null, new RectangleF(0,0,0,0), "", null, Color.Red, 1,DrawRoutine.DrawTriangle));
            gameObjects.Add("view", GameWindow.View);

            foreach (var obj in gameObjects)
            {
                obj.Value.Init();
            }
        }
コード例 #6
0
 public Algorithm(StarFighter[][] starFighters)
 {
     this.starFighters = starFighters;
 }
コード例 #7
0
            private int SearchUpOrDown(int position, int key, bool down, StarFighter[] list)
            {
                var pos = position;
                var nextpos = down ? pos - 1 : pos + 1;
                while (nextpos >= 0 && nextpos < list.Length && list[nextpos].y == key)
                {
                    pos = nextpos;
                    if (down) nextpos--; else nextpos++;
                }

                return pos;
            }
コード例 #8
0
            private int FindPositionOrFirstBeforeOrAfter(int start, int end, int key, bool firstAfter, StarFighter[] list)
            {
                while (start < end) {
                    var mid = (start + end) / 2;
                    var midKey = list[mid].y;

                    if (midKey == key) return SearchUpOrDown(mid, key, firstAfter, list);
                    else if (key < midKey) end = mid - 1;
                    else start = mid + 1;
                }
                
                var sf = list[start];
                if (sf.y == key) return start;
                else
                {
                    var pos = 0;
                    if (firstAfter)
                    {
                        pos = sf.y > key ? start : start + 1;
                        if (pos >= list.Length) pos = list.Length - 1;
                    }
                    else
                    {
                        pos = sf.y < key ? start : start - 1;
                        if (pos < 0) pos = 0;
                    }
                    
                    return pos;
                }
            }
コード例 #9
0
ファイル: Pilot.cs プロジェクト: PlumpMath/DesignPatterns-69
 public Pilot()
 {
     Weapon = new StarFighter();
 }