AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Reversi-Probleme mit Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Reversi-Probleme mit Funktionen

Ein Thema von tankm26 · begonnen am 12. Aug 2005 · letzter Beitrag vom 20. Aug 2005
Antwort Antwort
Seite 2 von 3     12 3      
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#11

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 17:28
Zitat von Muetze1:
Moin!

Rekursive Funktionen!

Beispiel dazu

MfG
Muetze1
danke schonmal, das werde ich mir mal anschauen.
Wieland S.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 18:30
wofür soll rekursivität beim prüfen gut sein?

pruefen prüft doch, wie viele steine eingeschlossen sind. zwischen zwei koordinaten.du brauchst also x|y und dx|dy.

das einbinden stimmt soweit, bloß dass es zwei params zu wenig sind.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#13

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 18:40
wie finde ich denn heraus bzw. wie kann ich es programmieren, dass das programm den nächsten gleichfarbigen Stein findet?
Wieland S.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 19:12
einfach nach unten/rechts/rechts-oben durchprüfen, wann die selbe farbe kommt

aber das ist ja gar nicht deine aufgabe, oder?

EDIT: SOllst du eigentlich ein voll lauffähiges udn spielbares reversi machen, oder nur das, was in aufgaben drinsteht? also die zwei funktionen?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#15

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 19:36
nur die aufgaben, das programm wird eigentlich nie fertig
Wieland S.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Reversi-Probleme mit Funktionen

  Alt 14. Aug 2005, 19:51
dann mach erstmal istspielfeld, das ist einfacher ^^
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#17

Re: Reversi-Probleme mit Funktionen

  Alt 15. Aug 2005, 15:31
ich will ja nix sagen aber... istspielfeld ist ja wohl fertig, die muss ich nur noch verknüpfen
Wieland S.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Reversi-Probleme mit Funktionen

  Alt 15. Aug 2005, 17:28
dann helf ich dir hier mal mit n bisschen code auf die sprünge

Delphi-Quellcode:
function pruefen(x,y,dx,dy:integer):integer; //pruefen ist eigentlich nur ein wrapper für die drei richtigen prüffunktionen
var
begin
if x=dx then //wenn es senkrecht ist
 result:=processvertical(x,y,dy)
else if y=dy then // wenn es waagerecht ist
 result:=processhorizontical(x,dx,y)
else //wenn es diagonal ist
 result:=processdiagonal(x,y,dx,dy);
end;

function processvertical(x,y,dy:integer):integer;
var i:integer;
    count:integer;
    encplayer:integer; //farbe des eingeschlossenen
begin
sort(y,dy); //stellt sicher, dass es von oben nach unten geht - selber machen ;)

if not (feld[x,y]=feld[x,dy]) then //der erste stein muss die selbe farbe haben wie der letzte
 begin
  result:=-1; //Fehler!
  exit; //Abbruch!
 end
else
 begin
  if feld[x,y]=GRÜN then encplayer:=ROT
  else if feld[x,y]=ROT then encplayer:=GRÜN;
  else //wenn das feld leer ist
   begin
    result:=-1;
    exit;
   end;
 end;

count:=0; //initialisieren

for i := y+1 to dy-1 do //ersten und letzten stein auslassen
 begin
  if feld[x,i]=encplayer then count:=count+1;
  else
   begin
    result:=-2; //Kein fehler, aber keine geschlossene reihe
    exit;
   end;
 end;

result:=count;
end;

Es würde jetzt bereits schon fast (*) für senkrechte reihen funktionieren, unter der bedingungen, dass auch die einschließenden Steine in den bereich einbezogen werden.

Rückgabewerte:
>= 0: Menge der eingeschlossenen Steine
-1: Fehler
-2: Reihe unterbrochen

Den Rest solltest du selber schaffen

(*): sort fehlt. es sollte so definiert sein: procedure sort(var i,k:integer); PS: zeig mal istspielfeld
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#19

Re: Reversi-Probleme mit Funktionen

  Alt 15. Aug 2005, 19:28
also, das sieht ja reichlichst kompliziert aus.

Aber ich werde auch mal versuchen, das zu durchdenken/zu verstehen/ einzubauen.


die heute im unterricht propagierte lösung krame ich nachher mal heraus.

Danke schonmal für deine (eure) Hilfe!
Wieland S.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#20

Re: Reversi-Probleme mit Funktionen

  Alt 15. Aug 2005, 20:17
Ich habe selbst ein REVERSI-Spiel sammt KI geschrieben. Vielleicht hilft dir das ja irgendwie weiter. [Noch nicht ganz fertig, irgendwie hängt er sich nach ein paar Minuten immer auf. Ich wollte es eh mal als Open-Source posten]. Ich lade es mal hier hoch:
Angehängte Dateien
Dateityp: rar source___exe_901.rar (434,1 KB, 21x aufgerufen)
Michael Enßlin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:35 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