private static Traveler SetupTraveler(string start)
        {
            var world    = ExampleWorld.Sample();
            var walker   = new Walker(Vector3.Zero);
            var traveler = new Traveler(start, world, walker);
            var zoner    = new Zoner(traveler, world);

            return(traveler);
        }
        public void ReturnData()
        {
            int    amount;
            bool   success;
            string amountIn, zoneIn, result = string.Empty;

            Console.WriteLine("What is the amount?");
            amountIn = Console.ReadLine();
            success  = Int32.TryParse(amountIn, out amount);
            if (!success)
            {
                Console.WriteLine("Enter a valid amount!");
                return;
            }
            Console.WriteLine("What is the zone?");
            zoneIn = Console.ReadLine();
            if (zoneIn.Substring(0, 4).ToLower() != "zone")
            {
                Console.WriteLine("Zone must start with 'Zone' + 1,2,3,4");
            }

            Zoner z = Rate;

            z += delegate(int amountNew, string zoneNew, ref string resultNew)
            {
                if (zoneIn.ToLower() == "zone2" || zoneIn.ToLower() == "zone4")
                {
                    double amountH = 0;
                    Double.TryParse(resultNew, out amountH);
                    amountH += 25;

                    resultNew = $"{amountH}, is high risk";
                }
            };

            z(amount, zoneIn, ref result);

            Console.WriteLine(result);
            Console.WriteLine("\nPress Enter to Continue...");
            Console.ReadLine();
        }
示例#3
0
        public void WalkThroughZonesTravelsThroughZones()
        {
            const string start = "A";
            const string end   = "D";

            // setup the world
            var world    = ExampleWorld.Sample();
            var walker   = new Walker(Vector3.Zero);
            var traveler = new Traveler(start, world, walker);
            var zoner    = new Zoner(traveler, world);

            var zones = new List <Zone>
            {
                world.GetZoneByName("A"),
                world.GetZoneByName("C"),
                world.GetZoneByName("D")
            };

            traveler.WalkToZone(end, true);

            Assert.Equal(end, traveler.CurrentZone.Name);
        }
示例#4
0
        public void GoToZoneWillActuallyZoneTheTraveler()
        {
            const string targetZoneName = "B";
            var          targetPosition = ExampleWorld.ZoneA().Boundaries.Find(b => b.ToZone == targetZoneName).ToPosition;
            var          traveler       = new Traveler
            {
                CurrentZone = ExampleWorld.ZoneA(),
                Position    = Vector3.Zero,
                World       = ExampleWorld.Sample()
            };

            traveler.PathMaker = new GridPathMaker {
                ZoneMap = traveler.CurrentZone.Map
            };

            var zoner = new Zoner(traveler, ExampleWorld.Sample());

            traveler.WalkToZone(targetZoneName);


            Assert.Equal(targetZoneName, traveler.CurrentZone.Name);
            Assert.Equal(targetPosition, traveler.Walker.CurrentPosition);
        }