So ich bin jetzt denke ich auch fertig und komme mit Kommentaren und Parametercheck auf 210 Zeilen. :P
Edit: Uhhhh 200 Posts :>
Druckbare Version
So ich bin jetzt denke ich auch fertig und komme mit Kommentaren und Parametercheck auf 210 Zeilen. :P
Edit: Uhhhh 200 Posts :>
Kann Brainfuck bzw. Ook! überhaupt argv Parameter aufnehmen? Ich denke, die Sprachen können nur von der späteren Tastatureingabe lesen?
Wenn ich meinen Code kürze ist er auch nur so lang. :) Habs schon getestet.
Theoretisch könnte ich ihn auch nur auf ein par Zeilen kürzen aber wir wollen es ja nicht zu unübersichtlich machen. :D
182 mit input-Validitätsprüfung und noch nicht zwingenden 'Features' [u.A. ist mein bot leicht zufallsgesteuert, damit was Abwechslung ins Spiel kommt xD]
- WORDZitat:
Theoretisch könnte ich ihn auch nur auf ein par Zeilen kürzen aber wir wollen es ja nicht zu unübersichtlich machen.
Naja input hab ich nur so halb geprüft xD ob die länge stimmt, mehr nicht
Ja natürlich kann man das alles in eine lange Zeile schreiben ^^
Aber nein ich hab haufenweise unnützes Zeug rausgeschmissen und unterroutinen eingebaut... :)
Außerdem bin ich noch nicht soooo erfahren was programieren angeht, alles was ich kann hab ich selbst im Internet nachgeschaut, nie irgend nen Kurs besucht, oder das ganze Studiert :/
Und nen kleinen Zufall wollte ich eigentlich auch einbringen, aber habs noch nciht gemacht und werds wahrscheinlich auch nicht gemacht... Wobei ohne einen kleinen Zufall die "Bots" leider immer gleich spielen ^^ und bei 5 spielen immer das selbe Ergebnis raus kommt....
Naja aber die Aufgabe an sich fand ich toll und es hat mir einfach Spaß gemacht mal wieder was zu schreiben :)
Ich kann von mir auch nicht behaupten, dass ich irgendwelche Kurse besuche oder Informatik studiert habe. Ordentliche Bücher wirken jedoch Wunder. :)
Bei dem Parameter prüfe ich btw. folgendes:
-Anzahl der Paramter
-Länge
-Characters
-Steinanzahlen
-Spielfeld voll?
-Spiel schon zuende?
Hab mir sonst noch ein zweites Programm geschrieben, damit ich besser selber gegen meinen Bot spielen kann. :P
Bisher habe ich noch nie gewonnen.
Naja ich überprüfe nicht ganz so viel ^^
Bei mir überprüft er die Länge, setzt danach alles auf Großbuchstaben, sofern jemand mal ein kleines x oder o gemacht hat ^^ und fängt dann an.
Dabei wird dann auch überprüft wie viel Steine gesetzt sind und teilweise auch wo diese sitzen ^^
Wenn das Spielfeld voll ist macht mein Programm einfach nichts, sprich es kommt nichts zurück ^^
Wenn man dem Programm ein volles Spielfeld übergibt ist man selbst schuld und schön blöd xD
Im Nachhinein ist mir zusammen mit meinem Vater, welcher von Beruf aus programmiert und der sich mein Programm mal angucken sollte, noch eine elegantere Lösung eingefallen die mir persönlich auch viel besser gefällt... bzw. ihm ist sie eingefallen :)
Aber da mein Programm auch richtig funktioniert und das ein Coding Contest ist, an dem ich teilnehmen will und das mit meinen Ideen werde ich bei meiner Version bleiben xD
Hier mal ein kleines Script um die KIs zu testen ;)
zeigt
1) den nächsten möglichen Zug an
2) wieviele Gewinnchancen X bzw. O nach diesem Zug haben
Bsp:
x in der Mitte:
die letzten 3 Felder frei:
erster Zug:
Nutzung:
entweder wie in Beispielen in der Konsole:
xxostats.exe "___FELD___" (Feld wie in der Aufgabe vorgegeben)
oder wer das Script selber ausführen möchte (und SWI Prolog installiert hat):
Source (SWI Prolog):
oder
NoPaste - EBFE @ 19.04.10 2:40:45 [prolog] (war der erste Googletreffer für NoPaste mit Prolog Syntaxhighlighting)
Compilierte Binary:
http://ebfe.de.vu/diverses/xxostat.zip
PS: es braucht bei einem leeren Feld ein paar Sekunden Zeit, bis die Statistik fertig ist (es ist halt unoptimiertes Prolog und kein C - dafür dürften die C-ler bei der Entwicklungszeit so richtig vor Neid erblassen :D. Hier wurde im Bot die KI einfach durch einen "Statistikauszähler" ersetzt und ein PrettyPrinter für die hübsche Ausgabe der Spielzüge/Statistik hinzugefügt.)
Jemand hat mich deswegen angeschrieben und ich habe ihm zugesichert, dass ich für esoterische Sprachen auch gerne Ausnahmen mache bei der Parameterübergabe und das Testscript auf ihre Möglichkeiten anpasse - natürlich nur aus Spass und Respekt, dass sich jemand wirklich so einen Aufwand macht.