C# Der springende Punkt

Blackhawk50000

Erfahrenes Mitglied
Die idee ist einfach, doch die umsetzung a bissel schwerer.. also

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Timers;

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

        private int wait = 1;
        private int i = 0;
        System.Random r = new System.Random();

        private void Form1_Load(object sender, EventArgs e)
        {
            wait += r.Next(5);
            liesMichToolStripMenuItem.Text = wait.ToString(); //kontrollanzeite wait zum testen
        }
        
        private void button1_MouseMove(object sender, MouseEventArgs e)
        {
            if (i == wait)
            {
                i = wait;
            }
            else
            {
                i++;
                int buttonX = 1;
                int buttonY = 1;
                buttonX += r.Next(this.Size.Width - button1.Size.Width);
                buttonY += r.Next(this.Size.Height - button1.Size.Height);
                button1.Location = new Point(buttonX, buttonY);
                textToolStripMenuItem.Text = i.ToString(); //kontrollanzeige i zum testen
            }
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Glückwunsch, du hast es geschaft. Du liebst mich wirklich!\nIch liebe dich auch Schatz\nSende mir nun eine Email Mit dem code '48:128:132'";
            label1.Visible = true;
            this.FormBorderStyle = FormBorderStyle.Sizable;
        }

        private void hilfeToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
        {
            label1.Visible = true;
        }

        private void hilfeToolStripMenuItem_MouseLeave(object sender, EventArgs e)
        {
            label1.Visible = false;
        }
    }
}

dieser code soll volgendes machen.... der button soll vor der maus weg laufen.... man soll mit der mau NICHT auf den button kommen.... aber EINMAL, wenn die anzahl der zufälligen sollwegläufe = der anzahl der fangversuche ist.... dann soll die maus einmal klickbar auf den button kommen.... verfehlt man den button in diesem moment, weil man zu unaschtam mit der zeit geworden ist, springt der button unendlich oft weiter.....

aber das mit dem stehenbleiben und dann aber auch weiter hüpfen klappt nicht.,
ich hoffe ich habe es gut erklährt.. bite bitte um hilfe
 
i wieder auf 0 setzen und wait mit neuer Zufallszahl belegen.
Und vielleicht besser MouseEnter Event verwenden, das wird ausgelöst wenn die Maus in den Bereich des Controls kommt.
Ansonsten wenn i==wait und du mit MausMove arbeitest reicht blos eine Pixelbewegung der Mouse und der Button springt weiter.
 
So ganz bekomm ich das einfach nicht hin..... ich habe versucht und gemacht und hin und her.... der button soll nur einmal wie gesagt stehen bleiben, und wen ich die zufalls zahl neu berechne und i auf null setze wie du vorgeschlagen hast, dann hällt er ja nochmal an wenn i wieder == wait ist.... und man muss ja auch die chance haben EINMAL ganz auf den button zum klicken zu kommen, wenn man dann aber wieder runter geht springt er endlos oft weg....

hier nochmal der code

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Timers;

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

        private int wait = 1;
        private int i = 0;
        System.Random r = new System.Random();

        private void Form1_Load(object sender, EventArgs e)
        {
            wait += r.Next(5);
            liesMichToolStripMenuItem.Text = wait.ToString();
        }

        private void button1_MouseEnter(object sender, EventArgs e)
        {
            if (i != wait)
            {
                i++;
                int buttonX = 1;
                int buttonY = 1;
                buttonX += r.Next(this.Size.Width - button1.Size.Width);
                buttonY += r.Next(this.Size.Height - button1.Size.Height);
                button1.Location = new Point(buttonX, buttonY);
                textToolStripMenuItem.Text = i.ToString();
            }
        }
                
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Glückwunsch, du hast es geschaft. Du liebst mich wirklich!\nIch liebe dich auch Schatz\nSende mir nun eine Email Mit dem code '48:128:132'";
            label1.Visible = true;
            this.FormBorderStyle = FormBorderStyle.Sizable;
        }

        private void hilfeToolStripMenuItem_MouseMove(object sender, MouseEventArgs e)
        {
            label1.Visible = true;
        }

        private void hilfeToolStripMenuItem_MouseLeave(object sender, EventArgs e)
        {
            label1.Visible = false;
        }

        private void button1_MouseLeave(object sender, EventArgs e)
        {

        }

        private void button1_MouseHover(object sender, EventArgs e)
        {
            
        }
    }
}
 
Moin,

ich habe deinen Code mal ein wenig angepasst. Dazu eine kurze Erklärung:
Es wird eine bool-Variable definiert und mit true initialisiert, diese gibt an, ob noch eine Chance besteht zu klicken.

Die Bedingung um MouseEnter wird so angepasst, dass der Button springt, wenn i ungleich wait oder chanceToClick gleich false ist.

chanceToClick wird auf false gesetzt, wenn i gleich wait ist.

C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Timers;

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

        private int wait = 1;
        private int i = 0;
        private bool chanceToClick = true;
        System.Random r = new System.Random();

        private void Form1_Load(object sender, EventArgs e)
        {
            wait += r.Next(5);
            liesMichToolStripMenuItem.Text = wait.ToString();
        }

        private void button1_MouseEnter(object sender, EventArgs e)
        {
            if (i != wait || chanceToClick == false)
            {
                i++;
                int buttonX = 1;
                int buttonY = 1;
                buttonX += r.Next(this.Size.Width - button1.Size.Width);
                buttonY += r.Next(this.Size.Height - button1.Size.Height);
                button1.Location = new Point(buttonX, buttonY);
                textToolStripMenuItem.Text = i.ToString();
            }
            else
            {
                chanceToClick = false;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Glückwunsch, du hast es geschaft. Du liebst mich wirklich!\nIch liebe dich auch Schatz\nSende mir nun eine Email Mit dem code '48:128:132'";
            label1.Visible = true;
            this.FormBorderStyle = FormBorderStyle.Sizable;
        }
    }
}
 
JUCHU es klappt.. warum bin ich nicht auf die idee mit der boolschen variable gekommen DANKE.... wow....

SAW_5 ist da hehe :).. warum SAW_5 ? ganz einfach, weil das der HilfeText ist :D


Es ist Zeit für ein Spiel Schatz.
Ich weiß, dass du wenig Gedult hast. Aber auch das du mich liebst.
Heute stelle ich deine Liebe auf die Probe. Du musst geduldig sein
um mir zu zeigen das du mich Liebst.
Der Button wird vor dir weg laufen, jedoch EINMAL pro Spiel wird
er auf dich warten. Bist du jedoch zu schnell
und zu unaufmerksam, wirst du deine Chance, mir deine Liebe zu
zeigen, versäumen. Findest du den richtigen Zeitpunkt? Kannst du
deine Ungeduld lange genug bezwingen um mir zu seigen das du
mich liebst? Lass es uns herrausfinden!

Das Spiel möge beginnen!


der maxradomwert von wait ligt jetzt bei 1000

später soll noch ein coundown hinzu kommen und der text soll nochwas enthalten von wegen.... sei schnell und präziese aber auch vorsichig und geduldig....
 
Und schon habe ich meiine anderen ideen noch in die Tat umgesetzt.... Wer diesen Thread verfolgt hat, ist sicher gespannt auf das ergebniss meiner Teuflischen-Terror-Tat aller SAW...

damit ihr euch also ein bild machen könnt was meine Freundin mit ihrer nervigen ungedult durchmachen muss hiern un die exe meines spieles *Täuflisches lachen*

PS: ich bitte euch mir zu sagen wer sich das spiel runtergeladen hat, und wer es durchgezogen hat.... vielleicht n bisschen feedback wäre net schlecht.
 
Zuletzt bearbeitet:
damit ihr euch also ein bild machen könnt was meine Freundin mit ihrer nervigen ungedult durchmachen muss hiern un die exe meines spieles *Täuflisches lachen*

Dann geb ich deiner Freundin einen kleinen Tipp! Einfach mal 'Enter' drücken ;)

PS: ich bitte euch mir zu sagen wer sich das spiel runtergeladen hat, und wer es durchgezogen hat.... vielleicht n bisschen feedback wäre net schlecht.

Hey,

da es immer so leute gibt die einfach nicht genug Zeit und vor allem nicht genug Geduld (beim Spielen) haben, fange ich diesmal damit an. (siehe Tipp).

Ich würde die Eigenschaft "TabStop" der Schaltfläche auf "false" setzen, dann dürfte das mit der Enter-Taste auch nicht mehr funktionieren ;)

Ansonsten nicht schlecht :D

Gruß
Rudolf Grauberger
 
und wieder ein beweis dafür das der user fehlerquelle nummer eins ist.... danke für den tipp ich mache nun so gleich einen antitipp daraus und stelle es erneut online :)

und da ist es schon wieder

was ich aber ganz vergessen habe zu sagen sind 2 sachen einmal... CHEATER hehe ne spaß hehe

und einmal, danke für das rlativ gute feadback... ich habe sehr versucht mich in etwa an die Jigsaw monologe zu halten und das spiel wirklich auf die schwäche gedult aus zu legen

wessen freundin/freund ebenfalls ungeduldig ist und wer darunter leidet seu eingeladen ihr/ihm dieses spiel zu schicken.
 

Anhänge

  • SAW_5.zip
    5,8 KB · Aufrufe: 26
Zuletzt bearbeitet:
richtig, jedoch ist bei ALT+F4 das spiel nicht gelöst, der code nicht gesehen und die gedult nicht bezwungen.... kurz GEsagt VERsagt... obwohl, könnte man das auch unterbinden das es dann zu geht?... *richtig fies grinst*

oder am aller bessten, ALLE möglichen tastenkombinationen die das festner schließen KÖNNTEN verhindern, und eine eigene festlegen die auftaucht sobald die 1,5 stunden abgelaufen sind und die testperson versagt hat
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück