private void button1_Click(object sender, EventArgs e) { string[] teams = textBox1.Text.Split('\n'); Stack teams_stack = new Stack(); for (int x = 0; x < teams.Length; x++) teams_stack.Push(teams[x]); int counter = teams.Length / 2; string mem = ""; while (counter > 0) { RandomNumbers nums = Random_num(teams_stack.Count + 1); Games game = new Games(); game.SetHome(GetTeamName(teams_stack, nums.GetNum1())); game.SetAway(GetTeamName(teams_stack, nums.GetNum2())); PopPlaces(teams_stack, nums); counter++; mem += game.ToString(); } mem.Remove(mem.Length - 1, 1); textBox1.Text = mem; } private RandomNumbers Random_num(int num) { Random rand = new Random(); int num1, num2; num1 = rand.Next(1, num); do { num2 = rand.Next(1, num); } while (num2 == num1); RandomNumbers nums = new RandomNumbers(num1, num2); return nums; } private string GetTeamName(Stack teams_stack, int place) { int counter = 0; Stack st = new Stack(); while (counter != place) { st.Push(teams_stack.Pop()); counter++; } string returnValue = st.Peek(); while (st.Count > 0) teams_stack.Push(st.Pop()); return returnValue; } private void PopPlaces(Stack st, RandomNumbers nums) { if (nums.GetNum1() > nums.GetNum2()) { Poper(st, nums.GetNum1()); Poper(st, nums.GetNum2()); } else { Poper(st, nums.GetNum2()); Poper(st, nums.GetNum1()); } } private void Poper(Stack st, int num) { int counter = 0; Stack st1 = new Stack(); while (counter != num) { st1.Push(st.Pop()); counter++; } st1.Pop(); while (st1.Count > 0) st.Push(st1.Pop()); }