ERLEDIGT
NEIN
NEIN
ANTWORTEN
32
32
ZUGRIFFE
1806
1806
EMPFEHLEN
-
04.10.05 19:16 #1
Hi.
Ich habe Mal etwas versucht. Ich wollte mal so ein kleine Mini-Schachspiel proggen, hab also 64 Pictureboxen auf die Form geklatscht, dass es so schwarz-weiß Karriert aussieht.
Nun habe Ich für jede pictureBox eine Variable erstellt, also 64.
Nun überprüft ein Timer jede Millisekunde den Wert der Variablen, moment ...
Code :1 2 3 4 5 6 7 8
// Werte der Variablen // 11 = Bauer weiß; 21 = Bauer schwarz // 12 = Turm weiß; 22 = Turm schwarz // 13 = Springer weiß; 23 = Springer schwarz // 14 = Läufer weiß; 24 = Läufer schwarz // 15 = Dame weiß; 25 = Dame schwarz // 16 = König weiß; 26 = König schwarz // 0 = weiß; 1 = schwarz
So, dass sind die Bedeutungen der Variablen. Nun der Timer:
So, jetzt überprüft er die Werte und stellt die entsprechende Figur auf das Feld...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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
private void tmr_figuren_Tick(object sender, EventArgs e) { // Feld A1 switch (_a1) { case 11: this.a1.Image = Image.FromFile("data/bauer_weiß.PNG"); break; case 21: this.a1.Image = Image.FromFile("data/bauer_schwarz.PNG"); break; case 12: this.a1.Image = Image.FromFile("data/turm_weiß.PNG"); break; case 22: this.a1.Image = Image.FromFile("data/turm_schwarz.PNG"); break; case 13: this.a1.Image = Image.FromFile("data/springer_weiß.PNG"); break; case 23: this.a1.Image = Image.FromFile("data/springer_schwarz.PNG"); break; case 14: this.a1.Image = Image.FromFile("data/laeufer_weiß.PNG"); break; case 24: this.a1.Image = Image.FromFile("data/laeufer_schwarz.PNG"); break; case 15: this.a1.Image = Image.FromFile("data/dame_weiß.PNG"); break; case 25: this.a1.Image = Image.FromFile("data/dame_schwarz.PNG"); break; case 16: this.a1.Image = Image.FromFile("data/koenig_weiß.PNG"); break; case 26: this.a1.Image = Image.FromFile("data/koenig_schwarz.PNG"); break; } }
So, es ist kein Fehler im Code 100%-tig!! Aber wenn ihr bemerkt habt, dass es nur der Code für das erste Feld von 64 ist, dann wisst ihr ja was da für Arbeit blüht...
Ich muss diese Prozedur also 64 programmieren, wäre das Programm nicht langsam, denkt dran: Jede MILLISEKUNDE 64 Mal dieser Code. Das geht nicht.
Kann Ich das einfacher lösen, also danner alle Felder auf einmal prüft, etc.
Bitte, Bitte, Ihr erspart mir so um die 10 Jahre Arbeit, kein Witz!
MfG Alexander12
-
Hallo Alexander,
schau dir mal diesen Thread an. Vielleicht holft das ja ein wenig weiter was den Ansatz angeht.
Da geht es um das Klassendesign eines Schachspiels. Ist zwar in JAVA aber es geht ja um den Entwurf und der sollte in allen OOP Sprachen anwendbar oder übertragbar sein.
Jens
-
Hallo Leute!
Zitat von JensG
*woah* Was für ein Schinken. 
Leider hab ich grad nicht die Zeit mir das alles mal durchzulesen.
Stecken bstimmt noch ein paar gute Ideen zum Aufschnappen drinn.
Zu deinem Code:
Bevor ich weiter ausführe, ließ Dir erstmal den Thread durch und dann erklärst mir mal bitte,
warum Du hier einen Timer verwendest.
Du könntest ein und die selbe Methode mit den Klick-Events deiner PictureBoxen verknüpfen
und innerhalb der Ereignissbehandlung Dir das jeweilige Bild der ankgeklickten PictureBox holen.
Wofür Du es jetzt auch immer brauchst weiss ich ja nicht,
zumindest erkenn ich nicht ganz, was dein Code jetzt eigentlich für eine "Aufgabe" hat.
Mach's erstmal Gut, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.10.05 10:32 #4
Hi.
Ja, hast du eine Ahnung wie Man ein Schachspiel aufbauen kann?
Schon Mal Danke!
MfG Alexander12
-
05.10.05 10:55 #5
- Registriert seit
- Apr 2004
- Ort
- schweiz
- Beiträge
- 618
Kleine Hilfe
Dies sollte dir einen guten einstieg bieten. Auf dem kanst du Gut aufbauen für dein Schachspiel, oder zeust versuchen dieses Spiel ohne Hilfe nachzumachen
mfg
ziop
PS:
~~Be water my friend~~ by bruce
~~Der einfachste Weg, bietet die schwerste Lösungssuche~~ by emkey
*****************************
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination
.:Blödeleienschreiber des 1. offiziellen Sven Uwe Fan-Clubs:.
-------------------------------------------------------------------------------------
Mir sche*** egal wer dein Vater ist!! Wenn ich fische geht keiner übers Wasser!
-
Ich würd für jede Figur ein Objekt implemeintieren was quasi Bild und und die Regeln beinhaltet.
So ein bissel was davon (Regel Theorie) hab ich auch in dem Thread aufgeschnappt.
Du musst Dir da schon was einfallen lassen.
Mein erstes großes Programm war Schiffe versenken auf der Console.
Komplett dynamisch und die Schiffe wurden in generierten TXT-Daten gesetzt.
Mich da durch zu beißen, hat mir echt geholfen,
ein grundlegendes Verständniss für die Dinge zu bekommen.
Vor allem das man alles schön dynamisch vor sich hat und der Code sich nicht aufbläht
und man ein und den selben Vorgang immer wiederkehrend via Parameter ausführt,
sofern das nötig ist.
Wenn bis heute Abend keine Vorschlage gemacht wurden sind,
werd ich mir mal was überlegen, ok.
Hab heut leider Projektstress.
Für mich währe es mal wieder eine kleine Herrausforderung.
Daher will ich jetzt nicht einfach aus dem Stehgreif herraus was posten,
sondern mir mal überlegen wie man das OOP gerecht, klein und dynamisch bewerkstelligen kann.
Sollte ein Tick schwerer als Schiffe versenken sein.
Aber ich hatte damals noch nicht so viel Kenntniss vom Framework wie Du.
Daher denke ich, sollte Dir das erstmal nicht allzu schwer fallen
ein brauchbares Konzept zu erstellen.
Bis dann, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.10.05 13:25 #7
Hi cosmo,
Für mich eine große Herausforderung. Ich mich bisher mal an nem kleinen 2D-Spiel versucht, progge grade ne Adressverwaltung, sonst habe Ich eigentlich immer nur an so Kleinzeug rumgeproggt, wie nem Texteditor oder so was.Für mich währe es mal wieder eine kleine Herrausforderung.
Du hast irgendwo ne Textdatei genannt, da könnt man ja die Properties von den Figuren reinhängen..
Ich finde das echt nett von dir das du mir da Tipps etc. gibst.
Danke für deine Hilfe schon Mal im Vorraus!!
MfG Alexander12
-
Ist immerhin schon mehr als ich damals drauf hatte.
Zitat von Alexander12
Die Anfangszeiten hab ich, wie sicherlich fast jeder hier, in der Console verbracht.
Das Spiel hat mich letztendlich von der Console zu den Windows.Forms gebracht.
Ich hatte irgendwie aufeiunmal das Bedürfniss, den Spaß visuell darzustellen.
Vor allem damit sich auch das setzen der Schiffe in den Textdateien erübrigt.
Inwiefern meinst das?
Zitat von Alexander12
Möchtest Du jetzt das Spiel zwischen durch abspeichern,
damit man irgendwann weiterspielen kann?
Dann serialisier doch die Spielfiguren oder dein Spielfeld einfach.
Du könntst es aber auch als Übung betrachten.
Ich würd Dir dann aber dafür eher XML-Files empfehlen.
Die lassen sich, dank des DOM Konzepts, viel einfacher handhaben.
Zudem brauchst Dir dann keinen Parser für deine Textdateien schreiben.
Oder Du versuchst auch mal das.
Wie Du halt willst, wenn Du Zeit & Lust dazu hast und verspielt genug bist.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.10.05 14:11 #9
Hi.
Oh, mit XML hab ich mich bisher noch nicht beschäftigt, wäre was ganz neues.
Das mit den Properties in den TXTs da meint Ich Pfad und Name der Figur, aber da hääten wir ja wieder ein Problem. Z.b. Ein Spinger kann in einem Schachspiel immer nur 2 Felder vor und 1 Feld links oder rechts laufen, unabhängig davon wo Sie steht:
MfG Alexander12
-
05.10.05 14:24 #10
- Registriert seit
- Apr 2004
- Ort
- schweiz
- Beiträge
- 618
Zum Glück wird mein toller Link ignoriert
Cosmo = fies
Ich will c# auch zuhause haben, aber hab kein Geld , drum lass ich es halt mit den Spielen
mfg
ziop
~~Be water my friend~~ by bruce
~~Der einfachste Weg, bietet die schwerste Lösungssuche~~ by emkey
*****************************
(\_/)
(O.o) This is Bunny. Copy Bunny into your signature
(> <) to help him on his way to world domination
.:Blödeleienschreiber des 1. offiziellen Sven Uwe Fan-Clubs:.
-------------------------------------------------------------------------------------
Mir sche*** egal wer dein Vater ist!! Wenn ich fische geht keiner übers Wasser!
-
Na dann Hop Hop.
Zitat von Alexander12

Auf TheCodeProject Findest richtig gute Tuts dazu. Auch hier im Forum.
Denk nicht so kompliziert.
Zitat von Alexander12
Währe es nicht besser wenn deine Spielfigur (Klasse) von selber entscheidet,
ob sie das tun will.
Ohne den Umweg in eine Textdatei zu schauen, wo sie sich grad befindet.
Ich hoffe ich hab Dich jetzt nicht falsch verstenden.
Übergib deiner Speilfigur das Spielfeld einfach als simple Referenz im Konstruktor,
lass Sie entscheiden ob Sie sich deine Figur bewegen darf
und regier einfach auf den Ausführungsstatus des Zugs.
Somit hast die "Regeln" direkt in deinem Objekt.
Ich stell mir da sowas wie eine Zug-Funktion [ bool Zug( KoordinatenStruct NeuePosition ) ] vor.
//Edit:Falsch!Cosmo = fies
cosmo == fies
Aber ja, ich fand Link auch interessant.Geändert von Christian Kusmanow (05.10.05 um 14:30 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.10.05 14:39 #12
Hi.
Hää? Wie meinst denn das? SharpDevelop ist z.B. kostenlos. Oder wie meinst?Ich will c# auch zuhause haben, aber hab kein Geld , drum lass ich es halt mit den Spielen
@cosmo:
So habe Ich das gemeint (Siehe Anhang)
Der rote Punkt soll der Springer sein.
MfG Alexander12
-
05.10.05 14:41 #13
Hallo,
also ich würde z.B. einen Ansatz für die Darstellung über selbst programmierte Usercontrols verfolgen.
Ein Control für genau ein Feld und ein Control für das Schachbrett, welches sich die einzelnen Feldcontrols aufnimmt und aufbaut.
Für deine Variablen würd ich eine Enueration empfehlen, das liesst sich im Code viel besser und verständlicher:
Code :1 2 3 4 5
public enum Figuren { BauerWeiss = 1, BauerSchwarz=2, .. }Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)
-
Hi mage!
Guter Ansatz!
Zitat von mage

Dann kannst ohne Probleme auf die Parent- & Child-Controls zugreifen.
@Alexander:
Ich poste heut abend oder morgen wieder, ok.
Hab jetzt weiter keine Zeit mehr für ne ordentliche Antwort.
Versuchs doch erstmal selber.

Hää? Wie meinst denn das? SharpDevelop ist z.B. kostenlos. Oder wie meinst?
Hää? Hast das etwa noch nicht gewusst? 
Der erste Link im Forum heisst doch Freie IDEs für C# - Thread
Den kannst doch jetzt nicht übersehen haben.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
05.10.05 20:22 #15
Hi.
So was?
(Siehe Anhang
)
Das ist jetzt ein Control für ein weißes Feld.
MfG Alexander12
Ähnliche Themen
-
direktes Sql Update vornehmen
Von thehasso im Forum PHPAntworten: 3Letzter Beitrag: 17.03.10, 22:09 -
direktes Umsetzen von Befehlen - wie möglich?
Von spiesser im Forum Borland CBuilder und VCLAntworten: 2Letzter Beitrag: 12.02.07, 11:59 -
direktes photometrisches Licht
Von der_karl im Forum 3D Studio MaxAntworten: 6Letzter Beitrag: 25.04.06, 23:18 -
Direktes Probblem mit Frame
Von Uffi im Forum HTML & XHTMLAntworten: 11Letzter Beitrag: 19.12.03, 16:16 -
Direktes Eingeben von Text in ein MS(H)FlexGrid
Von sternchendreizehn im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 04.12.03, 11:02





Zitieren
Login





