Automat
Re: Automat
Hä?? Ich raff nach wie vor den Unterschied zwischen meinem und deinem nicht
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Automat
Eine Funktion soll ein Feld erzeugen und zurückgeben. Fertig. Diese Funktion soll das Feld nicht evaluieren.
Eine Funktion soll ein Feld evaluieren und ein Ergebniswert zurückliefern. Diese Funktion soll kein Ergebnis anzeigen und auch keine Funktion aufrufen, die ein Ergebnis anzeigt. Diese Funktion soll nur ein Ergebnis zurückliefern.
Eine Funktion soll einen Ergebniswert ausdrucken. Diese Forum hat überhaupt keine Ahnung, was ein Feld ist.
Eine Funktion soll ein Feld evaluieren und ein Ergebniswert zurückliefern. Diese Funktion soll kein Ergebnis anzeigen und auch keine Funktion aufrufen, die ein Ergebnis anzeigt. Diese Funktion soll nur ein Ergebnis zurückliefern.
Eine Funktion soll einen Ergebniswert ausdrucken. Diese Forum hat überhaupt keine Ahnung, was ein Feld ist.
Code: Alles auswählen
$field = createField();
$result = evaluate( $field );
printResult( $result );
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Automat
Also ist der einzige Unterschied zu meinem das ich ne Funktion hab die das Ergebnis anzeigt und du nicht oder wie?
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Automat
Du hast eine schweigende Funktion, die ein Feld evaluiert.
Was bedeutet das?
Du kannst ein Feld erzeugen, dass in der oberen Reihe gleiche Zahlen hat und statt das Ergebnis auszugeben, kannst Du es testen.
Damit kannst Du Deine Evaluate-Funktionen entwickeln und gegen die Aufgabe testen. Und dann kommt das eigentliche Problem: Zufallsfelder reinwerfen.
Was bedeutet das?
Du kannst ein Feld erzeugen, dass in der oberen Reihe gleiche Zahlen hat und statt das Ergebnis auszugeben, kannst Du es testen.
Code: Alles auswählen
$feld = createField( "toprow" ); // da kommt immer das ganz bestimmte Feld raus.
$result = evaluate( $feld );
test( $result, "onerow" ); // richtig erkannt?
$feld = createField( "diagonaldown" ); // da kommt immer das ganz bestimmte Feld raus.
$result = evaluate( $feld );
test( $result, "diagonal" ); // richtig erkannt?
usw...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Automat
Und woher kennt der die Funktion "createField"?
Aber um ehrlich zu sein raff ich immer noch nicht was mir das ganze bringen soll außer mich zu verwirren
Also ein Feld ist 3*3 Bilder groß, da sind wir uns doch einig oder? Dieses Feld soll in einer eigenen Funktion erstellt und angezeigt werden, das was bei mir jetzt "Feld" und "Bilder" machen soll quasi in eine Funktion richtig?
Dann erstelle ich eine neue Funktion die herausfindet ob ich mit der Bilderkonstellation die das "Feld" mir anzeigt gewonnen habe jedoch zeigt die Funktion nichts an sonder ist nur dazu da um nachzusehen ob wir gewonnen haben oder nicht. Somit haben wir nun die Funktionen "Feld" und "evaluieren" also 2 Funktionen
Dann erstelle ich noch eine Funktion, also die dritte nun und diese Funktion zeigt mir dann an ob ich gewonnen habe
So meintest du das doch oder? Zumindest verstehe ich es so^^
Dann ist aber jetzt nach wie vor die Frage wo ist der Unterschied zu meinem jetzigen Code? Angesehen davon das ich zum bestimmen und anzeigen der Bilder in Feld 2 Funktionen benutze.
Schließlich habe ich auch die Funktion "evaluieren" die nur dazu da ist um festzustellen ob mit der Bilderkonstellation etwas gewonnen wurde oder nicht
Die Funktion "Ausgabe" zeigt dann an was Sache ist
Aber um ehrlich zu sein raff ich immer noch nicht was mir das ganze bringen soll außer mich zu verwirren

Also ein Feld ist 3*3 Bilder groß, da sind wir uns doch einig oder? Dieses Feld soll in einer eigenen Funktion erstellt und angezeigt werden, das was bei mir jetzt "Feld" und "Bilder" machen soll quasi in eine Funktion richtig?
Dann erstelle ich eine neue Funktion die herausfindet ob ich mit der Bilderkonstellation die das "Feld" mir anzeigt gewonnen habe jedoch zeigt die Funktion nichts an sonder ist nur dazu da um nachzusehen ob wir gewonnen haben oder nicht. Somit haben wir nun die Funktionen "Feld" und "evaluieren" also 2 Funktionen
Dann erstelle ich noch eine Funktion, also die dritte nun und diese Funktion zeigt mir dann an ob ich gewonnen habe
So meintest du das doch oder? Zumindest verstehe ich es so^^
Dann ist aber jetzt nach wie vor die Frage wo ist der Unterschied zu meinem jetzigen Code? Angesehen davon das ich zum bestimmen und anzeigen der Bilder in Feld 2 Funktionen benutze.
Schließlich habe ich auch die Funktion "evaluieren" die nur dazu da ist um festzustellen ob mit der Bilderkonstellation etwas gewonnen wurde oder nicht
Die Funktion "Ausgabe" zeigt dann an was Sache ist
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Automat
Du schreibst sie?sashpta hat geschrieben:Und woher kennt der die Funktion "createField"?
Dein Problem ist die korrekte Evaluierung. Ich lotse Dich zu Test-Driven-Development. Du legst ein Feld fest, wo Du das Ergebnis kennst, lässt den Computer es bewerten und guckst nach, ob die Bewertung richtig ist.sashpta hat geschrieben:Aber um ehrlich zu sein raff ich immer noch nicht was mir das ganze bringen soll außer mich zu verwirren
Das geht aber nur, wenn Du die Funktionen voneinander trennst.
Das Anzeigen des Feldes habe ich hier nicht berücksichtigt. Schreib eine Funktion, die das macht, so dass der Kern Deines Programms halt erstellen, anzeigen, bewerten und Ergebnis anzeigen ist.sashpta hat geschrieben:Also ein Feld ist 3*3 Bilder groß, da sind wir uns doch einig oder? Dieses Feld soll in einer eigenen Funktion erstellt und angezeigt werden, das was bei mir jetzt "Feld" und "Bilder" machen soll quasi in eine Funktion richtig?
Prinzipiell ja, bis auf dass die Funktion createField() da halt noch ist, die das erstellen des Feldes kapselt.sashpta hat geschrieben:Dann erstelle ich eine neue Funktion die herausfindet ob ich mit der Bilderkonstellation die das "Feld" mir anzeigt gewonnen habe jedoch zeigt die Funktion nichts an sonder ist nur dazu da um nachzusehen ob wir gewonnen haben oder nicht. Somit haben wir nun die Funktionen "Feld" und "evaluieren" also 2 Funktionen
Dann erstelle ich noch eine Funktion, also die dritte nun und diese Funktion zeigt mir dann an ob ich gewonnen habe
So meintest du das doch oder? Zumindest verstehe ich es so^^
evaluate() darf keine Ausgabe machen, also auch nicht Ausgabe() rufen.sashpta hat geschrieben:Dann ist aber jetzt nach wie vor die Frage wo ist der Unterschied zu meinem jetzigen Code? Angesehen davon das ich zum bestimmen und anzeigen der Bilder in Feld 2 Funktionen benutze.
Schließlich habe ich auch die Funktion "evaluieren" die nur dazu da ist um festzustellen ob mit der Bilderkonstellation etwas gewonnen wurde oder nicht
Die Funktion "Ausgabe" zeigt dann an was Sache ist
Es soll das Ergebnis zurückmelden.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Automat
Oke also fällt das mit dem Zufallsprinzip komplett raus? Also nehme ich mein Feld was ich habe und lege direkt fest welche Bilder das sind somit habe ich dann die Funktion "Feld" die 9 Bilder anzeigt oder soll das Anzeigen gar nicht sein dass nur ich weiß welche Bilder das sind?Xin hat geschrieben:Dein Problem ist die korrekte Evaluierung. Ich lotse Dich zu Test-Driven-Development. Du legst ein Feld fest, wo Du das Ergebnis kennst, lässt den Computer es bewerten und guckst nach, ob die Bewertung richtig ist.
Das geht aber nur, wenn Du die Funktionen voneinander trennst.
Dann erstelle ich eine neue Funktion, die die Bilderkonstellation bewertet und die Bewertung in einer Variable speichert. Dann hab ich eine Funktion/nen Code(??) der das Ergebnis anzeigt. Und dann sehe ich ob das alles klappt wies soll weil ich ja weiß was rauskommen soll
Ist das richtig so?
Was soll denn nun das Ergebnis anzeigen?Xin hat geschrieben:
evaluate() darf keine Ausgabe machen, also auch nicht Ausgabe() rufen.
Es soll das Ergebnis zurückmelden
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Automat
Zu Beginn ja. Du entwickelst Deine evaluate-Funktion mit bekannten und unveränderlichen Daten. Wenn sie funktioniert, dann erst lässt Du die Zufallsdaten darauf los.sashpta hat geschrieben:Oke also fällt das mit dem Zufallsprinzip komplett raus?Xin hat geschrieben:Dein Problem ist die korrekte Evaluierung. Ich lotse Dich zu Test-Driven-Development. Du legst ein Feld fest, wo Du das Ergebnis kennst, lässt den Computer es bewerten und guckst nach, ob die Bewertung richtig ist.
Das geht aber nur, wenn Du die Funktionen voneinander trennst.
Richtig, Du legst das Feld fest. Ob die Anzeige machst, sei Dir überlassen. Zum Testen der Anzeigefunktion sicher nicht verkehrt.sashpta hat geschrieben:Also nehme ich mein Feld was ich habe und lege direkt fest welche Bilder das sind somit habe ich dann die Funktion "Feld" die 9 Bilder anzeigt oder soll das Anzeigen gar nicht sein dass nur ich weiß welche Bilder das sind?
Du wirst feststellen, dass Dich immer weniger interessiert, was da getestet wird. Am Anfang schreibt man vielleicht noch eine Zeile, ob der Test erfolgreich war oder nicht, die meisten Test-Programme schreiben pro erfolgreichen Test einen Punkt, damit man sieht, dass das Programm überhaupt läuft. Was man braucht ist am Ende ein "OK", bzw. eigentlich braucht man auch das nicht, man braucht die Info, wenn was fehlgeschlagen ist und was fehlgeschlagen ist.
Yepp, klingt gut.sashpta hat geschrieben:Dann erstelle ich eine neue Funktion, die die Bilderkonstellation bewertet und die Bewertung in einer Variable speichert. Dann hab ich eine Funktion/nen Code(??) der das Ergebnis anzeigt. Und dann sehe ich ob das alles klappt wies soll weil ich ja weiß was rauskommen soll
Ist das richtig so?
Wie oben beschrieben.sashpta hat geschrieben:Was soll denn nun das Ergebnis anzeigen?Xin hat geschrieben:
evaluate() darf keine Ausgabe machen, also auch nicht Ausgabe() rufen.
Es soll das Ergebnis zurückmelden
Code: Alles auswählen
$field = createField();
$result = evaluate( $field );
printResult( $result ); // <- Ergebnis anzeigen.
Code: Alles auswählen
$field = createField();
printField( $field ); // Feld ausgeben
$result = evaluate( $field );
printResult( $result ); // <- Ergebnis anzeigen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Automat
Aber die Ausgabe des Ergebnisses ist nicht in ner Funktion die ist einfach so ein Code oder?
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Automat
Den Satz verstehe ich nicht.sashpta hat geschrieben:Aber die Ausgabe des Ergebnisses ist nicht in ner Funktion die ist einfach so ein Code oder?
Mehr Punktion, mehr Definition. "So ein Code" ist nichts, was ich abnicken oder ablehnen kann.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.