![]() |
Mesch Ärgere dich nicht
Hi
Also ich suche schon ewig nach dem Spiel Mensch ärgere dich nicht, was in Delphi programmiert ist, weil unsere Infolehrerin genmeint hat, das man dieses Spiel nicht in Delphi programmiere kann. Also weis den einer wo man es sich runterladen kann oder hat es einer schon mal programmiert?? Danke |
Re: Mesch Ärgere dich nicht
Hat sie ihre Aussage irgendwie begründet? :gruebel:
|
Re: Mesch Ärgere dich nicht
![]() Zitat:
|
Re: Mesch Ärgere dich nicht
kla geht das dann ist deine lehrerin wohl n bisschen blöd :)
|
Re: Mesch Ärgere dich nicht
ich sag es mal so ...
hatte vor sehr vielen Jahren mal mit QBasic ein MÄDN programmiert ... und was (Q)Basic kann, daß kann Delphi auch und noch viel mehr. [add] gib mal in Google Zitat:
bzw. laß das NICHT mal weg (gibt auch noch genug Anti-Varianten davon) |
Re: Mesch Ärgere dich nicht
Frag sie bitte mal wie sie auf diese (schwachsinnige) Aussage kommt und schreibe es bitte hier rein.
Würde mich echt mal interressieren wie sie das begründet. bzw. mit Delphi kannst du fast alles programmieren... |
Re: Mesch Ärgere dich nicht
naja sie hat gemeint das man es nicht hinbekommt das die random würfelzahl auf die
spielfiguren übertragen werden und die sich dann dementsprechend bewegen. Ich soll ihr erst zeigen das es sowas gibt und dazu brauch ich nun echt dringend das Spiel... Danke schonmal |
Re: Mesch Ärgere dich nicht
Zitat:
..klar geht das |
Re: Mesch Ärgere dich nicht
Zitat:
|
Re: Mesch Ärgere dich nicht
Das ist die Sorte Lehrer, deren Wissen wahrscheinlich von einem Delphi-Crashkurs herstammt. :mrgreen:
Fakt ist: Alles was ihr jemals im Unterricht programmieren wollte geht mit Delphi (von einem eigenen OS mal abgesehen *g*). |
Re: Mesch Ärgere dich nicht
Für Mich sieht das eher so aus als ob Du ein fertiges Projekt haben
möchtest und deine Lehrerin nur als Vorwand benutzt. :wink: |
Re: Mesch Ärgere dich nicht
Zitat:
|
Re: Mesch Ärgere dich nicht
Hier hast du eine Link zu einem Mensch ärgere dich nicht Spiel (ohne Sourcecode) *g*
gibt noch mehr im Netz....ist in TP7 geschrieben, aber spielt keine Rolle TP ist (fast) dasselbe wie Delphi ![]() |
Re: Mesch Ärgere dich nicht
Zitat:
habe bloß vergessen, es nicht mit KProxy zu machen :roll: :roll: |
Re: Mesch Ärgere dich nicht
Zitat:
|
Re: Mesch Ärgere dich nicht
wenn du einmal geschaut hättest, dann wüstest du dass ich es schon ausgebessert habe (auch wenn du um 13:46 geschrieben hast und ich um 13:46 ausgebessert habe)
|
Re: Mesch Ärgere dich nicht
Hi
Also ich na klar suche ich jetzt ein fertiges Programm mit Sourcecode, aber das nur um unserer Lehrerin zu zeigen, dass es auch mögliche ist, sowass in Delphi zu programmieren... Könnt ihr mir da helfenß??? Bitte!!!! |
Re: Mesch Ärgere dich nicht
Warum schreibst du nicht schnell ein kleines Programm, bei dem ein einzelnes Männchen im Kreis hüpft. :roll:
Die Logik dahinter ist doch völlig egal. |
Re: Mesch Ärgere dich nicht
Wenn es nicht unbedingt MÄDN sein muss, zeig ihr doch einfach ein anderes Spiel welches mit Delphi programmiert es.
Es gibt hunderte davon. |
Re: Mesch Ärgere dich nicht
Zitat:
das echt schade, und dann wundert man sich warum aus der jugend nichts mehr wird!! :lol: :lol: |
Re: Mesch Ärgere dich nicht
Man könnte jedes aktuelle Spiel auch in Delphi schreiben, sofern es von Delphi erzeugt werden kann (kein DOS, kein 64bit...).
Ich würde sogar behaupten, dass Crysis auch in Delphi hätte funktioniert. :firejump: |
Re: Mesch Ärgere dich nicht
Hallo, ich bin Abiturient und besuche dort auch mein Fach Informatik... nun ist es so, dass es nicht wirklich anspruchsvoll ist für mich und einem Freund und haben uns so ein Projekt vorgenommen: "Mensch ärgere Dich Nicht!"
Als erstes haben wir alles in verschiedene Parts geteilt... einmal der Würfel (Random verfahren), Spieler Array (1- max.4) und den schwersten teil das bewegen der Figuren über die "Spielfläche" folgende Var's sind deklariert:
Delphi-Quellcode:
Erst einmal folgender Code (Randomverfahren)
var
Form1: TForm1; // Positionen posX, posY: array [0..99] of integer; // player1-4 = Zahlen bis max. 43 p1,p2,p3,p4, player, Auge, cubes, i: integer;
Delphi-Quellcode:
Nun kommt die Prozedur vom Button (Würfeln)Click
Function Wurf: integer;
begin randomize; result := (random(6)+1); end;
Delphi-Quellcode:
Zu Beachten ist das z.B. s1f1 oder s2f4 die kürzel für "Spieler 1 Figur 1" oder Spieler 2 Figur 4" sind und nun kann man sehen das ich ausschließlich mit Image's gearbeitet habe...
procedure TForm1.btn_wuerfelClick(Sender: TObject);
begin player := player+1; // Postion LEFT posx[00] := 192; posx[01] := 248; posx[02] := 304; posx[03] := 360; posx[04] := 416; posx[05] := 440; posx[06] := 440; posx[07] := 440; posx[08] := 440; posx[09] := 496; posx[10] := 552; posx[11] := 552; posx[12] := 552; posx[13] := 552; posx[14] := 576; posx[15] := 632; posx[16] := 688; posx[17] := 744; posx[18] := 800; posx[19] := 800; posx[20] := 800; posx[21] := 744; posx[22] := 688; posx[23] := 632; posx[24] := 576; posx[25] := 552; posx[26] := 552; posx[27] := 552; posx[28] := 552; posx[29] := 496; posx[30] := 440; posx[31] := 440; posx[32] := 440; posx[33] := 440; posx[34] := 416; posx[35] := 360; posx[36] := 304; posx[37] := 248; posx[38] := 192; posx[39] := 192; posx[40] := 248; // Player 1 Haus Feld 1 posx[41] := 304; // Player 1 Haus Feld 2 posx[42] := 360; // Player 1 Haus Feld 3 posx[43] := 416; // Player 1 Haus Feld 4 // Position TOP posy[00] := 272; posy[01] := 272; posy[02] := 272; posy[03] := 272; posy[04] := 248; posy[05] := 192; posy[06] := 136; posy[07] := 080; posy[08] := 024; posy[09] := 024; posy[10] := 024; posy[11] := 080; posy[12] := 136; posy[13] := 192; posy[14] := 248; posy[15] := 280; posy[16] := 280; posy[17] := 280; posy[18] := 280; posy[19] := 336; posy[20] := 392; posy[21] := 392; posy[22] := 392; posy[23] := 392; posy[24] := 416; posy[25] := 472; posy[26] := 528; posy[27] := 584; posy[28] := 640; posy[29] := 640; posy[30] := 640; posy[31] := 584; posy[32] := 528; posy[33] := 472; posy[34] := 418; posy[35] := 384; posy[36] := 384; posy[37] := 384; posy[38] := 384; posy[39] := 328; posy[40] := 328; // Player 1 Haus Feld 1 posy[41] := 328; // Player 1 Haus Feld 2 posy[42] := 328; // Player 1 Haus Feld 3 posy[43] := 328; // Player 1 Haus Feld 4 // Mache Würfel Images Unsichtbar cube_1.Visible := false; cube_2.Visible := false; cube_3.Visible := false; cube_4.Visible := false; cube_5.Visible := false; cube_6.Visible := false; // In die Funktion Wurf mit ausgangswert 0 setzen statusbar.SimpleText := IntToStr(Wurf()); Auge := StrToInt(statusbar.SimpleText); cubes := StrToInt(statusbar.SimpleText); // Bedingungen für den Wurf deklarieren: case Auge of 0..5: statusbar.SimpleText := statusbar.SimpleText + ' Der nächste Spieler ist an der Reihe!'; 6: statusbar.SimpleText := statusbar.SimpleText + ' Du darfst noch einmal!' end; case cubes of 1: cube_1.Visible := true; 2: cube_2.Visible := true; 3: cube_3.Visible := true; 4: cube_4.Visible := true; 5: cube_5.Visible := true; 6: cube_6.Visible := true; end; //BEDINGUNGEN FÜR SPIELER 1 begin if (p1 < 43) and (player = 1) then begin p1 := p1+wurf; edt_points.text := IntToStr(p1); s1f1.Left := posx[p1]; s1f1.top := posy[p1]; end end; //BEDINGUNGEN FÜR SPIELER 2 begin if (p2 < 43+10) and (player = 2) then begin p2:= p2+Wurf(); edt_points2.text := IntToStr(p2); s2f1.Left := posx[p2+10]; s2f1.top := posy[p2+10]; end end; //BEDINGUNGEN FÜR SPIELER 3 begin if (p3 < 43+20) and (player = 3) then begin p3:= p3+Wurf(); edt_points3.text := IntToStr(p3); s3f1.Left := posx[p3+20]; s3f1.top := posy[p3+20]; end end; //BEDINGUNGEN FÜR SPIELER 4 begin if (p4 < 43+30) and (player = 4) then begin player := 0; // Setze player wieder 0, damit es mit player 1 wieder losgeht. p4:= p4+Wurf(); edt_points4.text := IntToStr(p4); s4f1.Left := posx[p4+30]; s4f1.top := posy[p4+30]; end end; end; auf jeden fall läuft der Spieler 1 Figur 1 sehr gut dem Wege entlang, jedoch habe ich ein Problem mit den anderen Spielern... diese Fangen ja erst bei +10/+20/+30 Feldern an und wissen am ende nicht wohin... Hat eventuell einer eine Idee dieses Problem anders zu lösen ? Kurze Anmerkung noch: Ich habe dieses Spiel soweit nur mit Grundkenntnissen und etwas Internetrecherche (Arrays zb) zusammengestellt, also beklagt Euch bitte nicht über diesen makaberen Quelltext. Bin aber gerne über "Korrekte Schreibweisen" erfreut. Danke im Vorraus. |
Re: Mesch Ärgere dich nicht
Schmeiß die Bedingungen für die Spieler raus und benutze auch noch für allle Player zusammen ein Array:
Delphi-Quellcode:
Für das Speichern der Positionen nimmst Du den Typ TPoint:
p: array [1..4] of Integer;
Delphi-Quellcode:
Zugriff dann so:
Pos: array [0..99] of TPoint;
Delphi-Quellcode:
hier der Code:
Pos[0].X
Pos[0].Y
Delphi-Quellcode:
// aktuelle position
p[player] := p[player] + wurf; if p[player] > 40 then p[player] := p[player] - 40; // anzeigen edt_points.text := IntToStr( p[player] ); // spielfiguren bewegen TImage(FindComponent('s'+IntToStr(player)+'f1') ).Left := Pos[ p[player] ].x; TImage(FindComponent('s'+IntToStr(player)+'f1') ).Top := Pos[ p[player] ].y; end; Jetzt bist Du dran :-) ToDo: - Animieren der Züge - Verbesserung init Andreas |
Re: Mesch Ärgere dich nicht
Ui, noch nicht viel von OOP gehört?
|
Re: Mesch Ärgere dich nicht
Zitat:
|
Re: Mesch Ärgere dich nicht
Blöd ist nur, wie ich das jetz herauslese, dass ich von jedem Spieler eine Figur bewegen kann :) Glücklicherweise gibt es ja 4x4 Figuren unter 4 Spielern unterteilt :)
Aber an sich funktioniert die ganze sache. Danke Dir auch vielmals dafür ! und nein, sry ich habe noch nicht die größte Ehrfahrung von Objekt Orientierte Programmierung gemacht :( aber was meinste warum ich so aus spaß ein MÄDN -Spiel mit eigenen Regeln programmieren möchte ? :P Kurz zurück zu Michael's Gedanken: Zitat:
Delphi-Quellcode:
Also das ich [1..4] für die Figuren nehme und p1 selbst als "Spieler1" z.b.
p1, p2, p3, p4: array [1..4] of Integer;
Als Beispiel dann noch eine "Var player, figure: byte;"
Delphi-Quellcode:
TImage(FindComponent('s'+IntToStr(player)+'f'+IntToStr(figure)) ).Left := Pos[ p2[player] ].x; TImage(FindComponent('s'+IntToStr(player)+'f'+IntToStr(figure)) ).Top := Pos[ p2[player] ].y; |
Re: Mesch Ärgere dich nicht
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab doch tatsächlich mal was gemacht. Is schon ewig her und sicher nicht die beste Lösung, auch nicht in Sachen OOP. Aber es tut :-)
|
Re: Mesch Ärgere dich nicht
Danke dir... damit kann ich es gut nachvollziehen !
|
Re: Mesch Ärgere dich nicht
ich hab auch n mensch ärgere dich nich geschrieben aba ohne arrays...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz