public void IsMineTest() { Rules rules = new Rules(); Mines mines = new Mines(); mineList = new List <int>(); mines.initMines(); mineList = mines.getMines(); int count = 0; for (int i = 0; i < 20; i++) { int tempnumber = Generating.RandomNumber(0, 99); while (rules.IsMine(tempnumber, mineList)) { tempnumber = Generating.RandomNumber(0, 99); } mines.AddMine(tempnumber); } for (int i = 0; i < 100; i++) { if (rules.IsMine(i, mineList)) { count++; } } Assert.AreEqual(20, count); }
public async Task <Game> CreateGame(int bits, Mines mines = Mines.Three) { if (string.IsNullOrWhiteSpace(PlayerHash)) { throw new NullReferenceException("PlayerHash is empty. You must create a player first to play the game."); } if (bits < 30) { throw new ArgumentOutOfRangeException(nameof(bits)); } var request = new HttpRequestMessage(HttpMethod.Post, "/action/newgame.php") { Content = new FormUrlEncodedContent(new Dictionary <string, string> { { "bd", BdValue }, { "player_hash", PlayerHash }, { "bet", (bits / 10000.0).ToString(CultureInfo.InvariantCulture) }, { "num_mines", ((byte)mines).ToString() } }) }; var response = await _client.SendAsync(request); var content = await response.Content.ReadAsStringAsync(); var gameResponse = JsonHelper.Deserialize <GameResponse>(content); return(new Game(gameResponse, _client)); }
private Cell <Square> GetSquare(int target, Stream <int> sCheck, Stream <int> sFlag) { Cell <Square> square = sFlag.Filter(target.Equals).Snapshot(Flags[target], (_, value) => value ? new Flag().Square : new Tile().Square).Hold(new Tile().Square).SwitchC(); Stream <ISet <int> > sFlipMine = sCheck.Filter(t => Flags[t].Sample()).Filter(Mines.Contains).Map(_ => Mines); Stream <ISet <int> > sFlipVoid = sCheck.Filter(t => Flags[t].Sample()).Filter(Voids.Contains).Map(t => CollectConnectedVoid(t, Voids, Adjacent)); if (Mines.Contains(target)) { var sFlip = sFlipMine.Filter(targets => targets.Contains(target)).Map(_ => Unit.Value); var sTrigger = sCheck.Filter(target.Equals).Filter(_ => Flags[target].Sample()).Map(_ => Unit.Value).OrElse(sFlip); return(sTrigger.Map(_ => new Mine().Square).Hold(square).SwitchC()); } if (Voids.Contains(target)) { var sFlip = sFlipVoid.Filter(targets => targets.Contains(target)).Map(_ => Unit.Value); var sTrigger = sCheck.Filter(target.Equals).Filter(_ => Flags[target].Sample()).Map(_ => Unit.Value).OrElse(sFlip); return(sTrigger.Map(_ => new Void().Square).Hold(square).SwitchC()); } if (Hints.ContainsKey(target)) { var sFlip = sFlipVoid.Filter(voids => Adjacent[target].Any(voids.Contains)).Map(voids => Unit.Value); var sTrigger = sCheck.Filter(target.Equals).Filter(_ => Flags[target].Sample()).Map(_ => Unit.Value).OrElse(sFlip); return(sTrigger.Map(_ => new Hint(Hints[target]).Square).Hold(square).SwitchC()); } return(new Tile().Square); }
public async Task SwitchFaction(int newFactionID) { await Database.UpdateTeam(GameModel.Player, newFactionID); foreach (AntiMine am in AntiMines.Values) { if (GameModel.CellsInView.ContainsKey(am.CellID)) { am.Stop(); GameModel.CellsInView[am.CellID].MapOverlay.RemoveAntiMine(); } } foreach (Mine m in Mines.Values) { if (GameModel.CellsInView.ContainsKey(m.CellID)) { GameModel.CellsInView[m.CellID].MapOverlay.RemoveAntiMine(); } } AntiMines.Clear(); Mines.Clear(); Team = new Team(newFactionID, ColorCode.TeamName(newFactionID)); }
static RealmManager() { Worlds[World.TUT_ID] = new Tutorial(false); Worlds[World.NEXUS_ID] = Worlds[0] = new Nexus(); Worlds[World.NEXUS_LIMBO] = new NexusLimbo(); Worlds[World.VAULT_ID] = new Vault(true); Worlds[World.TEST_ID] = new Test(); Worlds[World.RAND_REALM] = new RandomRealm(); Worlds[World.GAUNTLET] = new GauntletMap(); Worlds[World.WC] = new WineCellarMap(); Worlds[World.ARENA] = new ArenaMap(); Worlds[World.SHOP] = new ShopMap("Default"); Worlds[World.MARKET] = new MarketMap(); Monitor = new RealmPortalMonitor(Worlds[World.NEXUS_ID] as Nexus); //AddWorld(GameWorld.AutoName(1, true)); Mines.Add(0, Worlds[World.NEXUS_ID] as Mine); MerchantLists.GetKeys(); MerchantLists.AddPetShop(); MerchantLists.AddCustomShops(); foreach (var i in MerchantLists.shopLists) { ShopWorlds.TryAdd(i.Key, AddWorld(new ShopMap(i.Key))); } }
public async Task<Game> CreateGame(int bits, Mines mines = Mines.Three) { if (string.IsNullOrWhiteSpace(PlayerHash)) throw new NullReferenceException("PlayerHash is empty. You must create a player first to play the game."); if (bits < 30) throw new ArgumentOutOfRangeException(nameof(bits)); var request = new HttpRequestMessage(HttpMethod.Post, "/action/newgame.php") { Content = new FormUrlEncodedContent(new Dictionary<string, string> { {"bd", BdValue }, {"player_hash", PlayerHash}, {"bet", (bits / 10000.0).ToString(CultureInfo.InvariantCulture)}, {"num_mines", ((byte) mines).ToString()} }) }; var response = await _client.SendAsync(request); var content = await response.Content.ReadAsStringAsync(); var gameResponse = JsonHelper.Deserialize<GameResponse>(content); return new Game(gameResponse, _client); }
// Start is called before the first frame update void Start() { tiles = new GameObject[hight, width]; reveald = new bool[hight, width]; flags = new bool[hight, width]; Vector3 pos = Vector3.zero; for (int i = 0; i < hight; i++) { for (int j = 0; j < width; j++) { pos.x = pos.x + size; tiles[i, j] = factory.MakeBlank(pos); tiles[i, j].name = "Tile_" + i + "_" + j; tiles[i, j].transform.SetParent(transform); } pos.y = pos.y - size; pos.x = pos.x - size * width; } pos.z = -5; pos.x = size * (width + 1) / 2; pos.y = -size * hight / 2; Camera.main.transform.position = pos; Camera.main.orthographicSize = (hight / 5) * cameraSizeIndex; mines = new Mines(width, hight, Mathf.FloorToInt(width * hight * minePercent)); OnFlagsCountChanged?.Invoke(flagCount); }
void OnTriggerEnter2D(Collider2D hitinfo) { JumpSkull js = hitinfo.GetComponent <JumpSkull>(); EnemyGun eg = hitinfo.GetComponent <EnemyGun>(); Mines m = hitinfo.GetComponent <Mines>(); Boss b = hitinfo.GetComponent <Boss>(); Floor f = hitinfo.GetComponent <Floor>(); // Debug.Log(hitinfo.name); if (m != null) { m.TakeDamage(100); Destroy(gameObject); } if (eg != null) { eg.TakeDamage(50); Destroy(gameObject); } if (js != null) { js.TakeDamage(34); Destroy(gameObject); } if (b != null) { b.TakeDamage(20); Destroy(gameObject); } if (f != null) { Destroy(gameObject); } }
public void AddNewMine(Mines newMine) { repellers.Add(newMine); for (int i = 0; i < flock.Count; i++) { flock[i].AddRepellers(newMine); } }
public GameHub( IGameEvents gameEvents, Mines mines ) { _gameEvents = gameEvents; _mines = mines; }
// Use this for initialization void Start() { mine = Instantiate(mineFab); mineScript = mine.GetComponent(typeof(Mines)) as Mines; playerObj = Instantiate(playerFab); player = new Player(this); player.setCoords(6, 7); }
public void RemoveMine(int mineCellID) { if (GameModel.CellsInView.ContainsKey(mineCellID)) { GameModel.CellsInView[mineCellID].MapOverlay.RemoveMine(); Mines.TryRemove(mineCellID, out Mine value); } }
// менюха нев гаме private void newGameToolStripMenuItem_Click(object sender, EventArgs e) { newGame(); showField(g, status); SmileBox.Image = Image.FromFile("good.jpg"); TimetextBox.Text = "00:00:00"; MinetextBox.Text = Mines.ToString(); }
public void Union(Component other) { Nodes.AddRange(other.Nodes); Mines.AddRange(other.Mines); foreach (var score in other.Scores) { Scores[score.Key] += score.Value; } }
public ComponentScore Add(ComponentScore other) { Mines.AddRange(other.Mines); foreach (var score in other.Scores) { Scores[score.Key] += score.Value; } SelfScore = Mines.Sum(x => Scores[x.Id]); return(this); }
LevelBox FindLevelBox(Mines mines) { foreach (var level_box in GetComponentsInChildren <LevelBox>()) { if (level_box.correspondingMines == mines) { return(level_box); } } throw new System.Exception("FindLevelBox failed"); }
public bool IsValid() { return (Width > 0 && Height > 0 && IsValidPosition(StartPosition) && IsValidPosition(Exit) && !StartPosition.IsEqual(Exit) && !Mines.Any(x => x.IsEqual(StartPosition)) && !Mines.Any(x => x.IsEqual(Exit))); }
public ComponentScore(Node node, Node[] mines, IScorer scorer) { Mines = new[] { node }.Where(x => x.IsMine).ToList(); Scores = new Dictionary <int, long>(); foreach (var mine in mines) { var d = scorer.GetDistance(mine, node); Scores.Add(mine.Id, d * d); } SelfScore = Mines.Sum(x => Scores[x.Id]); }
public async Task <Mine> CreateMine(int cellID) { Mine mine = new Mine(cellID, ID); await Database.AddMine(ID, cellID); await Wallet.SubtractConfinium(GameModel.MINE_BASE_PRICE); Mines.TryAdd(cellID, mine); return(mine); }
private void rbMines_CheckedChanged(object sender, EventArgs e) { if (rbMines.Checked) { if (pnlGame.Controls.Count >= 1) { pnlGame.Controls.RemoveAt(0); } Mines mines = new Mines(); pnlGame.Controls.Add(mines); } }
/// <summary> /// pishniaz hay server inja sakhte mishe; /// </summary> /// <param name="_id_server"></param> public void Change_value(string _id_server, string _id, GameObject content_home) { //content_home Content_home = content_home; Chilligames_SDK.API_Client.Recive_data_server <Panel_Servers.Model_server>(new Chilligames.SDK.Model_Client.Req_data_server { Name_app = "Venomic", _id_server = _id_server }, Result => { // fill entitys Name_server = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Name_server; Freeze = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Freeze; Mines = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Mines; Delete = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Delete; Chance = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Chance; Reset = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Reset; Active_day = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Active_Days; Total_level = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Level; Coin = DeserializeObject <Panel_Servers.Model_server.Setting_servers>(Result.Setting.ToString()).Coine; //formule S to Day Active_day = Mathf.Abs((int)Active_day) / 60 / 60 / 24 + 1; //change texts Text_nameserver_number.text = Name_server; Text_freeze_number.text = Freeze.ToString(); Text_mines_number.text = Mines.ToString(); Text_delete_number.text = Delete.ToString(); Text_chance_number.text = Chance.ToString(); Text_reset_number.text = Reset.ToString(); Text_Active_day_number.text = Active_day.ToString(); Text_level_number.text = Total_level.ToString(); Text_Coin_number.text = Coin.ToString(); gameObject.GetComponent <Button>().onClick.AddListener(() => { //work Missions = Instantiate(Raw_model_mission_online, Place_mission); Missions.GetComponent <Raw_model_game_play_online>().Change_value(_id, Name_server, (int)Coin, (int)Total_level, 0, (int)Freeze, (int)Mines, (int)Delete, (int)Chance, (int)Reset, _id_server, gameObject); //effect camera Player.Cam.Move_camera(new Vector3(10, 10, 0)); Player.Cam.Change_color(); //music controler Menu.Play_music_GamePlay(); }); }, err => { }); }
private void CallActionByBuildingCategory(string category, Unit option) { if (Utils.IsWarehouse(category)) { Warehouses warehouses = building.GetComponent <Warehouses>(); warehouses.OnChangeStorePreferences(option); return; } Mines mines = building.GetComponent <Mines>(); mines.OnSetSelectedOption(option); }
// spawns mines every given interval public IEnumerator MineSpawning() { while (isAlive) { if (currentMineCount < maxMineCount) { Instantiate(minePrefab, this.transform.position + (Vector3.forward * -1.5f), Quaternion.Inverse(this.transform.rotation), mineParent); Mines newMine = minePrefab.GetComponent <Mines>(); BoidManager.instance.AddNewMine(newMine); currentMineCount++; yield return(mineDelay); } } yield return(null); }
public void Restart() { reveald = new bool[hight, width]; flags = new bool[hight, width]; for (int i = 0; i < hight; i++) { for (int j = 0; j < width; j++) { factory.SetNormal(tiles[i, j].GetComponent <SpriteRenderer>()); } } mines = new Mines(width, hight, Mathf.FloorToInt(width * hight * 0.25f)); OnFlagsCountChanged?.Invoke(flagCount); }
public void CounterTest() { Mines mines = new Mines(); Rules rules = new Rules(); mineList = new List <int>(); mines.initMines(); mineList = mines.getMines(); int count = 0; for (int i = 0; i < 20; i++) { int tempnumber = Generating.RandomNumber(0, 99); while (rules.IsMine(tempnumber, mineList)) { tempnumber = Generating.RandomNumber(0, 99); } mines.AddMine(tempnumber); } buttons = new List <Button>(); for (int i = 0; i < 100; i++) { buttons.Add(new Button()); buttons[i].BackColor = Color.FromArgb(192, 192, 192); buttons[i].Name = (i).ToString(); if (i < 80) { buttons[i].BackColor = Color.FromArgb(0, 0, 0); } } Gameplay gameplay = new Gameplay(); List <int> numbers = new List <int>(); for (int i = 0; i < 9; i++) { numbers.Add(i); } for (int i = 0; i < 100; i++) { Assert.IsTrue(numbers.Contains(gameplay.CountAdjacentMines(buttons[i], mineList))); } }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { if (BoardSize.Columns < 0 || BoardSize.Rows < 0) { yield return(new ValidationResult("not a valid board size")); } if (StartingPoint.X < 0 || StartingPoint.Y < 0 || StartingPoint.X > BoardSize.Rows - 1 || StartingPoint.Y > BoardSize.Columns - 1) { yield return(new ValidationResult("not a valid starting point")); } if (Mines.Exists(pos => pos.X < 0 || pos.Y < 0 || pos.X > BoardSize.Rows - 1 || pos.Y > BoardSize.Columns - 1)) { yield return(new ValidationResult("not a valid mine position")); } if (ExitPoint.X < 0 || ExitPoint.Y < 0 || ExitPoint.X > BoardSize.Rows - 1 || ExitPoint.Y > BoardSize.Columns - 1) { yield return(new ValidationResult("not a valid exit point")); } }
private void Awake() { Debug.Log("Awake MineExpansions"); SM = GameObject.Find("MainCamera").GetComponent <SceneManage>(); MineBlocks = gameObject.transform.Find("MineBlocks"); Robots = gameObject.transform.Find("Robots"); Mines = gameObject.transform.parent.GetComponent <Mines>(); indexMine = transform.GetSiblingIndex(); dynPrice = gameObject.transform.Find("MineBlocks/MineBlockNext").GetComponentInChildren <Text>(); pBuyRobot = gameObject.transform.Find("BuyRobot").GetComponentInChildren <Text>(); pUpBag = gameObject.transform.Find("BuyBag").GetComponentInChildren <Text>(); pUpSpeed = gameObject.transform.Find("BuySpeed").GetComponentInChildren <Text>(); pUpMine = gameObject.transform.Find("BuyMine").GetComponentInChildren <Text>(); pUpEnergy = gameObject.transform.Find("BuyEnergy").GetComponentInChildren <Text>(); Pipe = gameObject.transform.Find("Pipe").gameObject; buyRobot = gameObject.transform.Find("BuyRobot").gameObject; upgradeBag = gameObject.transform.Find("BuyBag").gameObject; upgradeSpeed = gameObject.transform.Find("BuySpeed").gameObject; upgradeMine = gameObject.transform.Find("BuyMine").gameObject; upgradeEnergy = gameObject.transform.Find("BuyEnergy").gameObject; buyRobot.SetActive(false); Pipe.SetActive(false); upgradeBag.SetActive(false); upgradeSpeed.SetActive(false); upgradeMine.SetActive(false); upgradeEnergy.SetActive(false); //Роботы robots = Robots.GetComponentsInChildren <Robot>(); LoadBlocks(); //nextBlock имеет ссылку только после LoadBlocks() psBoom = nextBlock.GetComponentInChildren <ParticleSystem>(); }
IEnumerator _WriteNewScore(Mines mines, int score) { bool contact_server = (mines.remoteBestScore == 0 || score < mines.remoteBestScore); int local_best = LoadLocalBest(mines.nbombs); if (local_best == 0 || score < local_best) { local_best = score; SaveLocalBest(mines.nbombs, score); } var level_box = FindLevelBox(mines); var text = level_box.transform.Find("Canvas/Text (1)").GetComponent <UnityEngine.UI.Text>(); text.fontSize = 50; text.text = string.Format("local best: {0} s", local_best); if (contact_server) { string hexdigest = CalculateMD5Hash(mines.nbombs + "SeCrEt" + local_best); string url = string.Format("https://vrsketch.eu/minesweeper/score?h={0}", hexdigest); WWW www = new WWW(url); yield return(www); if (string.IsNullOrEmpty(www.error)) { string[] lines = www.text.Split('\n'); foreach (var mines1 in FindObjectsOfType <Mines>()) { mines1.remoteBestScore = ParseBest(lines, mines1.nbombs); } } } if (mines.remoteBestScore > 0 && !text.text.Contains("\n")) { text.text = string.Format("{0}\nglobal best: {1} s", text.text, mines.remoteBestScore); } }
public void Configure(string gameSettingsFile, string movesFile) { var gameSettings = File.ReadAllLines(gameSettingsFile ?? Path.Combine(Directory.GetCurrentDirectory(), _defaultGameSettingsFile)); ValidateConfigFile(gameSettings); Size = GetPoint(gameSettings, "Boarding Size:", 0); StartPosition = GetPoint(gameSettings, "Starting Point:", 1); ExitPosition = GetPoint(gameSettings, "Exit Point:", 3); StartDirection = GetDirection(gameSettings[2]); for (int i = 4; i < gameSettings.Length; i++) { Mines.Add(GetPoint(gameSettings, "Mine:", i)); } var movements = File.ReadAllLines(movesFile ?? Path.Combine(Directory.GetCurrentDirectory(), _defaultMovesFile)); for (int i = 0; i < movements.Length; i++) { if (string.IsNullOrEmpty(movements[i])) { continue; } if (movements[i].ToLower().Trim() == "m") { Movements.Add(Movement.Move); } else if (movements[i].ToLower().Trim() == "r") { Movements.Add(Movement.Rotate); } } }
private void newGame() { int row, col; // индексы клетки int n = 0; // количество поставленных мин // очищаем поле for (row = 1; row <= FieldHeight; row++) { for (col = 1; col <= FieldWight; col++) { Field[row, col] = 0; } } Random rnd = new Random(); // расставим мины do { row = rnd.Next(FieldHeight) + 1; col = rnd.Next(FieldWight) + 1; if (Field[row, col] != 9) { Field[row, col] = 9; n++; } }while (n != Mines); // для каждой клетки вычислим кол-во мин вокруг MinesAround(row, col); // начинаем status = 0; FindMines = 0; FindFlags = 0; MinetextBox.Font = new Font("Tahoma", 16); MinetextBox.Text = Mines.ToString(); }
private void Right_Button_Click_Reaction(int row, int col, int tag, string activator /*to know who lost*/) { Button btn = find_button_by_tag(tag); if (btn == null) { throw new MinesweeperException("Invalid Button to MinesGrid reference on multiple reveal"); } if (!Mines.IsInGrid(row, col)) { throw new MinesweeperException("Invalid Button to MinesGrid reference on flag"); // the button points to an invalid plate } if (Mines.IsFlagged(row, col)) // the button has flag image child { btn.Content = ""; // clears flag image } else { // attaches flag image to the button StackPanel sp = new StackPanel(); sp.Orientation = Orientation.Horizontal; Image flagImage = new Image(); BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(@"..\..\flag.png", UriKind.Relative); bi.EndInit(); flagImage.Source = bi; flagImage.Width = bi.PixelWidth; flagImage.Height = bi.PixelHeight; sp.Children.Add(flagImage); btn.Content = sp; } Mines.FlagMine(row, col); }