Exemplo n.º 1
0
        //constructor
        public static void init(MapEnum map_type, uint channel_max, uint rank_max, uint col_per_subrow, DDR3DRAM ddr3)
        {
            MemMap.map_type    = map_type;
            MemMap.channel_max = channel_max;

            //bits
            chan_bits = (uint)Math.Log(channel_max, 2);
            rank_bits = (uint)Math.Log(rank_max, 2);
            bank_bits = (uint)Math.Log(ddr3.BANK_MAX, 2);
            col_bits  = (uint)Math.Log(ddr3.COL_MAX, 2);
            if (col_per_subrow > 0)
            {
                col2_bits = (uint)Math.Log(col_per_subrow, 2);
                col1_bits = col_bits - col2_bits;
            }
            else
            {
                col2_bits = 0;
            }
            transfer_bits = (uint)Math.Log(64, 2); //64B transfer


            //mask, offset
            set_maskoffset();
        }
Exemplo n.º 2
0
 private void buildButton_Click(object sender, RoutedEventArgs e)
 {
     try {
         String    buildName = (String)buildsList.SelectedItem;
         int       x         = Int32.Parse(xField.Text);
         int       y         = Int32.Parse(yField.Text);
         MapEnum   menum     = null;
         MapObject mobj      = null;
         try
         {
             menum = BuildType.VALUES.Where(type => type.getName() == buildName).First();
             if (menum != null)
             {
                 mobj = new Build((BuildType)menum);
             }
         }
         catch (Exception) { }
         try
         {
             menum = ReliefType.VALUES.Where(type => type.getName() == buildName).First();
             if (menum != null)
             {
                 mobj = new Relief((ReliefType)menum);
             }
         }
         catch (Exception) { }
         model.game.create(mobj, x, y);
         drawMap();
         generateResources();
         generateBuilds();
     } catch (Exception)
     {
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 坐标互转
        /// </summary>
        /// <param name="lng">经度</param>
        /// <param name="lat">纬度</param>
        /// <param name="from">待转换的坐标类型</param>
        /// <param name="to">最终转换成的坐标类型</param>
        /// <returns></returns>
        public static Map ConvertAll(double lng, double lat, MapEnum from, MapEnum to)
        {
            //google 坐标转百度链接   //http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=&y=
            //gps坐标的type=0
            //google坐标的type=2
            //baidu坐标的type=4
            string path = "http://api.map.baidu.com/ag/coord/convert?from=" + from.GetHashCode() + "&to=" + to.GetHashCode() + "&x=" + lng + "+&y=" + lat;

            //使用http请求获取转换结果、得到返回的结果
            string res = HttpHelper.GET(path).ToString();
            //处理结果
            MapJson json = JsonHelper.JsonDeserialize <MapJson>(res);
            Map     map  = new Map();

            if (json.X != null)
            {
                byte[] outputb = Convert.FromBase64String(json.X);
                map.X = Convert.ToDouble(Encoding.Default.GetString(outputb));
            }
            if (json.Y != null)
            {
                byte[] outputb = Convert.FromBase64String(json.Y);
                map.Y = Convert.ToDouble(Encoding.Default.GetString(outputb));
            }
            return(map);
        }
Exemplo n.º 4
0
    public void GameWin()
    {
        Time.timeScale = 0f;
        menuContainer.SetActive(true);

        menuOptions.SetActive(false);
        gameOverOptions.SetActive(false);
        gameWinOptions.SetActive(true);

        _musicScript.PlayVictoryMusic();

        int lastMap = (int)MapEnum.Mountains;

        int currentMap = (int)currentMapEnum;

        if (currentMap < lastMap)
        {
            MapEnum nextMap = (MapEnum)(currentMap + 1);

            //to je jedno aka hodnota, ide iba o to aby tam bol ten kluc
            //potom map card v menu sa spyta ci to ten kluc obsahuje ak hej dovol zahrat danu mapu
            PlayerPrefs.SetInt(Enum.GetName(typeof(MapEnum), nextMap), 1);
            PlayerPrefs.Save();
        }
    }
Exemplo n.º 5
0
        public TomeOfChaos Tome_FromYaml(IParser parser)
        {
            parser.Consume <MappingStart>();

            (string k, string v) = parser.GetKVP();
            if (k != "TopSeed")
            {
                throw new Exception($"Expected 'TopSeed', got '{k}'.");
            }

            var topSeed       = v;
            var mapGenerators = new Dictionary <MapEnum, AbstractGenerator>();
            var generators    = new Dictionary <string, AbstractGenerator>();

            string label = parser.GetScalar();

            if (label != "Generators")
            {
                throw new Exception($"Expected 'Generators', got '{label}'.");
            }
            parser.Consume <MappingStart>();
            while (!parser.TryConsume <MappingEnd>(out _))
            {
                (k, v)        = parser.GetKVP();
                generators[k] = RngFromBase64(v);
            }

            label = parser.GetScalar();
            if (label != "MapGenerators")
            {
                throw new Exception($"Expected 'MapGenerators', got '{label}'.");
            }
            parser.Consume <MappingStart>();
            while (!parser.TryConsume <MappingEnd>(out _))
            {
                (k, v) = parser.GetKVP();
                MapEnum key = Enum.Parse <MapEnum>(k);
                mapGenerators[key] = RngFromBase64(v);
            }

            parser.Consume <MappingEnd>();

            var tome = new TomeOfChaos(topSeed, generators, mapGenerators);

            return(tome);
        }
        public static MainWindowDataModel Load()
        {
            if (File.Exists(DataPath))
            {
                MainWindowDataModel model = DataSerializer.DeserializeItem(DataPath);
                ResourceList        list  = new ResourceList();
                model.resources.ForEach(r => list.add(new Resource(ResourceType.VALUES.Where(type => type.getName() == r.resource).First(), r.count)));
                Map map = new Map(10, 10);
                model.map.ForEach(item => {
                    MapEnum menum  = null;
                    MapObject mobj = null;
                    try
                    {
                        menum = BuildType.VALUES.Where(type => type.getName() == item.build).First();
                        if (menum != null)
                        {
                            mobj = new Build((BuildType)menum);
                            if (item.sleep)
                            {
                                mobj.sleep();
                            }
                            if (item.recondition)
                            {
                                mobj.recondition();
                            }
                        }
                    } catch (Exception) { }
                    try {
                        menum = ReliefType.VALUES.Where(type => type.getName() == item.build).First();
                        if (menum != null)
                        {
                            mobj = new Relief((ReliefType)menum);
                        }
                    } catch (Exception) { }

                    if (mobj != null)
                    {
                        map.set(mobj, item.x, item.y);
                    }
                });
                model.game = new Game(map, list);
                return(model);
            }
            return(new MainWindowDataModel());
        }
Exemplo n.º 7
0
        //constructor
        public static void Init(MapEnum mapType, uint channelMax, uint rankMax, uint colPerSubrow, DDR3DRAM ddr3)
        {
            MapType    = mapType;
            ChannelMax = channelMax;

            /* number of bits in index */
            //channel
            _chanBits = (uint)Math.Log(channelMax, 2);

            //rank
            _rankBits = (uint)Math.Log(rankMax, 2);

            //bank
            _bankBits = (uint)Math.Log(ddr3.BANK_MAX, 2);
            if (mapType == MapEnum.ROW_BANK1_COL_BANK2_RANK_CHAN)
            {
                _bank2Bits = 3;
                _bank1Bits = _bankBits - 3;
            }

            //column
            _colBits = (uint)Math.Log(ddr3.COL_MAX, 2);
            if (colPerSubrow > 0)
            {
                _col2Bits = (uint)Math.Log(colPerSubrow, 2);
                _col1Bits = _colBits - _col2Bits;
            }
            else
            {
                _col2Bits = 0;
            }

            //row
            _subarrayBits = (uint)Math.Log(ddr3.SUBARRAYS_PER_BANK, 2);

            //transfer
            _transferBits = (uint)Math.Log(64, 2); //64B transfer


            /* bitmask and bitoffset for each index */
            set_maskoffset();
        }
Exemplo n.º 8
0
        //constructor
        public static void init(MapEnum map_type, uint channel_max, uint rank_max, uint col_per_subrow, DDR3DRAM ddr3)
        {
            MemMap.map_type = map_type;
            MemMap.channel_max = channel_max;

            //bits
            chan_bits = (uint)Math.Log(channel_max, 2);
            rank_bits = (uint)Math.Log(rank_max, 2);
            bank_bits = (uint)Math.Log(ddr3.BANK_MAX, 2);
            col_bits = (uint)Math.Log(ddr3.COL_MAX, 2);
            if (col_per_subrow > 0) {
                col2_bits = (uint)Math.Log(col_per_subrow, 2);
                col1_bits = col_bits - col2_bits;
            }
            else {
                col2_bits = 0;
            }
            transfer_bits = (uint)Math.Log(64, 2); //64B transfer

            //mask, offset
            set_maskoffset();
        }
Exemplo n.º 9
0
Arquivo: Bot.cs Projeto: evilz/TyrSc2
        private bool MapNameMatches(MapEnum map)
        {
            string        enumName = map.ToString();
            List <string> mapWords = new List <string>();

            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int i = 0; i < enumName.Length; i++)
            {
                if (enumName[i] >= 'A' && enumName[i] <= 'Z')
                {
                    if (sb.Length > 0)
                    {
                        mapWords.Add(sb.ToString());
                    }
                    sb = new System.Text.StringBuilder();
                    sb.Append((char)(enumName[i] - 'A' + 'a'));
                }
                else
                {
                    sb.Append(enumName[i]);
                }
            }
            if (sb.Length > 0)
            {
                mapWords.Add(sb.ToString());
            }

            string lowercaseMapName = GameInfo.MapName.ToLower();

            foreach (string mapWord in mapWords)
            {
                if (!lowercaseMapName.Contains(mapWord))
                {
                    return(false);
                }
            }
            return(true);
        }
Exemplo n.º 10
0
Arquivo: Bot.cs Projeto: evilz/TyrSc2
        public void OnStart(ResponseGameInfo gameInfo, ResponseData data, ResponsePing pingResponse, ResponseObservation observation, uint playerId, string opponentID)
        {
            ArchonMode = Settings.ArchonMode();

            Observation = observation;
            GameInfo    = gameInfo;


            foreach (MapEnum map in System.Enum.GetValues(typeof(MapEnum)))
            {
                if (MapNameMatches(map))
                {
                    System.Console.WriteLine("Setting map name to: " + map.ToString());
                    GameInfo.MapName = map.ToString();
                    Map = map;
                    break;
                }
            }

            PlayerId = playerId;
            Data     = data;

            if (!Settings.MapAllowed(GameInfo.MapName))
            {
                DebugUtil.WriteLine("Tyr does not support the map " + GameInfo.MapName + ". If Tyr should accept this map as well, you can add the line 'map " + GameInfo.MapName + "' to the settings.txt file.");
                FileUtil.Log("Tyr does not support the map " + GameInfo.MapName + ". If Tyr should accept this map as well, you can add the line 'map " + GameInfo.MapName + "' to the settings.txt file.");
                System.Console.ReadLine();
                throw new System.Exception("Tyr does not support the map " + GameInfo.MapName + ". If Tyr should accept this map as well, you can add the line 'map " + GameInfo.MapName + "' to the settings.txt file.");
            }

            GameVersion = pingResponse.GameVersion;
            OldMapData  = SC2Util.IsVersionBefore("4.9.3");
            DebugUtil.WriteLine("Game version: " + pingResponse.GameVersion);
            UnitTypes.LoadData(data);

            OpponentID = opponentID;

            MyRace = GameInfo.PlayerInfo[(int)Observation.Observation.PlayerCommon.PlayerId - 1].RaceActual;
            if (GameInfo.PlayerInfo[2 - (int)Observation.Observation.PlayerCommon.PlayerId].RaceActual == Race.NoRace)
            {
                EnemyRace = GameInfo.PlayerInfo[2 - (int)Observation.Observation.PlayerCommon.PlayerId].RaceRequested;
            }
            else
            {
                EnemyRace = GameInfo.PlayerInfo[2 - (int)Observation.Observation.PlayerCommon.PlayerId].RaceActual;
            }
            DebugUtil.WriteLine("MyRace: " + MyRace);
            DebugUtil.WriteLine("EnemyRace: " + EnemyRace);
            DebugUtil.WriteLine("Game started on map: " + GameInfo.MapName);

            FileUtil.Log("Game started on map: " + GameInfo.MapName);
            FileUtil.Log("Enemy race: " + EnemyRace);

            MapAnalyzer.Analyze(this);
            TargetManager.OnStart(this);
            BaseManager.OnStart(this);

            foreach (Plugin plugin in Plugins)
            {
                plugin.OnStart();
            }

            Build = DetermineBuild();
            Build.InitializeTasks();
            Build.OnStart(this);

            FileUtil.Register("started " + EnemyRace + " " + Build.Name());

            Managers.Add(UnitManager);
            Managers.Add(EnemyManager);
            Managers.Add(BaseManager);
            Managers.Add(TargetManager);
            Managers.Add(TaskManager);
            Managers.Add(EffectManager);
            Managers.Add(EnemyMineManager);
            Managers.Add(EnemyTankManager);
            Managers.Add(EnemyCycloneManager);
            Managers.Add(EnemyBansheesManager);

            if (GameInfo.PlayerInfo[(int)Observation.Observation.PlayerCommon.PlayerId - 1].RaceActual == Race.Protoss)
            {
                Managers.Add(NexusAbilityManager);
            }

            if (GameInfo.PlayerInfo[(int)Observation.Observation.PlayerCommon.PlayerId - 1].RaceActual == Race.Terran)
            {
                Managers.Add(OrbitalAbilityManager);
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// 转成百度坐标
 /// </summary>
 /// <param name="lng">经度</param>
 /// <param name="lat">纬度</param>
 /// <param name="from">待转换的坐标类型</param>
 /// <returns></returns>
 public static Map Convert2BaiDu(double lng, double lat, MapEnum from)
 {
     return(ConvertAll(lng, lat, from, MapEnum.BAIDU));
 }
Exemplo n.º 12
0
 public int MapRndNext(MapEnum map) => MapGenerators[map].Next();