AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Abbruchbedingung und Bewegung bei 4 Gewinnt
Thema durchsuchen
Ansicht
Themen-Optionen

Abbruchbedingung und Bewegung bei 4 Gewinnt

Ein Thema von HolleDP · begonnen am 1. Apr 2008 · letzter Beitrag vom 4. Apr 2008
Antwort Antwort
HolleDP

Registriert seit: 1. Apr 2008
3 Beiträge
 
Delphi 7 Professional
 
#1

Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 1. Apr 2008, 21:55
Schön juten Tag.
Ich versuch mich gerade an dem Spiel "4 Gwinnt". Bin auch schon relativ weit voran geschritten, habe aber jetzt ein Problem mit der Steuerung.
Da ich meine Programme meistens immer sehr komplex mache, dachte ich mir mal, dass man den Chip ja per Cursortasten bewegen könnte.
Die Bewegung nach Links und nach Rechts habe ich schon fertig, was mir jetzt aber noch fehlt wäre die Bewegung nach unten.
Diese habe ich mir folgenderweise vorgestellt:
- Pfeiltaste "unten" wird gedrückt
- Timer bewegt den Chip langsam nach unten
- wird überprüft wann das Ende des Spielfeldes kommt bzw. ob ein Chip schon unter
ihm liegt
Bei dieser Problematik benötige ich jetzt mal bitte Hilfe.
Wäre nett, wenn mir jemand weiter helfen könnte.
Mfg Holle
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 1. Apr 2008, 21:58
Wie verwaltest du das Spielfeld?
Markus Kinzler
  Mit Zitat antworten Zitat
HolleDP

Registriert seit: 1. Apr 2008
3 Beiträge
 
Delphi 7 Professional
 
#3

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 1. Apr 2008, 22:01
Das Spielfeld hab ich mir von Delphi zeichnen lassen.
Also with image1.canvas do.....
Bisschen umständlich, ich weiß^^
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#4

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 1. Apr 2008, 22:05
Zur Bewegung schaust du vielleicht hier, da hatten wir gestern etwas ähnliches
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 1. Apr 2008, 22:08
erstmal legst du ein array mit den feldern an
Delphi-Quellcode:
TSpielerSeite = (Rot, Gelb);
TFeld = (Rot,Gelb,None)
TFelder = Array[0..6,0..5] of TFeld;
var
Felder:TFelder;
SpielerAnDerReihe:TSpielerSeite;
dort kannst du reinspeichern deine Chips
Felder[ChipX,ImpactY(ChipX)] := SpielerAnDerReihe; und um herauszufinden, welches feld in der spalte das niedrigstmögliche ist, benutzt du ImpactY
Delphi-Quellcode:
function ImpactY(X:Integer): Integer;
var
i:integer;
begin
for i := 0 to 5 do
  if Felder[X,i] <> None then
  begin
    result := i - 1;
    exit;
  end;
end;
velleicht hilft dir das
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
HolleDP

Registriert seit: 1. Apr 2008
3 Beiträge
 
Delphi 7 Professional
 
#6

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 2. Apr 2008, 17:34
@taaktaak
Mhh...das scheint ja vlt. gut zu sein (kann das nich so einschätzen ), aber das ist nich ganz das was mir weiterhelfen könnte.
Dass ich das mit GetAsyncKeyState machen muss, das wusste ich schon (sorry, dass ich das noch nich hingeschrieben habe).


@dajuhsa
Also deine ersten beiden Quellcode's vertsteh ich ja, aber deinen letzten versteh ich nicht wirklich.
Könnteste den mal bitte erklären?! Wär nett.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 2. Apr 2008, 17:41
Du solltest den Chip beim Drücken der Tasten "1" bis "7" in der entsprechenden Spalte fallenlassen.
Und zwar ganz unabhängig davon, dass es auch noch eine 2. Möglichkeit gibt, den Chip fallen zu lassen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Abbruchbedingung und Bewegung bei 4 Gewinnt

  Alt 4. Apr 2008, 22:03
Delphi-Quellcode:
function ImpactY(X:Integer): Integer; //X gibt die Zeile an, in der der "Einschlag" stattfindet
var
  i:integer;
begin
  for i := 0 to 5 do //6 Felder Hoch ist das Spielfeld denke ich mal, alle felder in Zeile X durchgehen
    if Felder[X,i] <> None then //wenn das aktuelle Feld nicht leer also belegt ist,
    begin
      result := i - 1; //dann landet der chip im feld darüber (Y - 1)
      exit; //und da das ergebnis feststeht wird die function beendet
    end; //wenn das oberste besetzt ist, kommt als ergebnis -1 raus, das musst du im programm halt abfragen
end;
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:59 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