Esempio n. 1
0
 void CreateWinTile()
 {
     System.Random rnd = new System.Random();
     winTile = tilesUnmined[rnd.Next(tilesUnmined.Count - 20, tilesUnmined.Count)];
     winTile.GetComponent <MeshRenderer>().material = winTileMaterial;
     winTile.winTile = true;
 }
Esempio n. 2
0
    void AssignMines()
    {
        tilesUnmined.AddRange(tilesAll);
        for (int i = numTiles - 1; i >= 0; i--)
        {
            var tile = tilesUnmined[i];
            if (tile.coord.x < 3 && tile.coord.y < 3)
            {
                Debug.Log(tile.coord.x);
                tilesUnmined.Remove(tile);
            }
        }
        int nTotalUnmined = tilesUnmined.Count; // krithik doesn't like this

        System.Random rnd = new System.Random();
        for (int minesAssigned = 0; minesAssigned < nTotalUnmined * percentMines; minesAssigned += 1)
        {
            Tile_Script currentTile = tilesUnmined[rnd.Next(0, tilesUnmined.Count)];
            tilesMined.Add(currentTile);
            tilesUnmined.Remove(currentTile);

            Tile_Script currentTileComponent = currentTile.GetComponent(typeof(Tile_Script)) as Tile_Script;
            currentTileComponent.isMined = true;
        }
    }
Esempio n. 3
0
    public void OnTileClick(Tile_Script t)
    {
        Debug.Log("CLICK @ " + t.coord);

        // take the coordinate and decide if the player should move
        if (IsValidMove(player.coord, t.coord) && (!aboutToDie) && (!aboutToWin))
        {
            // the move is valid, so make it happen
            player.MoveToTile(t);
            activeTile = t; // refrencing the tile that is the location of the player

            if (t.isMined)
            {
                aboutToDie = true; // detects if the tile the player is moving to is a bomb
                Invoke("LoadGameEnd", 4);
            }
            else if (t.winTile)
            {
                aboutToWin = true;
                Invoke("LoadGameWin", 1);
            }
            else
            {
                t.UncoverTile();
            }
        }
    }
Esempio n. 4
0
    void CreateTiles()
    {
        float xOffset = 0.0f;
        float yOffset = 0.0f;

        tilesAll     = new List <Tile_Script>();
        tilesMined   = new List <Tile_Script>();
        tilesUnmined = new List <Tile_Script>();

        for (int tilesCreated = 0; tilesCreated < numTiles; tilesCreated += 1)
        {
            if (tilesCreated % tilesPerRow == 0 && tilesCreated > 0)
            {
                yOffset += distBetweenTiles;
                xOffset  = 0;
            }

            Vector3     tileScreenPosition = new Vector3(transform.position.x + xOffset, transform.position.y + yOffset, transform.position.z); // creates the location of the tile
            Tile_Script newTile            = Instantiate(tilePrefab, tileScreenPosition, tilePrefab.transform.rotation);                        // creates the tile object

            newTile.ID                = tilesCreated;
            newTile.tilesPerRow       = tilesPerRow;
            newTile.coord             = new Vector2Int(tilesCreated % tilesPerRow, (int)(tilesCreated / tilesPerRow)); // assign tile coordinates in integer grid
            newTile.tileClickedEvent += gameController.OnTileClick;                                                    // add GameControl as listener to Tile click event

            tilesAll.Add(newTile);                                                                                     // adds tile to list of tiles

            xOffset += distBetweenTiles;
        }

        AssignMines();
        CreateWinTile();
    }
Esempio n. 5
0
    private void SwapPos(RaycastHit2D pos1, RaycastHit2D pos2)
    {
        //Tile_Script BeganHitTile = m_TouchBeganHit.transform.GetComponent<Tile_Script>();
        //Tile_Script MovedHitTile = m_TouchMovedHit.transform.GetComponent<Tile_Script>();

        Tile_Script BeganHitTile = pos1.transform.GetComponent <Tile_Script>();
        Tile_Script MovedHitTile = pos2.transform.GetComponent <Tile_Script>();

        m_board.ChangeTilePos(BeganHitTile.m_x, BeganHitTile.m_y, MovedHitTile.m_x, MovedHitTile.m_y);
    }
Esempio n. 6
0
 private void CreateTiles()
 {
     foreach (var s in m_BoardList)
     {
         Tile_Script tile = Instantiate <Tile_Script>(s.type_.transform.GetComponent <Tile_Script>());
         tile.transform.SetParent(this.transform);
         tile.transform.position = new Vector3(Param_Script.ZERO_X + (s.x_ * Param_Script.SIZE_X), Param_Script.ZERO_Y + (s.y_ * Param_Script.SIZE_Y), 0f);
         tile.SetTilePos(s.x_, s.y_);
         s.SetTileScript(tile);
     }
 }
Esempio n. 7
0
    private void SwapPos(Board.toys pos1, Board.toys pos2)
    {
        if (pos1 == null && pos2 == null)
        {
            return;
        }

        Tile_Script BeganHitTile = pos1.type_.transform.GetComponent <Tile_Script>();
        Tile_Script MovedHitTile = pos2.type_.transform.GetComponent <Tile_Script>();

        m_board.ChangeTilePos(BeganHitTile.m_x, BeganHitTile.m_y, MovedHitTile.m_x, MovedHitTile.m_y);
    }
Esempio n. 8
0
    private void initiateTiles()
    {
        /* Gets all of the neighboring tiles and stores them */
        if (InBounds(Grid_Script.tilesAll, ID + tilesPerRow))
        {
            tileUpper = Grid_Script.tilesAll[ID + tilesPerRow];                                                                        //sets tileUpper
        }
        if (InBounds(Grid_Script.tilesAll, ID - tilesPerRow))
        {
            tileLower = Grid_Script.tilesAll[ID - tilesPerRow];                                                                        //sets tileLower ... other lines do the same
        }
        if (InBounds(Grid_Script.tilesAll, ID - 1) && ID % tilesPerRow != 0)
        {
            tileLeft = Grid_Script.tilesAll[ID - 1];
        }
        if (InBounds(Grid_Script.tilesAll, ID + 1) && (ID + 1) % tilesPerRow != 0)
        {
            tileRight = Grid_Script.tilesAll[ID + 1];
        }

        if (InBounds(Grid_Script.tilesAll, ID + tilesPerRow + 1) && (ID + 1) % tilesPerRow != 0)
        {
            tileUpperRight = Grid_Script.tilesAll[ID + tilesPerRow + 1];
        }
        if (InBounds(Grid_Script.tilesAll, ID + tilesPerRow - 1) && ID % tilesPerRow != 0)
        {
            tileUpperLeft = Grid_Script.tilesAll[ID + tilesPerRow - 1];
        }
        if (InBounds(Grid_Script.tilesAll, ID - tilesPerRow + 1) && (ID + 1) % tilesPerRow != 0)
        {
            tileLowerRight = Grid_Script.tilesAll[ID - tilesPerRow + 1];
        }
        if (InBounds(Grid_Script.tilesAll, ID - tilesPerRow - 1) && ID % tilesPerRow != 0)
        {
            tileLowerLeft = Grid_Script.tilesAll[ID - tilesPerRow - 1];
        }
        /* InBounds function is the reason this doesn't vomit errors */

        // Add all of the other tiles into a list of adjacent tiles (if they exist)
        if (tileUpper)
        {
            adjacentTiles.Add(tileUpper);
        }
        if (tileLower)
        {
            adjacentTiles.Add(tileLower);
        }
        if (tileRight)
        {
            adjacentTiles.Add(tileRight);
        }
        if (tileLeft)
        {
            adjacentTiles.Add(tileLeft);
        }
        if (tileUpperRight)
        {
            adjacentTiles.Add(tileUpperRight);
        }
        if (tileUpperLeft)
        {
            adjacentTiles.Add(tileUpperLeft);
        }
        if (tileLowerRight)
        {
            adjacentTiles.Add(tileLowerRight);
        }
        if (tileLowerLeft)
        {
            adjacentTiles.Add(tileLowerLeft);
        }
    }
Esempio n. 9
0
 public void MoveToTile(Tile_Script t)
 {
     coord      = t.coord;
     finalCoord = t.transform.position;
 }
Esempio n. 10
0
 public void SetTileScript(Tile_Script t)
 {
     tile_ = t;
 }
Esempio n. 11
0
    private void CheckAnwser()
    {
        Tile_Script BeganHitTile = m_TouchBeganHit.transform.GetComponent <Tile_Script>();
        Tile_Script MovedHitTile = m_TouchMovedHit.transform.GetComponent <Tile_Script>();

        int Began_id = BeganHitTile.GetTileID();
        int moved_id = MovedHitTile.GetTileID();

        int Began_left_up = CheckCaseLeftUp(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x - 1, BeganHitTile.m_y - 1, 0)
                            + CheckCaseRightDown(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x + 1, BeganHitTile.m_y + 1, 0);

        int Began_right_up = CheckCaseRightUp(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x + 1, BeganHitTile.m_y - 1, 0)
                             + CheckCaseLeftDown(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x - 1, BeganHitTile.m_y + 1, 0);

        int Began_center_up = CheckCaseCenterUp(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x, BeganHitTile.m_y - 2, 0)
                              + CheckCaseCenterDown(BeganHitTile.m_x, BeganHitTile.m_y, BeganHitTile.m_x, BeganHitTile.m_y + 2, 0);

        int Moved_left_up = CheckCaseLeftUp(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x - 1, MovedHitTile.m_y - 1, 0)
                            + CheckCaseRightDown(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x + 1, MovedHitTile.m_y + 1, 0);

        int Moved_right_up = CheckCaseRightUp(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x + 1, MovedHitTile.m_y - 1, 0)
                             + CheckCaseLeftDown(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x - 1, MovedHitTile.m_y + 1, 0);

        int Moved_center_up = CheckCaseCenterUp(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x, MovedHitTile.m_y - 2, 0)
                              + CheckCaseCenterDown(MovedHitTile.m_x, MovedHitTile.m_y, MovedHitTile.m_x, MovedHitTile.m_y + 2, 0);

        //모든 경우가 맞지 않으면 되돌린다.
        if (isAllWrong(Began_left_up, Began_right_up, Began_center_up, Moved_left_up, Moved_right_up, Moved_center_up))
        {
            Debug.Log("All Wrong");
            EventSwap(m_TouchBeganHit, m_TouchMovedHit);
            return;
        }

        if (Began_left_up >= 2)
        {
            RemoveLeftUp(Began_id, BeganHitTile.m_x, BeganHitTile.m_y);
            RemoveRightDown(Began_id, BeganHitTile.m_x + 1, BeganHitTile.m_y + 1);
        }

        if (Began_right_up >= 2)
        {
            RemoveRightUp(Began_id, BeganHitTile.m_x, BeganHitTile.m_y);
            RemoveLeftDown(Began_id, BeganHitTile.m_x - 1, BeganHitTile.m_y + 1);
        }

        if (Began_center_up >= 2)
        {
            RemoveCenterUp(Began_id, BeganHitTile.m_x, BeganHitTile.m_y);
            RemoveCenterDown(Began_id, BeganHitTile.m_x, BeganHitTile.m_y + 2);
        }

        if (Moved_left_up >= 2)
        {
            RemoveLeftUp(moved_id, MovedHitTile.m_x, MovedHitTile.m_y);
            RemoveRightDown(moved_id, MovedHitTile.m_x + 1, MovedHitTile.m_y + 1);
        }

        if (Moved_right_up >= 2)
        {
            RemoveRightUp(moved_id, MovedHitTile.m_x, MovedHitTile.m_y);
            RemoveLeftDown(moved_id, MovedHitTile.m_x - 1, MovedHitTile.m_y + 1);
        }

        if (Moved_center_up >= 2)
        {
            RemoveCenterUp(moved_id, MovedHitTile.m_x, MovedHitTile.m_y);
            RemoveCenterDown(moved_id, MovedHitTile.m_x, MovedHitTile.m_y + 2);
        }

        StartDrop();
    }