void button_Clicked(object sender, EventArgs e) { if (CurrentPlayerTime == DateTime.MinValue) { runningTimer.Start(); } if (!running) { var button = (DoctriButton)sender; button.TheButton.Visible = false; if (CurrentItem == null) { CurrentItem = button; } else { running = true; PreviousItem = CurrentItem; CurrentItem = button; TheTimer.Start(); } //lblDescription.Text = button.Item.ToString(); } }
void TheTimer_Tick(object sender, EventArgs e) { if (CurrentItem.Item.Equals(PreviousItem.Item)) { CurrentItem.Visible = false; PreviousItem.Visible = false; GoodCounter++; } else { CurrentItem.TheButton.Visible = true; PreviousItem.TheButton.Visible = true; isPlayer1 = !isPlayer1; lblTime.ForeColor = isPlayer1 ? Color.Blue : Color.Red; } CurrentItem = null; PreviousItem = null; running = false; TheTimer.Stop(); if (TotalItems == GoodCounter) { lblMessage.Text = "Lo lograste en " + lblTime.Text + "!!! ¿Puedes mejorarlo?"; if (!string.IsNullOrEmpty(txtPlayer1.Text) && !string.IsNullOrEmpty(txtPlayer2.Text)) { currentPlayer = new Jugador() { Nombre = (isPlayer1 ? txtPlayer1.Text : txtPlayer2.Text), Fichas = cklItems.CheckedItems.Count }; currentPlayer.Tiempo = isPlayer1 ? --StartTimePlayer1 : --StartTimePlayer2; jugadores.Add(currentPlayer); lblMessage.Text = currentPlayer.Nombre + " lo lograste en " + lblTime.Text + "!!! ¿Puedes mejorarlo?"; dataGridView1.DataSource = jugadores.OrderByDescending(r => r.Fichas).ThenBy(r => r.Tiempo).ToArray(); //txtPlayer2.DataSource = jugadores.Select(r => r.Nombre).Distinct().ToArray(); } runningTimer.Stop(); pnlMessage.Visible = true; //Task.Delay(5000).ContinueWith((x)=>SetGame()); } }
private void SetGame() { var totalItems = cklItems.CheckedItems.Count; StartTimePlayer1 = 0; StartTimePlayer2 = 0; CurrentPlayerTime = DateTime.MinValue; TotalItems = totalItems; GoodCounter = 0; lblTime.Text = "00:00:00"; lblTime.ForeColor = Color.Blue; runningTimer.Stop(); pnlMessage.Visible = false; var cheCheckedItems = new List <string>(); foreach (var item in cklItems.CheckedItems) { cheCheckedItems.Add(((Item)item).Address); } Items = cheCheckedItems.Select(r => new Item { Address = r }).ToArray(); var itemsCount = totalItems * 2; var dimensions = GetMatrixSides(itemsCount); var x = dimensions[0]; var y = dimensions[1]; Shuffle <Item>(Items); var counter = 0; panel1.Controls.Clear(); var indexCounter = 0; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { var containerWidth = panel1.Width; var containerHeight = panel1.Height; var width = containerWidth / x; var height = containerHeight / y; var posX = width * i; var posY = height * j; indexCounter++; var button = new DoctriButton(Items[counter], width, height, indexCounter); button.Location = new Point(posX, posY); button.Clicked += button_Clicked; panel1.Controls.Add(button); counter++; if (counter >= totalItems) { counter = 0; Shuffle <Item>(Items); } } } }