Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++/CLI mit .NET ::  Kleines Spiel programmieren mit Windows Forms - Microsoft Visual C++ 2008  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Freeza
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
Beitrag 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: 12080
Beitrag 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
Beitrag 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: 12080
Beitrag Jochen Kalmbach Moderator 09:39:59 11.05.2012   Titel:              Zitieren

1.
C++/CLI:
random->Next(1, Math::Min(3, anzStaebe))

2. Ich kenne das Spiel nicht...

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 10:31:50 11.05.2012   Titel:              Zitieren

Ich denke es geht um eine Variante dieses Spiels:
http://de.wikipedia.org/wiki/Nim-Spiel
Freeza
Mitglied

Benutzerprofil
Anmeldungsdatum: 02.05.2009
Beiträge: 34
Beitrag 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




Beitrag 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
Beitrag 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: 12080
Beitrag Jochen Kalmbach Moderator 21:03:24 13.05.2012   Titel:              Zitieren

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/
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/
3. Du hast ein C++/CLI Projekt, deswegen musst Du das App-Icon als Windows-Resource Deinem Projekt hinzufügen

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)


Zuletzt bearbeitet von Jochen Kalmbach am 21:04:35 13.05.2012, insgesamt 1-mal bearbeitet
Freeza_)
Unregistrierter




Beitrag 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.
c++.de :: C++/CLI mit .NET ::  Kleines Spiel programmieren mit Windows Forms - Microsoft Visual C++ 2008  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.