示例#1
0
 public Bil(int x, int y, int tileSizeInPixels, Riktning bilensStartRiktning, int[,] map)
 {
     centerX = x;
     centerY = y;
     dir = bilensStartRiktning;
     tileSize = tileSizeInPixels;
     this.map = map;
 }
示例#2
0
 public Bil(int x, int y, int tileSizeInPixels, Riktning bilensStartRiktning, int[,] map)
 {
     centerX  = x;
     centerY  = y;
     dir      = bilensStartRiktning;
     tileSize = tileSizeInPixels;
     this.map = map;
 }
示例#3
0
        private static void SpawnPositioner()
        {
            Spelare1LodrattPosition = 0;
            Spelare1VagrattPosition = Console.WindowHeight / 2;

            Spelare2LodrattPosition = Console.WindowWidth - 1;
            Spelare2VagrattPosition = Console.WindowHeight / 2;

            Spelare1Riktning = Riktning.Vanster;
            Spelare2Riktning = Riktning.Hoger;
        }
        public static bool ParseInputTo(out Point location, out Riktning direction)
        {
            string[] inputs;
            location  = null;
            direction = Riktning.INVALID;

            while (true)
            {
                inputs = Console.ReadLine().ToUpper().Split(' ');

                if (inputs.Length >= 2)
                {
                    location = Point.ParseFromStrings(inputs[0], inputs[1]);
                    if (location == null)
                    {
                        Console.WriteLine("Error parsing to integer. ");
                        continue;
                    }
                }
                else
                {
                    continue;
                }

                if (inputs.Length >= 3)
                {
                    if (!char.IsLetter(inputs[2][0]))
                    {
                        Console.WriteLine("Third parameter is not a letter.");
                        continue;
                    }
                    if (!Enum.TryParse(inputs[2], out direction))
                    {
                        Console.WriteLine("Error while parsing. ");
                        continue;
                    }
                    return(true);
                }
                else
                {
                    if (location != null)
                    {
                        return(true);
                    }
                    return(false);
                }
            }
        }
示例#5
0
 public void bytRiktning(Riktning nyRiktning)
 {
     if (nyRiktning == Riktning.höger)
     {
         if (dir == Riktning.höger)
         {
             dir = Riktning.ner;
         }
         else if (dir == Riktning.vänster)
         {
             dir = Riktning.upp;
         }
         else if (dir == Riktning.ner)
         {
             dir = Riktning.vänster;
         }
         else
         {
             dir = Riktning.höger;
         }
     }
     else
     {
         if (dir == Riktning.höger)
         {
             dir = Riktning.upp;
         }
         else if (dir == Riktning.vänster)
         {
             dir = Riktning.ner;
         }
         else if (dir == Riktning.ner)
         {
             dir = Riktning.höger;
         }
         else
         {
             dir = Riktning.vänster;
         }
     }
 }
示例#6
0
 public void bytRiktning(Riktning nyRiktning)
 {
     if (nyRiktning == Riktning.höger)
     {
         if (dir == Riktning.höger)
         {
             dir = Riktning.ner;
         }
         else if (dir == Riktning.vänster)
         {
             dir = Riktning.upp;
         }
         else if (dir == Riktning.ner)
         {
             dir = Riktning.vänster;
         }
         else
         {
             dir = Riktning.höger;
         }
     }
     else
     {
         if (dir == Riktning.höger)
         {
             dir = Riktning.upp;
         }
         else if (dir == Riktning.vänster)
         {
             dir = Riktning.ner;
         }
         else if (dir == Riktning.ner)
         {
             dir = Riktning.höger;
         }
         else
         {
             dir = Riktning.vänster;
         }
     }
 }
示例#7
0
        protected void MoveInDirection(Riktning direction, int step)
        {
            switch (direction)
            {
            case Riktning.N:
                Location.Y += step;
                break;

            case Riktning.S:
                Location.Y -= step;
                break;

            case Riktning.E:
                Location.X += step;
                break;

            case Riktning.W:
                Location.X -= step;
                break;

            default:
                throw new ArgumentException("Direction invalid.");
            }
        }
示例#8
0
 public MonsterTruck(Riktning direction, Point location)
     : base(direction, location)
 {
 }
示例#9
0
        public static void TronStart()
        {
            Console.CursorVisible = false;
            Console.BufferHeight  = Console.WindowHeight;
            Console.BufferWidth   = Console.WindowWidth;
            SpawnPositioner();
            Instruktioner();

            TronAnvands = new bool[Console.WindowWidth, Console.WindowHeight];

            while (true)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo knappinfo = Console.ReadKey(true);
                    ConsoleKey     knapp     = knappinfo.Key;
                    switch (knapp)
                    {
                    case ConsoleKey.Escape:
                        break;

                    case ConsoleKey.LeftArrow:
                        if (Spelare2Riktning != Riktning.Hoger)
                        {
                            Spelare2Riktning = Riktning.Vanster;
                        }
                        break;

                    case ConsoleKey.UpArrow:
                        if (Spelare2Riktning != Riktning.Ned)
                        {
                            Spelare2Riktning = Riktning.Upp;
                        }
                        break;

                    case ConsoleKey.RightArrow:
                        if (Spelare2Riktning != Riktning.Vanster)
                        {
                            Spelare2Riktning = Riktning.Hoger;
                        }
                        break;

                    case ConsoleKey.DownArrow:
                        if (Spelare2Riktning != Riktning.Upp)
                        {
                            Spelare2Riktning = Riktning.Ned;
                        }
                        break;

                    case ConsoleKey.A:
                        if (Spelare1Riktning != Riktning.Hoger)
                        {
                            Spelare1Riktning = Riktning.Vanster;
                        }
                        break;

                    case ConsoleKey.D:
                        if (Spelare1Riktning != Riktning.Vanster)
                        {
                            Spelare1Riktning = Riktning.Hoger;
                        }
                        break;

                    case ConsoleKey.S:
                        if (Spelare1Riktning != Riktning.Upp)
                        {
                            Spelare1Riktning = Riktning.Ned;
                        }
                        break;

                    case ConsoleKey.W:
                        if (Spelare1Riktning != Riktning.Ned)
                        {
                            Spelare1Riktning = Riktning.Upp;
                        }
                        break;

                    default:
                        break;
                    }
                }

                TronRorelser();

                bool Spelare1Vann = HarSpelareForlorat(Spelare1VagrattPosition, Spelare1LodrattPosition);
                bool Spelare2Vann = HarSpelareForlorat(Spelare2VagrattPosition, Spelare2LodrattPosition);
                if (Spelare1Vann && Spelare2Vann)
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Clear();
                    SkrivUtTron("Draw game!!!");
                    SkrivUtTron($"Current score: {Spelare1Poeng} - {Spelare2Poeng}");
                    ResetGame();
                }
                if (Spelare1Vann && !Spelare2Vann)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Clear();
                    Spelare2Poeng++;
                    SkrivUtTron("Second player wins!!!");
                    SkrivUtTron($"Current score: {Spelare1Poeng} - {Spelare2Poeng}");
                    ResetGame();
                }
                if (Spelare2Vann && !Spelare1Vann)
                {
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Clear();
                    Spelare1Poeng++;
                    SkrivUtTron("First player wins!!!");
                    SkrivUtTron($"Current score: {Spelare1Poeng} - {Spelare2Poeng}");
                    ResetGame();
                }

                if (Spelare2Poeng == 5)
                {
                    Console.Clear();
                    Console.ForegroundColor = ConsoleColor.Red;
                    SkrivUtTron("PLAYER TWO WINS!");
                    SkrivUtTron("Press any key to continue...");
                    Console.ReadKey();
                    Console.Clear();
                }
                if (Spelare1Poeng == 5)
                {
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Clear();
                    SkrivUtTron("PLAYER ONE WINS!");
                    SkrivUtTron("Press any key to continue...");
                    Console.ReadKey();
                    Console.Clear();
                }

                Skriv.SkrivUtPosition(Spelare1LodrattPosition, Spelare1VagrattPosition, '0', ConsoleColor.Blue);
                Skriv.SkrivUtPosition(Spelare2LodrattPosition, Spelare2VagrattPosition, '0', ConsoleColor.Red);
                TronAnvands[Spelare1LodrattPosition, Spelare1VagrattPosition] = true;
                TronAnvands[Spelare2LodrattPosition, Spelare2VagrattPosition] = true;
                Thread.Sleep(100);
            }
        }
示例#10
0
 public Vehicle(Riktning direction, Point location)
 {
     Location         = location;
     CurrentDirection = direction;
 }