Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz (https://www.delphipraxis.net/162412-tic-tac-toe-mal-wieder-versteh-aufgabestellung-nicht-ganz.html)

biby90 22. Aug 2011 11:40

Delphi-Version: 5

tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Hallo Leute,
heute habe ich dir Aufgabe ein Tic Tac Toe spiel zu programmieren.
ist ja auch alles schön und gut nur versteh ich etwas bei der aufgabestellung nicht.

Beschreibung:
9 labels auf der form und einem array als datenstruktur. /wie macht man das?
bei jedem klick auf ein label sollen 2 funktionen aufgerufen werden (IsFieldEmpty(var AIndex): boolean, CheckFor Win) / das ist doch aber nur eine funktion.... oder wie bekomme ich daraus eine zweite?



würde ja meinen ausbilder fragen wenn er da wäre....





ach ja und das ganze ohne KI

Luckie 22. Aug 2011 11:43

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
1. Funktion: IsFieldEmpty
2. Funktion CheckForWin
:roll:

biby90 22. Aug 2011 11:51

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
aahhhhhhh.... ok danke :oops: bin halt noch seeeeehhhhrrr anfängerisch^^

mleyen 22. Aug 2011 12:11

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

Zitat von biby90 (Beitrag 1118561)
Beschreibung:
9 labels auf der form und einem array als datenstruktur. /wie macht man das?

9 farbige Labels für die Spielerzüge, welche nach den Klicks der Spieler hier rein gespeichert werden:
Delphi-Quellcode:
type
  TTicTacToeSlot = (tttsFree, tttsPlayer1, tttsPlayer2);
var
  TicTacToeSlots: array[0..2] of array[0..2] of TTicTacToeSlot;

DeddyH 22. Aug 2011 12:15

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Obwohl ich auch ein 2-dimensionales Array verwenden würde glaube ich nicht, dass das hier gefordert ist. In dem Fall wäre es nämlich auch geschickter, den Funktionskopf
Zitat:

Delphi-Quellcode:
IsFieldEmpty(var AIndex): boolean

anders zu deklarieren:
Delphi-Quellcode:
IsFieldEmpty(XPos, YPos): boolean
Damit entfällt dann ein lästiges Umrechnen.

biby90 22. Aug 2011 12:27

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
oha so viele möglichkeiten... dann versuch ichs mal

biby90 22. Aug 2011 12:48

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
wofür soll den das array gut sein.... nur damit ich das verstehe was ich hier mache. bringt ja nichts wenn ich ein array irgendwo einbaue aber nicht weiß wieso

DeddyH 22. Aug 2011 12:51

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
3 Zeilen, 3 Spalten -> array[1..3, 1..3]

biby90 22. Aug 2011 13:30

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

type
TTicTacToeSlot = (tttsFree, tttsPlayer1, tttsPlayer2);
ist das für den 2 spieler modus?

DeddyH 22. Aug 2011 13:33

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Das Spiel macht mit nur einem Spieler ja keinen Sinn. Ob der nun menschlich oder eine KI ist, spielt dabei ja keine Rolle. Sofern es Dir eher behagt, kannst Du den Typ ja ein wenig anders deklarieren:
Delphi-Quellcode:
type
  TTicTacToeSlot = (tttsFree, //Feld ist frei
                    tttsX, //Feld ist mit "X" belegt
                    tttsO //Feld ist mit "O" belegt
                   );

himitsu 22. Aug 2011 13:35

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Jupp.

Ist wie bei einem Integer, also unterschiedliche Zahlen/Werte in jedem Feld.
Nur daß hier die einzelnen Werte keine Zahl sind, sondern einen Namen haben.



z.B.:
Delphi-Quellcode:
TTicTacToeSlot = Boolean;
False = kein Stein auf dem Feld
True = irgendein Stein auf dem Feld

Delphi-Quellcode:
TTicTacToeSlot = Integer;
0 = kein Stein auf dem Feld
1 = Stein von Spieler 1 auf dem Feld
2 = Stein von Spieler 2 auf dem Feld

Delphi-Quellcode:
TTicTacToeSlot = (tttsFree, tttsPlayer1, tttsPlayer2);
tttsFree = kein Stein auf dem Feld
tttsPlayer1 = Stein von Spieler 1 auf dem Feld
tttsPlayer2 = Stein von Spieler 2 auf dem Feld

biby90 22. Aug 2011 14:44

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
also irgendwie bin ich hier gerade zu doof....
ich soll ja keine KI erstellen sondern ein spiel für 2 personen. aber wie programmiere ich es denn dass er eben die personen wechselt... hab schon das internet durchsucht aber ich steig da nicht ganz durch.

ich weiß ich bin nervig.... tut mir leid :)


ok prinzip von himitsu verstanden... is denn das schon alles?

DeddyH 22. Aug 2011 14:46

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Pseudo-Code:
Code:
procedure Spielerwechsel
if AktuellerSpieler = Spieler1 then
  AktuellerSpieler := Spieler2
else
  AktuellerSpieler := Spieler1

QuickAndDirty 22. Aug 2011 15:05

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Um ein so einfache spiel prgrammieren zu können sollte man schon vorher wissen
wie das mit den Variablen, Datentypen, Kontrollstrukturen ,Prozeduren, Funktionen, Events läuft.(klassen und objekte wäre hier aber auch wieder Overkill)

hier eine Lösung falls du deine hausaufgabe einfach fertig haben willst
http://delphi.about.com/od/beginners/l/aa021803a.htm

Andernfalls müsstest du dir erst mal so die Basics beibringen.

biby90 22. Aug 2011 15:12

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

hier eine Lösung falls du deine hausaufgabe einfach fertig haben willst
ehm... es sind ja keine hausaufgaben. es ist eine aufgabe von meinem ausbilder der leider zur zeit nicht da ist. bin jetzt die dritte woche in meiner ausbildung. einiges kann ich schon recht gut aber es gibt halt immer noch dinge die noch nicht so leicht von der hand gehen. deddyh und himitsu wissen das und deswegen kommt von denen nicht dass ich mir grundkenntnisse aneignen soll.... die lerne ich zur zeit nämlich!

voll gemein.... alle drei Tage bekpmmt man das gleiche zu hören!

Medium 22. Aug 2011 16:10

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Gib deinem Ausbilder bitte mächtig eins auf die Mütze. Nach 3 Wochen und ohne Vorkenntnisse bist du noch dermaßen Frischling, dass es schlicht lächerlich ist, dich an so etwas zu setzen. Versuch das am besten mal mit ihm unter 4 Augen (ggf. mit Verweis auf deine Threads hier im Forum) zu klären, und je nach Erfolg im Zweifel an seinen Vorgesetzten wenden. Das aber nur wenn da das völlige Stur-Programm einsetzt, man kann sowas sicherlich auf nette Weise regeln :)
Du fängst hier an Propellerflugzeuge zu bauen ohne je etwas über Aerodynamik gelernt zu haben. Das ist kontraproduktiv und birgt haufen an Frustpotenzial für euch beide. Vor allem bringt es dir aber für die Ausbildung nicht viel.

biby90 22. Aug 2011 16:14

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
er ist jetzt die nächsten 2 wochen nicht da.... habe ja schon mit sortieralgos und funktionen gearbeitet... einen taschenrechner habe ich ja auch schon fertig.... ich weiß auch nicht... ales doof heute!!! ich bin heute bei allem was ich mache eine zumutung für mich und meine mitmenschen^^

Medium 22. Aug 2011 16:38

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Quatsch, es ist ja nicht dir anzulasten, wenn man mir dir im Vorfeld nichtmals ein paar grundlegende Sachen wie Datenstrukturen (und deren Anwendungsfälle), so wie analytisch angesetztes Denken durchkaut. Es gibt sicher ein paar Menschen, denen ist das in die Wiege gelegt, voraussetzen kann ich das doch aber nicht als Ausbilder. Wobei hier sicherlich auch dem oft so "hochwertigen" Info-Unterricht in unseren Schulen gehörig Mitschuld zu geben ist. Was das angeht, da tun mir dann die Betriebe auch wieder ganz schön leid. Da der meines Wissens nach aber nicht fest in den Lehrplänen verankert ist, darf ich den eigentlich überhaupt nicht voraussetzen, und 3 Wochen nach ganz frisch gehörst du streng genommen nichtmals an einen Computer, sondern an Papier und Bleistift, Grundlagen der digitalen Datenverarbeitung pauken ;)

biby90 22. Aug 2011 16:59

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ja kann ja sein....
also ich hatte sowas nie im informatikunterricht.... als er mich eingestellt hat wusste er ja auch dass ich null vorkenntnisse habe. naja mal gucken. ich werds nachher mal mit meinem liebchen durchkaun... er is zwar eher sps programmierer aber kann das hier auch ein wenig ;)
also bis miorgen dann hab feierabend^^

QuickAndDirty 22. Aug 2011 21:50

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
OK,
ich kann das mit dem T....nbonus ja verstehen...
dennoch tut dir niemand einen Gefallen dich mit Samthandschuhen anzufassen.

Du brauchst so ein Buch wie "Delphi für kids"!(das ist D7 dabei)
Etwas das man schnell durchlesen und mental konsumieren kann mit vielen Beispielen.

(eigentlich kann auch einem Delphi Entwickler das Kernighan & Ritchie nicht schaden, aber das ist nur wichtig um zu wissen was man an Delphi hat und wie man sonnst so leiden könnte)

UND egal was dein ach so böser Ausbilder dir nicht beibringt...alles quatsch. Dein Job als Informatiker
gerade als FIAE lässt sich wie folgt beschreiben: "Wisse wie du dir das nötige Wissen zum lösen deiner Aufgaben beschaffst."
Es bringt dir nichts, wenn dein Ausbilder dir heute etwas Konkretes beibringt...das ist morgen alles nichts mehr wert. Du kannst dir gar nicht vorstellen wie schnell das, was man über AE und IT weiß, auf einmal falsch, veraltet oder irrelevant ist.

Wenn du in einem Betrieb arbeitest ist es höchst unwahrscheinlich das deine Ausbilder bei Adam und Eva anfangen.... Du musst dir das Wissen schon in der, leider unbezahlten, Freizeit aneignen...
Es wird nicht anders gehen.
Wenn du keine gesponsorte oder "auf anderem Wege" erlangte Delphi Version für Zuhause hast nimm Lazarus. Das reicht um derartige Probleme Zuhause nachvollziehen zu können.

Wir haben einen FIAE der mit der Erwartung in den Betrieb kam, dass er alles vorgekaut bekommt und 8 Stunden täglich gecouched wird, mehr oder weniger absichtlich vor die Wand fahren lassen. Er hat dann noch ein Jahr dran gehängt und auf FISYS umgeschrieben...aber nie Initiative entwickelt.

Wenn dir also die Grundlagen fehlen würde ich Gas geben das du genug für einen Start in diese Ausbildung kannst. Die Probezeit wird oft auch genutzt um die Motivation und Lernbereitschaft zu testen.

himitsu 22. Aug 2011 22:12

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wenn überhaupt nichts geht ... wir haben hier eine "Jobbörse" ... eine Anfrage kann nicht schaden und vielleicht ist ja Irgendeine(r) in deiner Nähe, der/die dir etwas Nachhilfe geben kann.

DeddyH 23. Aug 2011 06:59

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1118733)
..., dass er alles vorgekaut bekommt und 8 Stunden täglich gecouched wird, ...

Geiler Job (SCNR^^) :lol:

MrSpock 23. Aug 2011 07:53

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
@biby90: Verwende bitte Groß-/Kleinschreibung, so wie es in den Forenregeln beschrieben ist. Das macht das Lesen einfacher.

Sir Rufo 23. Aug 2011 07:58

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

Zitat von MrSpock (Beitrag 1118787)
@biby90: Verwende bitte Groß-/Kleinschreibung, so wie es in den Forenregeln beschrieben ist. Das macht das Lesen einfacher.

ei jo

denn ich hatte das
Zitat:

sps programmierer
als
Zitat:

Spass Programmierer
gedeutet aber es soll wohl
Zitat:

SPS Programmierer
meinen :lol:

biby90 23. Aug 2011 08:48

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

Du brauchst so ein Buch wie "Delphi für kids"!(
das habe ich ja auch schon zuhause... und auch schon mit gearbeitet. ich mach ja auch viel zuhause.... am wochenende geh ich mit meinem freund datenstrukturen ind den krams durch... abends nach der arbeit(wenn ich nach einer std zugfahrt endlich mal zuhause bin) geh ich die aufgaben noch einmal durch und überleg mir was ich anders machen kann.... meistens zusammen mit meinem liebchen.
ihr habt ja schon recht mit den basics und ich bin ja auch da dran.... ich versuch ja auch immer so viel wie möglich selber zu probieren und bastle recht lange herum bis es funktioniert.... ich denke das ist so ein typisches anfänger problem die man schnell beheben sollte^^

ich schreib ja auch nur hier rein wenn ich was wirklich nicht verstehe oder nicht wieter weiß.... will ja auch nicht dass ihrm eine aufgaben macht^^ bringt mir dann ja nichts... also reine selbstvera**che^^


außerdem denke ich immer zu komplizier... ist eben so ne schwäche bei mir....

biby90 23. Aug 2011 08:51

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
@ Sir Rufo


Tut mit leid :oops:

biby90 23. Aug 2011 09:00

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Zitat:

Wenn überhaupt nichts geht ... wir haben hier eine "Jobbörse" ...
Solange mein Freund noch mit kommt ist das kein Ding....
vielleicht wenn ich Schule habe.... da ist bestimmt einer der das gut drauf hat und sich nach Schulschluss mit mir zusammensetzt

DeddyH 23. Aug 2011 09:06

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Das E-Book vom Delphi-Treff kennst Du bereits? Da geht es zwar eigentlich um Delphi XE Starter, das meiste ist aber auch in älteren Versionen anwendbar.

biby90 23. Aug 2011 09:13

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ja und nein.....
Also ich kenne Delphi-Treff zu mindest... da gibt es ja auch Tutorials und sowas....
ich werde mir direkt mal den Link aufschreiben.

Ihr seid alle echt die Besten:thumb:

biby90 23. Aug 2011 10:03

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
sorry wenn ich jetzt wieder nerven sollte.
Delphi-Quellcode:
procedure TForm1.Label1Click(Sender: TObject);
begin
  if IsFieldEmpty() = true then // was für einen parameter?
  begin
    Label1.Caption:=WriteToField(GPlayer);
    if CheckForWin() = true then // und hier?
    begin
      Label1.Caption:='';
      ShowMessage(IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer:=1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;
Ich weiß einfach nicht was für Parameter ich dort brauche. Alles was ich versucht habe wollte der Compiler nicht, sprich er sagt
Zitat:

[Pascal Fehler] Unit1.pas(157): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
eine kleine Hilfe? Biite ohne Vorwürfe, dass ich diese Aufgabe nicht bearbeiten sollte^^

DeddyH 23. Aug 2011 10:05

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wie sind die Routinen denn implementiert? Übrigens: bitte niemals(!!!) auf true prüfen, das kann in die Hose gehen.
Delphi-Quellcode:
if Dings = true then
//->
if Dings then

if Dings = false then
//->
if not Dings then

biby90 23. Aug 2011 10:11

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Delphi-Quellcode:
function TForm1.CheckForWin(var AIndex: array of string): Boolean;

Delphi-Quellcode:
function TForm1.IsFieldEmpty(var AIndex: String): Boolean;

Delphi-Quellcode:
function TForm1.WriteToField(var Player: Integer): String;
also muss ich die alle umschreiben und auf false prüfen?

himitsu 23. Aug 2011 10:13

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wieso sind diese Parameter eigentlich als VAR deklariert?
Ich vermutemal, daß dort nichts verändert werden soll.

Tja, VAR-Parameter müssen "genau" übereinstimmen.
Ist dort z.B. ein Integer-Parameter vorgegeben, dann muß uch eine Integer-Variable übergeben werden ... wenn nicht, dann kommt eben die Meldung "... stimmt nicht überein ...".

DeddyH 23. Aug 2011 10:15

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wenn Du Var-Parameter deklarierst, dann brauchst Du auch entsprechende Variablen, die Du dann übergibst.
Delphi-Quellcode:
procedure Verdopple(var Zahl: integer);
begin
  Zahl := Zahl * 2;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  x: integer;
begin
  x := 1;
  Verdopple(x);
  ShowMessage(IntToStr(x));
end;
Allerdings ist mir der Sinn der Parameter nicht klar, schon gar nicht, wieso das Var-Parameter sein müssen.

biby90 23. Aug 2011 10:17

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
also könnte ich sie praktisch genommen ohne var schreiben und dann würde das funktionieren?

Zitat:

wieso das Var-Parameter sein müssen.

war eine Vorgabe der Aufgabe. Ich habe es sonst auch nie als Var deklariert.

Zitat:

dann muß uch eine Integer-Variable übergeben werden
also eine lokale Variable, die ich anlegen muss?

himitsu 23. Aug 2011 10:21

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Nur Parameter, welche auch verändert werden sollen, innerhalb der Prozedur, und deren Werte nach außen weitergegeben werden sollen, werden als VAR deklariert.

Alles andere ist einfach falsch, also vom Sinn der Funktion her und würde auch nur Mißverständnisse produzieren, wen man versucht diesen Quellcode zu verstehen.


VAR = veränderbarer Parameter
CONST = unveränderbarer Parameter (auch innerhalb der Prozedur)
(nichts) = nach außen unveränderbar und nach innen veränderbar (als Kopie, welche Delphi anlegt)

Zitat:

also könnte ich sie praktisch genommen ohne var schreiben und dann würde das funktionieren?
Veränderst du in der Prozedur den Wert dieser Parameter und soll der Wert dann auch außerhalb der Prozedur verändert bleiben?

Wenn nicht, dann wird es auch nicht als VAR deklariert.

DeddyH 23. Aug 2011 10:21

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Nochmal: wenn Du Funktionsparameter deklarierst, dann müssen diese auch beim Aufruf befüllt werden (sofern sie keinen Vorgabewert haben, aber das lassen wir jetzt mal außer Acht). Wenn es keine Var- (oder Out-)Parameter sind, dann kannst Du auch Konstanten übergeben, ansonsten brauchst Du eine Variable.

biby90 23. Aug 2011 10:25

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ok ich versuche es mal ohne var.
Ich meld mich wenn ich (mal wieder) nicht weiter komme:wink:

DeddyH 23. Aug 2011 10:33

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Ich habe gerade einen Blick in das verlinkte E-Book geworfen, da werden Parameter sehr schön erklärt (Kapitel 10.5).

biby90 23. Aug 2011 11:03

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ich bin ja heute früher Zuhause dann werde ich das mal studieren:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.
Seite 1 von 5  1 23     Letzte »    

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