/// <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; }
//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; } } }