Пример #1
0
        /// <summary>
        /// start button to start rover movement
        /// </summary>
        /// <param name="sender">default event parameter</param>
        /// <param name="e">default event parameter</param>
        private void startButton_Click(object sender, EventArgs e)
        {
            //user cannot change input after start click
            inputTB.ReadOnly = true;
            //clear output text box
            outputTB.Clear();

            string[] inputLines = inputTB.Lines;

            //checks to make sure there are atleast 3 lines for input
            //and an odd number of lines for input
            if ((inputLines.Length < 3) || (inputLines.Length % 2 == 0))
            {
                MessageBox.Show(missingLines);
                initialstart = false;
            }

            //set bounds

            try
            {
                string firstLine    = inputLines[0];
                int[]  initialCoord = firstLine.Split(' ').Select(int.Parse).ToArray();
                //check bound coordinates for proper formatting
                if (initialCoord.Length == 2)
                {
                    setMaxX(initialCoord[0]);
                    setMaxY(initialCoord[1]);
                }
                if (initialCoord.Length != 2)
                {
                    MessageBox.Show(boundErr);
                    initialstart = false;
                }
            }
            catch (FormatException)
            {
                MessageBox.Show(boundErr);
                initialstart = false;
            }
            catch (IndexOutOfRangeException)
            {
                MessageBox.Show(missingLines);
                initialstart = false;
            }

            if (initialstart == true)
            {
                //check initial rover position for proper formatting
                string[] tempSecondLine = inputLines[1].Split(" ");
                if (tempSecondLine.Length != 3 || tempSecondLine[2] == "")
                {
                    MessageBox.Show("Incorrect initial coordinates");
                    initialstart = false;
                }

                //check if initial rover position is within bounds set
                initialstart = checkRoverPosition(maxX, maxY, Int32.Parse(tempSecondLine[0]), Int32.Parse(tempSecondLine[1]));
            }


            //execute the commands for the rover if no errors found in initial checks
            if (initialstart == true)
            {
                RoverCommands rover = new RoverCommands(inputLines);
            }
            else
            {
                MessageBox.Show(inputErr);
            }

            //turn input box on for new input
            inputTB.ReadOnly = false;
        }
Пример #2
0
        //This is the button to launch the rovers and land them on Mars after choosing the plateau size and a maximum of 5 rovers. It also handles the visibility of various other elements
        private void startBTN_Click(object sender, RoutedEventArgs e)
        {
            if (this.mainGrid.Visibility == Visibility.Visible)
            {
                announce.Text            = "Rovers landed successfully in various locations!";
                this.platGrid.Visibility = Visibility.Visible;
                this.mainGrid.Visibility = Visibility.Collapsed;
                int x   = Convert.ToInt32(platX.Value);
                int y   = Convert.ToInt32(platY.Value);
                int nrR = Convert.ToInt32(nrRovers.Value);
                for (int i = 0; i < nrR; i++)
                {
                    rovers[i] = new RoverCommands(x, y);
                }
                if (nrR == 5)
                {
                    r1Out.Text = rovers[0].getInitValues();
                    r2Out.Text = rovers[1].getInitValues();
                    r3Out.Text = rovers[2].getInitValues();
                    r4Out.Text = rovers[3].getInitValues();
                    r5Out.Text = rovers[4].getInitValues();

                    this.r2Out.Visibility    = Visibility.Visible;
                    this.r2Title2.Visibility = Visibility.Visible;
                    this.r2Com.Visibility    = Visibility.Visible;
                    this.r2Title.Visibility  = Visibility.Visible;

                    this.r3Out.Visibility    = Visibility.Visible;
                    this.r3Title2.Visibility = Visibility.Visible;
                    this.r3Com.Visibility    = Visibility.Visible;
                    this.r3Title.Visibility  = Visibility.Visible;

                    this.r4Out.Visibility    = Visibility.Visible;
                    this.r4Title2.Visibility = Visibility.Visible;
                    this.r4Com.Visibility    = Visibility.Visible;
                    this.r4Title.Visibility  = Visibility.Visible;

                    this.r5Out.Visibility    = Visibility.Visible;
                    this.r5Title2.Visibility = Visibility.Visible;
                    this.r5Com.Visibility    = Visibility.Visible;
                    this.r5Title.Visibility  = Visibility.Visible;
                }
                else if (nrR == 4)
                {
                    r1Out.Text = rovers[0].getInitValues();
                    r2Out.Text = rovers[1].getInitValues();
                    r3Out.Text = rovers[2].getInitValues();
                    r4Out.Text = rovers[3].getInitValues();

                    this.r2Out.Visibility    = Visibility.Visible;
                    this.r2Title2.Visibility = Visibility.Visible;
                    this.r2Com.Visibility    = Visibility.Visible;
                    this.r2Title.Visibility  = Visibility.Visible;

                    this.r3Out.Visibility    = Visibility.Visible;
                    this.r3Title2.Visibility = Visibility.Visible;
                    this.r3Com.Visibility    = Visibility.Visible;
                    this.r3Title.Visibility  = Visibility.Visible;

                    this.r4Out.Visibility    = Visibility.Visible;
                    this.r4Title2.Visibility = Visibility.Visible;
                    this.r4Com.Visibility    = Visibility.Visible;
                    this.r4Title.Visibility  = Visibility.Visible;

                    this.r5Out.Visibility    = Visibility.Collapsed;
                    this.r5Title2.Visibility = Visibility.Collapsed;
                    this.r5Com.Visibility    = Visibility.Collapsed;
                    this.r5Title.Visibility  = Visibility.Collapsed;
                }
                else if (nrR == 3)
                {
                    r1Out.Text = rovers[0].getInitValues();
                    r2Out.Text = rovers[1].getInitValues();
                    r3Out.Text = rovers[2].getInitValues();

                    this.r2Out.Visibility    = Visibility.Visible;
                    this.r2Title2.Visibility = Visibility.Visible;
                    this.r2Com.Visibility    = Visibility.Visible;
                    this.r2Title.Visibility  = Visibility.Visible;

                    this.r3Out.Visibility    = Visibility.Visible;
                    this.r3Title2.Visibility = Visibility.Visible;
                    this.r3Com.Visibility    = Visibility.Visible;
                    this.r3Title.Visibility  = Visibility.Visible;

                    this.r4Out.Visibility    = Visibility.Collapsed;
                    this.r4Title2.Visibility = Visibility.Collapsed;
                    this.r4Com.Visibility    = Visibility.Collapsed;
                    this.r4Title.Visibility  = Visibility.Collapsed;

                    this.r5Out.Visibility    = Visibility.Collapsed;
                    this.r5Title2.Visibility = Visibility.Collapsed;
                    this.r5Com.Visibility    = Visibility.Collapsed;
                    this.r5Title.Visibility  = Visibility.Collapsed;
                }
                else if (nrR == 2)
                {
                    r1Out.Text = rovers[0].getInitValues();
                    r2Out.Text = rovers[1].getInitValues();

                    this.r2Out.Visibility    = Visibility.Visible;
                    this.r2Title2.Visibility = Visibility.Visible;
                    this.r2Com.Visibility    = Visibility.Visible;
                    this.r2Title.Visibility  = Visibility.Visible;

                    this.r3Out.Visibility    = Visibility.Collapsed;
                    this.r3Title2.Visibility = Visibility.Collapsed;
                    this.r3Com.Visibility    = Visibility.Collapsed;
                    this.r3Title.Visibility  = Visibility.Collapsed;

                    this.r4Out.Visibility    = Visibility.Collapsed;
                    this.r4Title2.Visibility = Visibility.Collapsed;
                    this.r4Com.Visibility    = Visibility.Collapsed;
                    this.r4Title.Visibility  = Visibility.Collapsed;

                    this.r5Out.Visibility    = Visibility.Collapsed;
                    this.r5Title2.Visibility = Visibility.Collapsed;
                    this.r5Com.Visibility    = Visibility.Collapsed;
                    this.r5Title.Visibility  = Visibility.Collapsed;
                }
                else if (nrR == 1)
                {
                    r1Out.Text = rovers[0].getInitValues();

                    this.r2Out.Visibility    = Visibility.Collapsed;
                    this.r2Title2.Visibility = Visibility.Collapsed;
                    this.r2Com.Visibility    = Visibility.Collapsed;
                    this.r2Title.Visibility  = Visibility.Collapsed;

                    this.r3Out.Visibility    = Visibility.Collapsed;
                    this.r3Title2.Visibility = Visibility.Collapsed;
                    this.r3Com.Visibility    = Visibility.Collapsed;
                    this.r3Title.Visibility  = Visibility.Collapsed;

                    this.r4Out.Visibility    = Visibility.Collapsed;
                    this.r4Title2.Visibility = Visibility.Collapsed;
                    this.r4Com.Visibility    = Visibility.Collapsed;
                    this.r4Title.Visibility  = Visibility.Collapsed;

                    this.r5Out.Visibility    = Visibility.Collapsed;
                    this.r5Title2.Visibility = Visibility.Collapsed;
                    this.r5Com.Visibility    = Visibility.Collapsed;
                    this.r5Title.Visibility  = Visibility.Collapsed;
                }
            }
        }