コード例 #1
0
ファイル: PlaceList.cs プロジェクト: alfa4mail/tractor-game
 public void SetList(ref Bricks brickList, ref BlueBricks blueBrickList, ref Soils soilList,
                     ref Stones stoneList, ref Skiers skiList, ref Bombs bombList, ref Player trac, ref Player trac2)
 {
     foreach (Brick br in bricks)
     {
         brickList.AddPlayer(br);
     }
     foreach (BlueBrick br in blueBricks)
     {
         blueBrickList.AddPlayer(br);
     }
     foreach (Soil br in soils)
     {
         soilList.AddPlayer(br);
     }
     foreach (Stone br in stones)
     {
         stoneList.AddPlayer(br);
     }
     foreach (Skier br in skiers)
     {
         skiList.AddPlayer(br);
     }
     foreach (Bomb br in bombs)
     {
         bombList.AddPlayer(br);
     }
     trac  = thisPlayer;
     trac2 = thisPlayer2;
 }
コード例 #2
0
ファイル: PlaceList.cs プロジェクト: alfa4mail/tractor-game
 public PlaceList(Bricks brickList, BlueBricks blueBrickList, Soils soilList,
                  Stones stoneList, Skiers skiList, Bombs bombList, Player trac, Player trac2)
 {
     foreach (Brick br in brickList)
     {
         bricks.AddPlayer(br);
     }
     foreach (BlueBrick br in blueBrickList)
     {
         blueBricks.AddPlayer(br);
     }
     foreach (Soil br in soilList)
     {
         soils.AddPlayer(br);
     }
     foreach (Stone br in stoneList)
     {
         stones.AddPlayer(br);
     }
     foreach (Skier br in skiList)
     {
         skiers.AddPlayer(br);
     }
     foreach (Bomb br in bombList)
     {
         bombs.AddPlayer(br);
     }
     thisPlayer  = trac;
     thisPlayer2 = trac2;
 }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: alfa4mail/tractor-game
        private void BombMove(Bombs bombList, Skiers skiList, Bricks brickList)
        {
            foreach (Bomb st in bombList)
            {
                if (Map.GetItem(st.TOP / 25 + 1, st.LEFT / 25) == ItemName.Skier)
                {
                    int delSki = Map.GetInd(st.TOP / 25 + 1, st.LEFT / 25);
                    //foreach (Skier sk in skiList)
                    //	if ((st.LEFT == sk.LEFT) && (st.TOP == (sk.TOP-25)))
                    //	{
                    //Invalidate(new Rectangle(st.LEFT, st.TOP, 25, 25));
                    Invalidate(new Rectangle(st.LEFT, st.TOP, 25, 50));
                    Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                    Map.SetItem(st.TOP / 25 + 1, st.LEFT / 25, ItemName.Null);
                    //bombList.RemovePlayer(bombList.IndexOf(st));
                    //skiList.RemovePlayer(delSki);
                    //        break;
                    //	}
                }
            }

            foreach (Bomb st in bombList)
            {
                if (st.Moving(trac) == true)
                {
                    if (st.BombDirec == Direction.Down)
                    {
                        InvalidateDown(st);
                    }
                    if (st.BombDirec == Direction.Left)
                    {
                        InvalidateLeft(st);
                    }
                    if (st.BombDirec == Direction.Right)
                    {
                        InvalidateRight(st);
                    }
                }
            }
        }
コード例 #4
0
ファイル: Skier.cs プロジェクト: alfa4mail/tractor-game
        public Boolean Moving(Stones stoneList, Bombs bombList)
        {
            switch (myDirection)
            {
            case Direction.Up:
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Stone)
                {
                    return(false);
                }
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Bomb)
                {
                    return(false);
                }

                // Дописать проверку игрока

                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)                 //up
                {
                    player      = new Bitmap("SkierUp.bmp");
                    myDirection = Direction.Up;
                    top        -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)                 //right
                {
                    left       += size;
                    player      = new Bitmap("SkierRight.bmp");
                    myDirection = Direction.Right;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)                       //down
                {
                    player      = new Bitmap("SkierDown.bmp");
                    myDirection = Direction.Down;
                    top        += size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)                 //left
                {
                    player      = new Bitmap("SkierLeft.bmp");
                    myDirection = Direction.Left;
                    left       -= size;
                    return(true);
                }
                break;

            case Direction.Down:
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Stone)
                {
                    return(false);
                }
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Bomb)
                {
                    return(false);
                }
                if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)                    //down
                {
                    player      = new Bitmap("SkierDown.bmp");
                    myDirection = Direction.Down;
                    top        += size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)                 //left
                {
                    player      = new Bitmap("SkierLeft.bmp");
                    myDirection = Direction.Left;
                    left       -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)                 //up
                {
                    player      = new Bitmap("SkierUp.bmp");
                    myDirection = Direction.Up;
                    top        -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)                 //right
                {
                    left       += size;
                    player      = new Bitmap("SkierRight.bmp");
                    myDirection = Direction.Right;
                    return(true);
                }
                break;

            case Direction.Left:
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Stone)
                {
                    return(false);
                }
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Bomb)
                {
                    return(false);
                }

                if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)                 //left
                {
                    player      = new Bitmap("SkierLeft.bmp");
                    myDirection = Direction.Left;
                    left       -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)                 //up
                {
                    player      = new Bitmap("SkierUp.bmp");
                    myDirection = Direction.Up;
                    top        -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)                 //right
                {
                    left       += size;
                    player      = new Bitmap("SkierRight.bmp");
                    myDirection = Direction.Right;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)                       //down
                {
                    player      = new Bitmap("SkierDown.bmp");
                    myDirection = Direction.Down;
                    top        += size;
                    return(true);
                }
                break;

            case Direction.Right:
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Stone)
                {
                    return(false);
                }
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Bomb)
                {
                    return(false);
                }

                if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)                 //right
                {
                    left       += size;
                    player      = new Bitmap("SkierRight.bmp");
                    myDirection = Direction.Right;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)                       //down
                {
                    player      = new Bitmap("SkierDown.bmp");
                    myDirection = Direction.Down;
                    top        += size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)                 //left
                {
                    player      = new Bitmap("SkierLeft.bmp");
                    myDirection = Direction.Left;
                    left       -= size;
                    return(true);
                }
                else if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)                 //up
                {
                    player      = new Bitmap("SkierUp.bmp");
                    myDirection = Direction.Up;
                    top        -= size;
                    return(true);
                }
                break;
            }
            return(false);
        }
コード例 #5
0
ファイル: Player.cs プロジェクト: alfa4mail/tractor-game
        public Boolean Moving(System.Windows.Forms.KeyPressEventArgs e,
                              Soils soilList, Stones stoneList, Bombs bombList)
        {
            if ((e.KeyChar.ToString() == "p") || (e.KeyChar.ToString() == "ç"))
            {
                BombNowCreate = true;
                if ((myDirection == Direction.Left) &&
                    (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null))//left
                {
                    Bomb currentBomb = new Bomb(left / 25 - 1, top / 25);
                    bombList.AddPlayer(currentBomb);

                    Map.SetItem(this.TOP / 25, this.LEFT / 25 - 1, ItemName.Bomb);
                    Map.SetInd(this.TOP / 25, this.LEFT / 25 - 1, bombList.IndexOf(currentBomb));
                }
                if ((myDirection == Direction.Right) &&
                    (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null))//right
                {
                    Bomb currentBomb = new Bomb(left / 25 + 1, top / 25);
                    bombList.AddPlayer(currentBomb);

                    Map.SetItem(this.TOP / 25, this.LEFT / 25 + 1, ItemName.Bomb);
                    Map.SetInd(this.TOP / 25, this.LEFT / 25 + 1, bombList.IndexOf(currentBomb));
                }
                if ((myDirection == Direction.Up) &&
                    (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null))//up
                {
                    Bomb currentBomb = new Bomb(left / 25, top / 25 - 1);
                    bombList.AddPlayer(currentBomb);

                    Map.SetItem(this.TOP / 25 - 1, this.LEFT / 25, ItemName.Bomb);
                    Map.SetInd(this.TOP / 25 - 1, this.LEFT / 25, bombList.IndexOf(currentBomb));
                }
                if ((myDirection == Direction.Down) &&
                    (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null))  //down
                {
                    Bomb currentBomb = new Bomb(left / 25, top / 25 + 1);
                    bombList.AddPlayer(currentBomb);

                    Map.SetItem(this.TOP / 25 + 1, this.LEFT / 25, ItemName.Bomb);
                    Map.SetInd(this.TOP / 25 + 1, this.LEFT / 25, bombList.IndexOf(currentBomb));
                }
                return(false);
            }
            else if ((e.KeyChar.ToString() == "a") || (e.KeyChar.ToString() == "ô"))
            {
                RemoveLeftSoil(soilList);
                if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Stone) &&
                    (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 2) == ItemName.Null))             //left stone
                {
                    foreach (Stone st in stoneList)
                    {
                        if ((st.LEFT == this.LEFT - 25) && (st.TOP == this.TOP))
                        {
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                            st.LEFT -= 25;
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Stone);
                        }
                    }
                }
                else if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Bomb) &&
                         (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 2) == ItemName.Null))        //left bomb
                {
                    foreach (Bomb st in bombList)
                    {
                        if ((st.LEFT == this.LEFT - 25) && (st.TOP == this.TOP))
                        {
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                            st.LEFT -= 25;
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Bomb);
                        }
                    }
                }
                if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)         //left
                {
                    left       -= size;
                    player      = new Bitmap("PlayerLeft.bmp");
                    myDirection = Direction.Left;
                    return(true);
                }
            }
            else if ((e.KeyChar.ToString() == "d") || (e.KeyChar.ToString() == "â"))
            {
                RemoveRightSoil(soilList);
                if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Stone) &&
                    (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 2) == ItemName.Null))             //left stone
                {
                    foreach (Stone st in stoneList)
                    {
                        if ((st.LEFT == this.LEFT + 25) && (st.TOP == this.TOP))
                        {
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                            st.LEFT += 25;
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Stone);
                        }
                    }
                }
                else if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Bomb) &&
                         (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 2) == ItemName.Null))        //left bomb
                {
                    foreach (Bomb st in bombList)
                    {
                        if ((st.LEFT == this.LEFT + 25) && (st.TOP == this.TOP))
                        {
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                            st.LEFT += 25;
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Bomb);
                        }
                    }
                }
                if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)         //right
                {
                    left       += size;
                    player      = new Bitmap("PlayerRight.bmp");
                    myDirection = Direction.Right;
                    return(true);
                }
            }
            else if ((e.KeyChar.ToString() == "w") || (e.KeyChar.ToString() == "ö"))
            {
                RemoveUpSoil(soilList);
                if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)         //up
                {
                    top        -= size;
                    player      = new Bitmap("PlayerUp.bmp");
                    myDirection = Direction.Up;
                    return(true);
                }
            }
            else if ((e.KeyChar.ToString() == "s") || (e.KeyChar.ToString() == "û"))
            {
                RemoveDownSoil(soilList);
                if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)            //down
                {
                    top        += size;
                    player      = new Bitmap("PlayerDown.bmp");
                    myDirection = Direction.Down;
                    return(true);
                }
            }
            return(false);
        }
コード例 #6
0
ファイル: Player.cs プロジェクト: alfa4mail/tractor-game
 public Boolean Moving(String str, Soils soilList, Stones stoneList, Bombs bombList)
 {
     if (str == "Bomb")
     {
         if ((myDirection == Direction.Left) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null))             //left
         {
             bombList.AddPlayer(new Bomb(left / 25 - 1, top / 25));
         }
         if ((myDirection == Direction.Right) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null))             //right
         {
             bombList.AddPlayer(new Bomb(left / 25 + 1, top / 25));
         }
         if ((myDirection == Direction.Up) &&
             (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null))             //up
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 - 1));
         }
         if ((myDirection == Direction.Down) &&
             (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null))                  //down
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 + 1));
         }
     }
     else if (str == "Left")
     {
         RemoveLeftSoil(soilList);
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)         //left
         {
             left       -= size;
             player      = new Bitmap("ClientLeft.bmp");
             myDirection = Direction.Left;
             return(true);
         }
     }
     else if (str == "Right")
     {
         RemoveRightSoil(soilList);
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)         //right
         {
             left       += size;
             player      = new Bitmap("ClientRight.bmp");
             myDirection = Direction.Right;
             return(true);
         }
     }
     else if (str == "Up")
     {
         RemoveUpSoil(soilList);
         if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)         //up
         {
             top        -= size;
             player      = new Bitmap("ClientUp.bmp");
             myDirection = Direction.Up;
             return(true);
         }
     }
     else if (str == "Down")
     {
         RemoveDownSoil(soilList);
         if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)            //down
         {
             top        += size;
             player      = new Bitmap("ClientDown.bmp");
             myDirection = Direction.Down;
             return(true);
         }
     }
     return(false);
 }
コード例 #7
0
        private void BombMove(Bombs bombList, Skiers skiList, Bricks brickList)
        {
            Int32 countSkier = 0;

            Int32 [] IndSkier  = new Int32[bombList.CountPlayer];
            Int32    countBomb = 0;

            Int32 [] IndBomb = new Int32[bombList.CountPlayer];
            foreach (Bomb st in bombList)
            {
                if (Map.GetItem(st.TOP / 25 + 1, st.LEFT / 25) == ItemName.Skier)
                {
                    foreach (Skier sk in skiList)
                    {
                        if ((st.LEFT == sk.LEFT) && (st.TOP == (sk.TOP - 25)))
                        {
                            IndSkier[countSkier] = skiList.IndexOf(sk);
                            IndBomb[countBomb]   = bombList.IndexOf(st);
                            Invalidate(new Rectangle(sk.LEFT, sk.TOP, 25, 25));
                            Invalidate(new Rectangle(st.LEFT, st.TOP, 25, 25));
                            Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                            Map.SetItem(sk.TOP / 25, sk.LEFT / 25, ItemName.Null);
                            countSkier++;
                            countBomb++;
                        }
                    }
                }
            }
            Array.Sort(IndSkier);
            Array.Reverse(IndSkier);

            Array.Sort(IndBomb);
            Array.Reverse(IndBomb);

            for (int i = 0; i < countBomb; i++)
            {
                bombList.RemovePlayer(IndBomb[i]);
            }
            for (int i = 0; i < countSkier; i++)
            {
                skiList.RemovePlayer(IndSkier[i]);
            }

            foreach (Bomb st in bombList)
            {
                if (st.Moving(trac) == true)
                {
                    if (st.BombDirec == Direction.Down)
                    {
                        InvalidateDown(st);
                    }
                    if (st.BombDirec == Direction.Left)
                    {
                        InvalidateLeft(st);
                    }
                    if (st.BombDirec == Direction.Right)
                    {
                        InvalidateRight(st);
                    }
                }
            }
        }
コード例 #8
0
ファイル: Player.cs プロジェクト: alfa4mail/tractor-game
 public Boolean Moving(System.Windows.Forms.KeyPressEventArgs e,
                       Soils soilList, Stones stoneList, Bombs bombList)
 {
     if ((e.KeyChar.ToString() == "p") || (e.KeyChar.ToString() == "ç"))
     {
         BombNowCreate = true;
         if ((myDirection == Direction.Left) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null))             //left
         {
             bombList.AddPlayer(new Bomb(left / 25 - 1, top / 25));
         }
         if ((myDirection == Direction.Right) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null))             //right
         {
             bombList.AddPlayer(new Bomb(left / 25 + 1, top / 25));
         }
         if ((myDirection == Direction.Up) &&
             (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null))             //up
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 - 1));
         }
         if ((myDirection == Direction.Down) &&
             (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null))                  //down
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 + 1));
         }
     }
     else if ((e.KeyChar.ToString() == "a") || (e.KeyChar.ToString() == "ô"))
     {
         RemoveLeftSoil(soilList);
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)         //left
         {
             left       -= size;
             player      = new Bitmap("ClientLeft.bmp");
             myDirection = Direction.Left;
             return(true);
         }
     }
     else if ((e.KeyChar.ToString() == "d") || (e.KeyChar.ToString() == "â"))
     {
         RemoveRightSoil(soilList);
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)         //right
         {
             left       += size;
             player      = new Bitmap("ClientRight.bmp");
             myDirection = Direction.Right;
             return(true);
         }
     }
     else if ((e.KeyChar.ToString() == "w") || (e.KeyChar.ToString() == "ö"))
     {
         RemoveUpSoil(soilList);
         if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)         //up
         {
             top        -= size;
             player      = new Bitmap("ClientUp.bmp");
             myDirection = Direction.Up;
             return(true);
         }
     }
     else if ((e.KeyChar.ToString() == "s") || (e.KeyChar.ToString() == "û"))
     {
         RemoveDownSoil(soilList);
         if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)            //down
         {
             top        += size;
             player      = new Bitmap("ClientDown.bmp");
             myDirection = Direction.Down;
             return(true);
         }
     }
     return(false);
 }
コード例 #9
0
ファイル: Player.cs プロジェクト: alfa4mail/tractor-game
 public Boolean Moving(String str, Soils soilList, Stones stoneList, Bombs bombList)
 {
     if (str == "Bomb")
     {
         if ((myDirection == Direction.Left) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null))             //left
         {
             bombList.AddPlayer(new Bomb(left / 25 - 1, top / 25));
         }
         if ((myDirection == Direction.Right) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null))             //right
         {
             bombList.AddPlayer(new Bomb(left / 25 + 1, top / 25));
         }
         if ((myDirection == Direction.Up) &&
             (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null))             //up
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 - 1));
         }
         if ((myDirection == Direction.Down) &&
             (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null))                  //down
         {
             bombList.AddPlayer(new Bomb(left / 25, top / 25 + 1));
         }
     }
     else if (str == "Left")
     {
         RemoveLeftSoil(soilList);
         if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Stone) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 2) == ItemName.Null))             //left stone
         {
             foreach (Stone st in stoneList)
             {
                 if ((st.LEFT == this.LEFT - 25) && (st.TOP == this.TOP))
                 {
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                     st.LEFT -= 25;
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Stone);
                 }
             }
         }
         else if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Bomb) &&
                  (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 2) == ItemName.Null))        //left bomb
         {
             foreach (Bomb st in bombList)
             {
                 if ((st.LEFT == this.LEFT - 25) && (st.TOP == this.TOP))
                 {
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                     st.LEFT -= 25;
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Bomb);
                 }
             }
         }
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 - 1) == ItemName.Null)         //left
         {
             left       -= size;
             player      = new Bitmap("PlayerLeft.bmp");
             myDirection = Direction.Left;
             return(true);
         }
     }
     else if (str == "Right")
     {
         RemoveRightSoil(soilList);
         if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Stone) &&
             (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 2) == ItemName.Null))             //left stone or bomb
         {
             foreach (Stone st in stoneList)
             {
                 if ((st.LEFT == this.LEFT + 25) && (st.TOP == this.TOP))
                 {
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                     st.LEFT += 25;
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Stone);
                 }
             }
         }
         else if ((Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Bomb) &&
                  (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 2) == ItemName.Null))        //left bomb
         {
             foreach (Bomb st in bombList)
             {
                 if ((st.LEFT == this.LEFT + 25) && (st.TOP == this.TOP))
                 {
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Null);
                     st.LEFT += 25;
                     Map.SetItem(st.TOP / 25, st.LEFT / 25, ItemName.Bomb);
                 }
             }
         }
         if (Map.GetItem(this.TOP / 25, this.LEFT / 25 + 1) == ItemName.Null)         //right
         {
             left       += size;
             player      = new Bitmap("PlayerRight.bmp");
             myDirection = Direction.Right;
             return(true);
         }
     }
     else if (str == "Up")
     {
         RemoveUpSoil(soilList);
         if (Map.GetItem(this.TOP / 25 - 1, this.LEFT / 25) == ItemName.Null)         //up
         {
             top        -= size;
             player      = new Bitmap("PlayerUp.bmp");
             myDirection = Direction.Up;
             return(true);
         }
     }
     else if (str == "Down")
     {
         RemoveDownSoil(soilList);
         if (Map.GetItem(this.TOP / 25 + 1, this.LEFT / 25) == ItemName.Null)            //down
         {
             top        += size;
             player      = new Bitmap("PlayerDown.bmp");
             myDirection = Direction.Down;
             return(true);
         }
     }
     return(false);
 }