| Autor |
Nachricht |
Freeza
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
|
Freeza Mitglied
14:23:25 10.05.2012 Titel: |
Kleines Spiel programmieren mit Windows Forms - Microsoft Visual C++ 2008 |
Zitieren |
Hallo Leute ich habe da eine Frage,
ich programmiere gerade ein kleines Spiel, bei dem es 21 Holzstäbe gibt, die abgezogen werden müssen.
Nun habe ich folgendes in eine Windows Form eingebracht:
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | - Label für Anzahl der Holzstäbe
- Textbox wo dann die Anzahl der Stäbe zu sehen ist
- Drei Button um Stäbe zu nehmen
- Button 1 zieht einen Stab ab
- Button 2 zieht dann zwei Stäbe ab
- Button 3 zieht entsprechend drei Stäbe ab
- Label für Anzahl an Gewinne (Spiele und Computer)
- Textbox für die Anzahl der Gewinne des Spielers gegen den Computer
- Textbox für die Anzahl der Gewinne des Computers gegen den Spieler
- Radiobutton für die Schwierigkeit des Spiels
- Radiobutton 1 für eine leichte Stufe
- Radiobutton 2 für eine mittlere Stufe
- Radiobutton 3 für eine harte Stufe
Soweit zum Gedankengang :).
Ich habe in der Form1.h folgendes integriert (programmiert)
- Variable: unsigned int staebe = 21; // legt die Anzahl der Stäbe fest
- Button:
- Button 1: staebe = staebe -1;
textBox1->Text = staebe.ToString();
Messagebox, dass gewartet werden soll, bis der Computer zieht.
- Button 2: staebe = staebe -2:
...
...
- Button 3: ... -3;
...
... | |
So nun meine Fragen (arbeite ich Mal stück für Stück durch ):
- Die textBox1 zeigt mir die Variable Staebe an, sobald ich einen Button drücke also z.B. 1 Stab nehmen (Button) dann steht die Variable mit "20" in der TextBox1. Wie bekomme ich das hin, dass die textBox1 mir sofort bei Programmstart die Anzahl der Stäbe anzeigt und nicht erst nach dem ich "1 Stab / 2 Stäbe / 3 Stäbe nehmen" anklicke?
| Code: | ok selbst gefunden gerade:
bei System::Void Form1_Load
textBox1->Text = staebe.ToString(); | |
- Wie kann ich das programmieren, dass einmal der Computer eine Anzahl an Staebe zwischen 1 und 3 nimmt und einmal ich?
| Code: | Mein Gedankengang:
do-while Schleife (Staebe > 0)
computer zieht (mit Zufallszahl generieren zwischen 1 und 3 mit timefunktion.
und dann wieder der Spieler. | |
aber ich weiß nicht wie ich das programmiere und ich weiß auch nicht, wo das in die Form1.h reingeschrieben wird - also an welcher Stelle |
Zuletzt bearbeitet von Freeza am 14:39:16 10.05.2012, insgesamt 1-mal bearbeitet |
|
 |
Jochen Kalmbach
Moderator
Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12078
|
Jochen Kalmbach Moderator
16:32:45 10.05.2012 Titel: |
|
Zitieren |
1. Entweder im Konstruktor nach "InitializeComponents" oder in "OnLoad (also Form1_Load-EventHandler)"
2. Zufallszahlengenerator im *Konstruktor* anlegen: | C++/CLI: | | random = new Random(); | |
und dann entsprechend verwenden wenn Du willst (auch im Konstruktor)? via
| C++/CLI: | | random.Next(1, 3); | | |
_________________ Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
|
|
 |
Freeza
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
|
Freeza Mitglied
18:19:22 10.05.2012 Titel: |
|
Zitieren |
Hmm,
soweit habe ich alles durch.
Die Anzahl der Stäbe wird beim Start angezeigt.
Ich kann einen Stab ziehen und der Computer zieht ebenfalls einen Random (1 bis 3) Stäbe.
Funktioniert soweit also alles. Ich muss zwar noch die Anzahl der Wins eintragen lassen aber ich denke das klappt schon irgendwie
2 Fragen habe ich nun noch.
1. Die Variable anz_staebe ist mit unsigned int eingetragen. Sobald die Anzahl von 21 also runtergeht auf 0 bzw. 1 und ich oder der Computer 2 oder 3 Stäbe ziehen, kommt der Grenzwert der Variable zum Vorschein (40.000 in der Art). Wie kann ich denn das so umprogrammieren, dass auf wenn nur noch 1 Stab vorhanden ist und 2 abgezogen werden, das Ergebnis 0 ist? (Macht keinen Sinn rechnerisch schon klar aber es sind nun einmal dann keine Stäbe mehr da ^^).
2. Ich habe die RadioButton.... mit den Schwierigkeitsstufen. Wie kann ich eine Art KI programmieren? Ich will das so ändern, dass es leicht ist zu gewinnen (Stufe 1), schwer wird (Stufe 2) und unmöglich (Stufe 3).
Danke für die Hilfe schon einmal an dieser Stelle |
|
|
|
 |
Jochen Kalmbach
Moderator
Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12078
|
Jochen Kalmbach Moderator
09:39:59 11.05.2012 Titel: |
|
Zitieren |
|
 |
f.-th.
Unregistrierter
|
f.-th. Unregistrierter
10:31:50 11.05.2012 Titel: |
|
Zitieren |
|
 |
Freeza
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
|
Freeza Mitglied
14:11:31 12.05.2012 Titel: |
|
Zitieren |
Jap genau darum geht es
hab es auch soweit fertig und auch entsprechend eine Art KI mit eingebracht.
Meine nächste Frage ist folgende. Ich habe ja zwei Symbolicons erstellt. Die werden beim Debuggen auch angezeigt völlig normal.
Wo muss ich denn hinklicken, wenn ich nun dieses Programm als normale EXE Datei für jeden zur Verfügung haben will? Ich würde das gerne Freunden schicken, damit diese sich das angucken können. Aber unter Erstellen-Holzspiel erstellen kommt leider nur unter dem Projekt-Ordner ein Release Ordner mit einer EXE Datei (ohne Symbole) und eine log.html oder so.
Wie kann ich meine EXE denn als volles Programm mit Icons etc bekomme? |
|
|
|
 |
Computer
Unregistrierter
|
Computer Unregistrierter
22:47:29 12.05.2012 Titel: |
|
Zitieren |
| Zitat: |
Wie kann ich meine EXE denn als volles Programm mit Icons etc bekomme?
|
Projektmappen-Explorer -> Rechtsklick auf dein Projekt (nicht Projektmappe)
-> Eigenschaften -> Symbol |
|
|
|
 |
Freeza
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
|
Freeza Mitglied
17:57:19 13.05.2012 Titel: |
|
Zitieren |
hmm komisch... finde da nichts |
|
|
|
 |
Jochen Kalmbach
Moderator
Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12078
|
Jochen Kalmbach Moderator
21:03:24 13.05.2012 Titel: |
|
Zitieren |
|
 |
Freeza_)
Unregistrierter
|
Freeza_) Unregistrierter
21:14:26 13.05.2012 Titel: |
|
Zitieren |
| Jochen Kalmbach schrieb: | 1. Du hast eine sehr schlechte Sprache für Dein Problem und Deine Stufe gewählt; Du hättest C# nehmen sollen
Siehe auch: http://blog.kalmbach-soft ....... nforms-macht-keinen-sinn/
--- Ich verstehe nicht, wieso es dann so viele gibt, wenn sie sich doch am Ende ähneln. Ich wollte oder sollte ja nur etwas kleines Programmieren
2. Du musst neben der .NET Runtime auch noch die vc_redist auf *jedem* Rechner installieren (lasse), welches Dein Programm ausführen will.
Siehe: http://blog.kalmbach-soft ....... rechner-ausfuhren-vc2010/
--- Habe das bei meinem Bruder versucht und es ist angesprungen ohne Probleme
3. Du hast ein C++/CLI Projekt, deswegen musst Du das App-Icon als Windows-Resource Deinem Projekt hinzufügen |
--- OK super danke dir habe ich zwar drinnen, aber er will das nicht annehmen. |
|
|
|
 |