Re: Automat
Verfasst: Do Jan 14, 2016 5:16 pm
Hä?? Ich raff nach wie vor den Unterschied zwischen meinem und deinem nicht
Code: Alles auswählen
$field = createField();
$result = evaluate( $field );
printResult( $result );
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...
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 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
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.
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
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?
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.
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?