コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
        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);
                    }
                }
            }
        }