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