AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programmieren von "Mensch ärgere Dich nicht"
Thema durchsuchen
Ansicht
Themen-Optionen

Programmieren von "Mensch ärgere Dich nicht"

Ein Thema von Sani93 · begonnen am 6. Jan 2011 · letzter Beitrag vom 14. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Sani93

Registriert seit: 5. Jan 2011
10 Beiträge
 
#1

Programmieren von "Mensch ärgere Dich nicht"

  Alt 6. Jan 2011, 21:10
Hey,
Ich hab jetzt seit fast einem halben Jahr Informatik in der Schule. Die Zeit mit dem "Unterricht" ist für mich jetzt schon vorbei. Unser Arbeitsauftrag lautet nun, ein Projekt zu erstellen.
Ich arbeite mit 2 Kurskamarden zusammen und wir haben auch schon einige tolle Spiele (Hangman, 4-Gewinnt, Tic Tac Toe...). Als Hauptprogramm wollte ich nun Mensch ärgere Dich nicht programmieren.
Ich arbeite da nun schon seit ca 3 Wochen dran. Aus meinen Mühen werden aber leider immer nur Versuche, die nicht richtig funktionieren wollen...
Ich hab bis jetzt alles hin bekommen, nur das Bewegen der Figur bereitet mir große Probleme...
Folgende Versuche hab ich schon hinter mir:
1. Spielfeld = ein großes Bild, auch die Felder sind da schon drauf. Ich hab einen Timer. Wenn die Figuren (Image) einen bestimmten Punkt erreicht haben, ändern sie Image.Top, bzw. Image.Left solange, bis sie einen nächsten Punkt erreicht haben. Die bestimmtem Punkte sind die Ecken. Das Problem dabei ist, dass die Figuren dabei leider immer wieder die Ecken überspringen...
2. Spielfeld = wie bei 1. ich hab für jede Ecke nen Timer. das war aber schwachsinnig...
3. Arrays. Das Spielfeld ist ein Image und die kleinen Felder sind alle einzelne Images. Nur hab ich leider überhaput keine Ahnung von Arrays...

Es wäre sehr nett, wenn mir jmd schnell helfen könnte...
Ich bitte zu beachten, dass ich erst seit einem halben Jahr Info habe und die Quellcodes, wie sie in anderen Themen geschrieben sind, so gut wie gar nicht verstehe. Ein einfacher oder gut erklärter Quellcode würde mir daher sehr helfen...

Danke schon mal im vorraus an die, die sich die Mühe machen mir zu helfen...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 6. Jan 2011, 21:14
Zitat:
Das Problem dabei ist, dass die Figuren dabei leider immer wieder die Ecken überspringen...
Prüfe nicht auf die Punkte sondern auf Bereiche um den Punkt
Markus Kinzler
  Mit Zitat antworten Zitat
Sani93

Registriert seit: 5. Jan 2011
10 Beiträge
 
#3

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 6. Jan 2011, 21:20
Sorry, aber wie oben gesagt...
Wir haben alle Grundlagen von Delphi und dem Programmieren im Allgemeinem in 4 Monaten durch gearbeitet, ich hab keine Ahnung, was ich machen soll. also was für Bereiche ich prüfen soll...

Ich hab 2 Variablen:
- AbstandOben
- AbstandLinks

und dann hab ich geschrieben:
if ((AbstandOben = '...') and (AbstandLinks = '...')) then
Image um 74 nach oben, unten, rechts oder links verschieben.

aber was meinst Du da jetzt?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 6. Jan 2011, 21:58
Das ist leider ein bisschen wenig Information, um dir weiter helfen zu können.

Wie hast du das Feld abgebildet, nicht graphisch, sondern die dahinterliegende Struktur, die die die Feldfolge anzeigt? Daraus könnten wir dann erkennen, wie die "Ecke" codiert ist, die ja irgendwie übersprungen wird.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Sani93

Registriert seit: 5. Jan 2011
10 Beiträge
 
#5

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 7. Jan 2011, 23:47
also ich hab ja keine felder erstellt. ich ahb die mit paint gezeichnet...
  Mit Zitat antworten Zitat
Sani93

Registriert seit: 5. Jan 2011
10 Beiträge
 
#6

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 9. Jan 2011, 20:27
kann mir keiner helfen?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 9. Jan 2011, 20:42
Wie merkst du dir die Position? Und wenn du würfelst, wie änderst du dann die Position?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Sani93

Registriert seit: 5. Jan 2011
10 Beiträge
 
#8

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 12. Jan 2011, 20:54
var AbstandOben, AbstandLinks : string; // warum auch immer das ein string sein soll, aber das funktioniert mit integer nciht...

Timer1:
if (AbstandOben = '13') then
AbstandLinks := strtoint(AbstandLinks)+74 // ich hab das jetzt iwie nicht mehr. mein pc macht im mom richtige scheiße, aber ich mein so war das.
// die Variablen sind die Position des Bildes (Spielfeigur). Image.Left -> AbstandLinks. 74 ist der
// Abstand zwischen den Feldern
// und das hab ich halt für alle strecken gemacht, wo die figur sich in die gleiche richtung bewegen soll...



ich hab das jetzt ganz anders gemacht. ich hab jetz 4 timer (für jede farbe einen). dann hab ich noch für jede figur ein editfeld.
in diesem editfeld steht wie viele felder die figur schon gelaufen ist. und dann hab ich jedem feld in diesem editfeld eine position zu geordnet:

if (Edit.Text = '6') then
AbstandOben := ...;
AbstandLinks := ...;

so funktioniert es zu mindest schon mal. auch die rausschmeiß-funktion ist so einfach -> if (Editx.Text = Edity.Text) then // wobei jede farbe
// einen radiobutton hat
// so weiß ich immer
// welche farbe ins haus
// muss...


Ist zwar nicht ideal, die lösung. aber es funktioniert schon mal
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 13. Jan 2011, 08:15
Du solltest Logik und Darstellung strikt trennen. Komponenten wie TEdit dienen der Darstellung von Daten, nicht aber der Speicherung. Für Letzteres verwendet man Variablen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#10

AW: Programmieren von "Mensch ärgere Dich nicht"

  Alt 13. Jan 2011, 09:26
Punkt 1: Zahlen kommen in Zahlen-Variablen wie Integer. Dann muss man sie nicht immer erst in Strings umrechnen.
Punkt 2: Deine Figur wird sich so voranbewegen, dass nicht ein ganzzahliges Vielfaches des zurückgelegten Weges pro Zug * eine natürliche Zahl die Weglänge ergibt. Du kannst somit auch nicht auf Gleichheit prüfen, wenn die Figur standardmäßig über die Grenze hinausspringt. Du kannst aber prüfen, ob sie die Grenze überschritten hat (< oder >) und dann neu ausrichten.

Verbesserungsvorschlag: Definiere ein Array mit den Punkten auf dem Spielfeld. Dann sagst du der Figur, sie soll sich einen Platz weiter bewegen und sagst dem Programm, dass es zeichnen soll. Beim Zeichnen errechnest du aus der Position (z.B. 5) die Koordinaten auf dem Spielfeld und zeichnest die Figur dann an die richtige Stelle.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz