Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 03. 03. 2012 10:33

Tomas.P
Příspěvky: 648
Reputace:   22 
 

C# program

Zdravím

- vytvořte aplikaci WinForms či WPF, která bude na ploše hlavního okna obsahovat objekt, který bude náhodně měnit svoji pozici v případě ilustrace (video) je to objekt myši
- časové intervaly náhodné změny pozice myši zadejte v intervalu 100 – 1000ms, které budou měnitelné pomocí posuvníku v 10-ti úrovních
- hru spusťte a zastavte pomocí tlačítka START/STOP, který uvede „myš“ do pohybu
- v případě, že ukazatelem myši počítače najedete na obrázek myši začne  se přičítat hodnota do políčka SCORE, která reprezentuje výherní hodnotu
http://www.youtube.com/watch?v=soO-IN_a … r_embedded
Můj postup:

Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Projekt
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
         
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
          
        }

        private void button1_Click(object sender, EventArgs e)
        {
         
        }
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Point[] pictureBox1 = new Point[30];
            Random rand = new Random(unchecked((int)DateTime.Now.Ticks));
            for (int i = 0; i < 30; i++)
            {
                pictureBox1[i].X = rand.Next(this.ClientSize.Width);
                pictureBox1[i].Y = rand.Next(this.ClientSize.Height);
            }
        }
    }
}

Offline

  • (téma jako vyřešené označil(a) Tomas.P)

#2 03. 03. 2012 21:39 — Editoval RePRO (03. 03. 2012 21:58)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# program

Zdravím,
jednoduchým a přehledným způsobem (vytvoříme max. 3 události) jsem to teď udělal takto:

Code:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace Clicking
{
    public class Test : Form
    {
        private Random souradnice;
        private PictureBox obrazek;
        private Timer casovac;
        private TrackBar posuvnik;
        private int skore;

        public Test()
        {
            InitializeComponent();
            // Vytvoříme náhodu
            souradnice = new Random();
            // Vytvoříme a nastavíme posuvník
            posuvnik = new TrackBar();
            posuvnik.Minimum = 0;
            posuvnik.Maximum = 10;
            posuvnik.Scroll += new EventHandler(posuvnik_Zmena);
            // Vytvoříme a nastavíme časovač
            casovac = new Timer();
            casovac.Enabled = true;
            casovac.Tick += new EventHandler(casovac_Tik);
            // Vytvoříme a nastavíme obrázek
            obrazek = new PictureBox();
            string cesta = @"Test.png";
            obrazek.Image = Image.FromFile(cesta); 
            obrazek.Click += new EventHandler(obrazek_Klik);
            // Inicializujem skóre
            skore = 0;
            // Vložíme komponenty na formulář
            Controls.Add(obrazek);
            Controls.Add(posuvnik);
        }

        void posuvnik_Zmena(object sender, EventArgs e)
        {
            if (posuvnik.Value != 0) casovac.Interval = 100 * posuvnik.Value;
        }

        void obrazek_Klik(object sender, EventArgs e)
        {
            skore++;
            MessageBox.Show(skore.ToString());
        }

        void casovac_Tik(object sender, EventArgs e)
        {
            obrazek.Location = new Point(souradnice.Next(ClientSize.Height - obrazek.Height), souradnice.Next(ClientSize.Width - obrazek.Width));
        }
    }
}

Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#3 04. 03. 2012 10:17

Tomas.P
Příspěvky: 648
Reputace:   22 
 

Re: C# program

↑ RePRO:
Zdravím. Když spustím program Clicking, tak se mi žlutě označí řádek obrazek.Image = Image.FromFile(cesta); Předem děkuji za odpověď

Offline

 

#4 04. 03. 2012 13:50

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# program

Zdravím Tomáši,
tam máš nejspíš špatnou cestu k obrázku. Obrázek vlož do projektu, přímo do složky debug. Je pravdou, že s cestami jsou někdy potíže. Pokud nepomohlo, co Ti vypisuje žlutá hláška?


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#5 04. 03. 2012 15:47

Tomas.P
Příspěvky: 648
Reputace:   22 
 

Re: C# program

↑ RePRO:
Co bych měl udělat, aby se mi v levém dolním rohu obrazovky Test přičítalo v label1 skóre? Můj postup je nahradit zápis MessageBox.Show(skore.ToString());

Offline

 

#6 04. 03. 2012 15:52

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# program

Code:

label1.Text = skore.ToString();

Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#7 04. 03. 2012 19:38

Tomas.P
Příspěvky: 648
Reputace:   22 
 

Re: C# program

↑ RePRO:
Jak bych měl realizovat START/STOP? Předem děkuji za odpověď

Offline

 

#8 04. 03. 2012 20:00 — Editoval RePRO (04. 03. 2012 20:08)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# program

Realizoval bych to tak, že v konstruktoru formuláře necháme časovač vyplý (není nutné).

Potom si uděláme dvě tlačítka (START a STOP) a uděláme si k nim události Click. Tlačítka můžeme normálně přetáhnout z Toolboxu na náš formulář (nebo si to udělat programově - ručně).

Navíc tlačítko START může být zamlžené (nedostupné), pokud časovač běží a naopak tlačítko STOP bude zamlžené (nedostupné), pokud časovač nepoběží. Nehledat v tom vědu...

První událost pro tlačítko START:

Code:

        void tlac1_Klik(object sender, EventArgs e)
        {
            tlac1.Enabled = !tlac1.Enabled;
            tlac2.Enabled = true;
            casovac.Enabled = true;
        }

Druhá událost pro tlačítko STOP:

Code:

        void tlac2_Klik(object sender, EventArgs e)
        {
            tlac2.Enabled = !tlac2.Enabled;
            tlac1.Enabled = true;
            casovac.Enabled = false; 
        }

Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson