コード例 #1
0
ファイル: editAnswers.cs プロジェクト: mstram/SheepScore
        //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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        //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);
            }
        }