示例#1
0
文件: VmGamePage.cs 项目: tagoro9/nfc
        private async void TappedElementExecute(int pos)
        {
            //button.State = movement;
            if (GameArray[pos] == "")
            {
                GameArray[pos] = movement;
                dataWriter.WriteString(movement);

                dataWriter.WriteInt16(Convert.ToInt16(pos));
                await dataWriter.StoreAsync();

                MyTurn = false;
                LogMessage("Sent my movement!");
                LogMessage("Waiting for peer movement!");
                if (GameArray.IsWinner())
                {
                    LogMessage("WINNER!");
                    dispatcherService.CallDispatcher(() =>
                    {
                        GameStarted = false;
                        MyTurn      = false;
                        isInitiator = false;
                    });
                    LogMessage("Starting new game");
                    ResetBoard();
                    HandShake();
                    return;
                }
                WaitForMovement();
            }
        }
示例#2
0
 /// <summary>
 /// Move the snake and check if game over
 /// </summary>
 private void TryMove()
 {
     if (GameArray.TryMove(SnakeMovement) == MovementResult.GameOver)
     {
         PlayerLost?.Invoke(this, EventArgs.Empty);
     }
 }
示例#3
0
 /// <summary>
 /// Načte do pole správné data pro vykreslení
 /// </summary>
 /// <param name="array"></param>
 public void Refresh(Box[,] array)
 {
     for (int i = 0; i < GameArray.GetLength(0); i++)
     {
         for (int j = 0; j < GameArray.GetLength(1); j++)
         {
             if (array[i, j] == Box.Nothing)
             {
                 GameArray[i, j] = NothingDefinition;
             }
             else if (array[i, j] == Box.Wall)
             {
                 GameArray[i, j] = WallDefinition;
             }
             else if (array[i, j] == Box.Food)
             {
                 GameArray[i, j] = FoodDefiniton;
             }
             else if (array[i, j] == Box.Snake)
             {
                 GameArray[i, j] = SnakeDefinition;
             }
             else if (array[i, j] == Box.poisonedFood)
             {
                 GameArray[i, j] = poisonedFoodDefinition;
             }
         }
         Console.WriteLine();
     }
 }
示例#4
0
 /// <summary>
 /// Vykreslí pole
 /// </summary>
 public void Show()
 {
     for (int i = 0; i < GameArray.GetLength(0); i++)
     {
         for (int j = 0; j < GameArray.GetLength(1); j++)
         {
             Console.Write(GameArray[i, j]);
         }
         Console.WriteLine();
     }
 }
示例#5
0
 /// <summary>
 /// Raised on each timer interval
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Timer_Tick(object sender, object e)
 {
     //check if a new fruit must be added
     if (!GameArray.FruitExists &&
         GameArray.TimeFruitWasCreatedOrEaten + DurationTillNextFruit > DateTime.Now)
     {
         //create new fruit
         GameArray.AddFruit();
         GameArray.FruitExists = true;
         GameArray.TimeFruitWasCreatedOrEaten = DateTime.Now;
     }
     //move the snake
     TryMove();
     //inform the UI that the game state has changed
     Updated?.Invoke(this, EventArgs.Empty);
 }
示例#6
0
        public static void SetRestore()
        {
            //display file(S)
            //prompt for file(s)
           
            //  ...
            //  ...
            List<int> gamearrayints = StreamClass.RestoreGameArray("C:/program files/returnchar/savelist.csv"); // restoring savelists

            foreach(int i in gamearrayints)
            {
                 GameArray.Add(Book.GetBookID(i));
            }

                 GetGameModelOne();
                 break;
               
            // ...
            // ...

            }
示例#7
0
文件: VmGamePage.cs 项目: tagoro9/nfc
        private async void WaitForMovement()
        {
            var bytesRead = await dataReader.LoadAsync(3);

            if (bytesRead > 0)
            {
                string peerMovement = dataReader.ReadString(1);
                int    position     = dataReader.ReadInt16();
                if (peerMovement == "R")
                {
                    LogMessage("Game has been reset");
                    dispatcherService.CallDispatcher(() => ResetBoard());
                    HandShake();
                }
                else
                {
                    LogMessage("Received movement, your turn!");
                    dispatcherService.CallDispatcher(() =>
                    {
                        GameArray[position] = peerMovement;
                        if (GameArray.IsWinner())
                        {
                            LogMessage("LOSER!");
                            dispatcherService.CallDispatcher(() => {
                                GameStarted = false;
                                MyTurn      = false;
                                isInitiator = false;
                            });
                            LogMessage("Starting new game");
                            ResetBoard();
                            HandShake();
                            return;
                        }
                    });
                    MyTurn = true;
                }
            }
        }
示例#8
0
        /// <summary>
        /// Naplní pole základními daty (zdi)
        /// </summary>
        private void FillArray()
        {
            for (int i = 0; i < GameArray.GetLength(0); i++)
            {
                for (int j = 0; j < GameArray.GetLength(1); j++)
                {
                    GameArray[i, j] = Box.Nothing;

                    GameArray[LeghtX - 1, j] = Box.Wall;
                    GameArray[i, LeghtY - 1] = Box.Wall;
                }
            }

            for (int i = 0; i < GameArray.GetLength(0); i++)
            {
                GameArray[0, i] = Box.Wall;
                GameArray[i, 0] = Box.Wall;
            }

            GenerateFood();
            GenerateFood();
            GenerateFood();
        }
示例#9
0
 private void Start()
 {
     canEdit   = true;
     gameArray = GetComponent <GameArray>();
     grid      = GameObject.FindGameObjectWithTag("Grid").GetComponent <Grid>();
 }