//New Player private void button2_Click(object sender, EventArgs e) { FormNewPlayer.StartPosition = FormStartPosition.CenterParent; FormNewPlayer.label1.Text = "Enter new player name:"; FormNewPlayer.Text = "New Player"; FormNewPlayer.textBox1.Clear(); FormNewPlayer.ShowDialog(); int cur_add_index = add_index++; if (FormNewPlayer.DialogResult == DialogResult.OK) { //save old player values if (curPlayer >= 0 && curPlayer < ed_players.Count) { ed_players[curPlayer].Answers = textBox1.Text; ed_players[curPlayer].StartScore = numStartScore.Value; } var new_player = new EdPlayer(FormNewPlayer.textBox1.Text, "", 0, EdPlayer.NewPlayerOriginalPosition); new_player.EdIndex = cur_add_index; ed_players.Add(new_player); ed_players = (from ep in ed_players orderby ep.Name select ep).ToList(); //to make sure new player gets selected curPlayer = ed_players.FindIndex(p => p.EdIndex == cur_add_index); } updateComboBox(); }
private char AwardShedHit(EdPlayer currentPlayer) { char[] letters = new char[] { 'S', 'A', 'W', 'G', 'U', 'N' }; var lTargets = currentPlayer.TargetBankLeft; var rTargets = currentPlayer.TargetBankRight; char letter = 'S'; if (!lTargets[0]) { lTargets[0] = true; } else if (!lTargets[2]) { lTargets[2] = true; letter = letters[2]; } else if (!lTargets[1]) { lTargets[1] = true; letter = letters[1]; currentPlayer.SawReady = true; } else if (!rTargets[0]) { rTargets[0] = true; letter = letters[3]; } else if (!rTargets[2]) { rTargets[2] = true; letter = letters[5]; } else if (!rTargets[1]) { rTargets[1] = true; letter = letters[4]; currentPlayer.GunReady = true; } currentPlayer.TargetBankLeft = lTargets; currentPlayer.TargetBankRight = rTargets; return(letter); }
//Load data private void button1_Click(object sender, EventArgs e) { openFileDialog1.Title = "Load Entries from File"; openFileDialog1.Filter = "Text File|*.txt"; if (openFileDialog1.ShowDialog() != DialogResult.OK) { return; } string[] filecontents; List <EdPlayer> new_ed_list = new List <EdPlayer>(); try { filecontents = System.IO.File.ReadAllLines(openFileDialog1.FileName); } catch { MessageBox.Show("Couldn't load " + openFileDialog1.FileName); return; } try { //go through file and look for each PM start //which is a long string of ====================================== List <int> PMlist = new List <int>(); for (int i = 0; i < filecontents.Length; i++) { if (System.Text.RegularExpressions.Regex.IsMatch(filecontents[i], "={20,}")) { PMlist.Add(i); } } //for each found PM... for (int i = 0; i < PMlist.Count; i++) { //name is found next line down string newPlayerName = string.Join(" ", System.Text.RegularExpressions.Regex.Split( filecontents[PMlist[i] + 1], "\\s+").Where((txt, indx) => (indx >= 2)).ToArray()); EdPlayer new_ep; if (ed_players.Any(ep => string.Compare(ep.Name, newPlayerName) == 0)) { //if this player already exists just overwrite his answers new_ep = ed_players.First(ep => string.Compare(ep.Name, newPlayerName) == 0); } else { //it is a new player new_ep = new EdPlayer(newPlayerName, "", -1); new_ed_list.Add(new_ep); } //answers go from 6 lines down to before the next =============== //or end of file if it's the last one if (i == PMlist.Count - 1) { new_ep.Answers = string.Join(Environment.NewLine, filecontents.Where((txt, line) => (line >= (PMlist[i] + 6))).ToArray()); } else { new_ep.Answers = string.Join(Environment.NewLine, filecontents.Where((txt, line) => (line >= (PMlist[i] + 6)) && (line < PMlist[i + 1])).ToArray()); } } } catch { MessageBox.Show("Couldn't read " + openFileDialog1.FileName); } ed_players.AddRange(new_ed_list); updateComboBox(); if (new_ed_list.Count == 0) { MessageBox.Show("Didn't find any entries in " + openFileDialog1.FileName); } else { MessageBox.Show("Loaded " + new_ed_list.Count.ToString() + (new_ed_list.Count == 1 ? " entry" : " entries") + " from " + openFileDialog1.FileName); } }