private void btnDecide_Click(object sender, EventArgs e)
 {
     int iFlag = 0;
     //checks to see which radiobutton is ticked - Tom
     iFlag = rbNumber.Checked ? 2 : rbTrueFalse.Checked ? 4 : rbCoin.Checked ? 8 : rbHands.Checked ? 16 : 2;
     int iRNG = EDE.RNG() % 2;
     Outcomes[iRNG++] = new Option(iFlag^1);
     Outcomes[iRNG % 2] = new Option(iFlag);
     DisplayResult();
 }
        /// <summary>
        /// Flags: 2/3 for 1/0, 4/5 for True/False, 8/9 for Heads/Tails, 16/17 for Left/Right.
        /// </summary>
        /// <param name="flags"></param>
        public static void ChangeFlags(int flags, Option[] options)
        {
            // - how does this work? - Mark
            // - Miles wrote it so it probably uses some weird C stuff - Alice
            // - its buggy the result is always wrong - Mark

            //options[0].sign = 1 == (0 ^ flags & 1);
            //options[1].sign = 1 == (1 ^ flags & 1);
            //
            //flags &= -2;
            //options[0].p_symbols = (flags & 2) != 0 ? 'N' : (flags & 4) != 0 ? 'B' : (flags & 8) != 0 ? 'C' : 'H';
            //options[1].p_symbols = options[0].p_symbols;

            // - rewrote - Mark
            bool Swap = false;
            foreach (Option Option in options) {
                if ((flags / 2) * 2 == flags) {
                    Option.Sign = false;
                } else {
                    Option.Sign = true;
                }
                if (Swap) Option.Sign = !Option.Sign;
                Swap = true;
                char Type;
                if (flags == 2 || flags == 3) {
                    Type = 'N';
                } else if (flags == 4 || flags == 5) {
                    Type = 'B';
                } else if (flags == 8 || flags == 9) {
                    Type = 'C';
                } else {
                    Type = 'H';
                }
                Option.p_symbols = Type;
            }
        }