KI Contest 4-Gewinnt
Übersicht

![]() |
SmilyBetreff: KI Contest 4-Gewinnt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Huhu,
Parallel zum Code-Compo würde ich gerne einen KI-Wettbewerb starten. Und zwar geht es diesmal um ein 4-Gewinnt Spiel. Regeln: ![]() ![]() 1 = spieler 1 2 = spieler 2 ![]() 0 = leer 1 = spieler 1 2 = spieler 2 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Ich hoffe mal auf viele Teilnehmer Sollte es noch fragen geben bzw sollte ich was wichtiges Vergessen haben Postet einfach ^^ Ausserdem würde ich einen Mod gerne Bitten den Threat zu pinnen. Das grüst: Edit: Ich hab noch einen kleinen bug korrigiert. Code: [AUSKLAPPEN] Graphics 800,600,16,2 Dim feld(6,5) SeedRnd MilliSecs() Repeat Color 0,0,200 Rect 10,20,640,560 Color 0,0,0 For x = 0 To 6 For y = 0 To 5 Select feld(x,y) Case 0 Color 0,0,0 Case 1 Color 255,0,0 Case 2 Color 255,255,0 End select Oval x*90 + 20,y*90 + 30,80,80 Next Next Select p Case 0 Color 255,0,0 Case 1 Color 255,255,0 End Select Oval 700,5,80,80 Color 255,255,255 Text 700,100, z Flip Cls If Not win put(KI(p),p+1) p = Not p z = z + 1 win = check() Else Select win Case 1 Color 255,0,0 Case 2 Color 255,255,0 End Select Text 0,0,"Spieler "+win+" gewinnt" End If Until KeyHit(1) Function put(x,t) For y = 5 To 0 Step -1 If Not feld(x,y) feld(x,y) = t Return 1 End if Next End Function Function check() For x = 0 To 6 For y = 0 To 5 Color 0,0,255 If checkline(x,y,0,1) Return feld(x,y) If checkline(x,y,1,1) Return feld(x,y) If checkline(x,y,-1,1) Return feld(x,y) If checkline(x,y,1,0) Return feld(x,y) Next next End Function Function checkline(x,y,xm,ym) p = feld(x,y) If Not p Return 0 For d = 1 To 3 If x+d*xm > 6 Return 0 If y+d*ym > 5 Return 0 If feld(x+d*xm, y+d*ym) <> p Return 0 Next Return 1 End Function ;--------------------- ;- Hier kommt die KI - ;--------------------- Function KI(p) If Not p Return Rand(0,6) Else FlushKeys() Repeat for k = 2 To 8 If KeyDown(k) Return k-2 Next Forever End if End Function |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
- Zuletzt bearbeitet von Smily am So, Apr 29, 2007 16:53, insgesamt einmal bearbeitet
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hat der Gewinner was davon? Gibt es Preise etc? | ||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich weiß nicht... dazu ist 4 Gewinnt zu einfach um so einen Wettbewerb zu starten
Das wird gelöst, indem man rekursiv alle Möglichkeiten durchspielt und dann die Felder mit den besten Chancen einen besseren Score erhalten... (natürlich erhalten die nächsten Zuge einen höheren Score als die übernächsten usw) Bei einem gleichen Score entscheidet Zufall... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geil wär's ja gewesen, wenn jeder Teilnehmer, vorallem Anfänger, selbst auf eine solche Überlegung kommen mussten. ![]() |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
irgendwie schon...man kann den contest auch im vorfeld langweilig machen... | ||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Spielverderber...
Aber auch das kann man noch weiter verbessern. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich stimme TheShadow zu...
aber KI-Contest ist, finde ich, ne super Idee! Ich wäre aber dafür, dass die Teilnehmer nicht für ein "Brettspiel" (oder als was man Vier-Gewinnt bezeichnen soll) die KI schreiben müssen, sondern für ein Echtzeit(-"action"-)spiel. (Vielleicht beim nächsten mal ![]() Beispiel: zwei Figuren bewegen sich auf einem Spielfeld und versuchen, einen Ball ins gegnerische Tor zu schießen. Das Spielprinzip sollte simpel sein. Jemand erstellt dafür einen Code, der alle Berechnungen übernimmt, bis auf die Steuerung der Figuren. Dafür muss eine KI programmiert werden, die eben Einschränkungen hat wie: "Maximale Geschwindigkeit: 4 Pixel / Schleifendurchlauf". Der Veranstalter lässt dann die Teilnehmenden KIs im KO.-System gegeneinander antreten; die beste KI gewinnt!! Witzig wäre dann eine Replay-Funktion, mit der der Veranstalter die Spiele der Community zu Verfügung stellt. Leider scheitert so etwas vermutlich an der schlechten Beteiligung innerhalb des Forums. Wenn Interesse bestehen würde - ich könnte sowas gerne in die Hand nehmen. Ach, ich fantasiere zu viel ![]() Möchte dir natürlich auch nicht deinen Contest madig machen, Smily! So eine KI für 4-Gewinnt ist sicherlich ne Herausforderung, vielleicht schaffe ich es ja, mitzumachen ![]() |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Spielverderber...
Sehe ich nicht so... wer will kann es doch trotzdem coden - da ich keine Codes geliefert habe... außerdem findet man solche Infos sicherlich auch im Internet... Interessanter wäre z.B. Kartenspiel - da man nicht nur seine Farbe hat wie in 4 Gewinnt, sondern verschiedene Karten die man zu untersch. Zeiten nutzen kann - außerdem kann man die Taktik wählen - etwa aggressiv oder ähnlich... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du meinst so was wie Magic, hab ich recht!
Natürlich ein bisschen vereinfacht 0o |
||
Twitter
Download Jewel Snake! Windows|Android |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auch wenn man die prinzipielle Idee kennt von KI in deterministischen Spielen (4 Gewinnt, othello, schach etc), so gibt es doch ein elementares Problem:
Die implementation des Systems ist in allen fällen simple. Das wirklich komplizierte sind die Bewertungsfunktionen (wie gut ist eine bestimmte Position) und vor allem die implementation des Spielbaumes um rekursiv durchzugehen bzw. dessen optimierungen. Sagen wir die KI hat nur 10ms zeit zum entscheiden da nutzt es nix wenn man weiss wie es prinzipiell geht. Damit könnte man bestenfalls random setzen wenn man keinen Plan von den nötigen Datenstrukturen und Algos erarbeitet oder geniale Ideen hat wie man obige grundsätzliche Überlegung überhaupt umsetzen könnte. Aber wenn ihr euch wirklich mit AI ärgern wollte: Robocode ![]() Bzw. den "Blitz Pendant" welcher mal von jemandem im englischen Forum geschrieben wurde. Prinzip: "Programmier deinen Robo und lass ihn in einer Arena AI gegen AI fetzen" |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
au ja au ja, robocode auch hier im forum! ![]() |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
würde ich tausend mal besser finden als die 4 gewinnt langeweile ![]() Könntest du den Contest nochmal neu starten? *lieb guck* |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider muss ich gestehen, dass ich gerade nicht so recht weis was ihr meint ^^ also müsste dann jemand anderes den Contest Leiten. | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er meint so eine Arena wo zwei Roboter oder was auch immer gegeneinander kämpfen, mit schützenden Würfeln oder sowas wo sie sich dahinter verstecken können... Sowas wie Deathmatch halt. Die Beste Umsetzung der Simulation und der KI gewinnt... bzw. es wird wie gewohnt abgestimmt | ||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieso abgestimmt? Die KIs werden gegeneinander antreten. Die bessere KI gewinnt den Kampf! | ||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
JA! Dann machen wir ein kleines KI-tunier!
Dann würd sogar ich mir überlegen mitzumachen ![]() Aber es wird schwer, 2 KI's in einem Code unterzubrigen! Dann müssten wir uns wahrsscheinlich alle absprechen! |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau... wie soll das funktionieren wenn jemand unterschiedliche variablen oder gar die selben variablen benutzt?
Also ich möchte keinesfalls die Person sein, die das in einem Code unterbringt... Es ist ja auch nicht so, dass bei jeder KIcompo nur 2 teilnehmen... was wenn es 20 Teilnehmer sind?... das ist verrückt... Praktisch gesehen total sinnlos ![]() ich bin fürs abstimmen |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde sagen, jeder macht seine Funktion, die einen Spieler bewegt!
dieser Spieler wird der funktion übergeben, genau wie das Spielfeld (zur not auch global) Dann müssten wir uns noch bei den Kollisions Typen einiegen. Es sollte auch eine Globale Geschwindigkeit geben, wie schnell die Spieler laufen können, und so weiter........... Ich schlage vor, das jeder Teilnehmer eine ID bekommt, und sie dann in seinen Variablen verwendet (z.B. If 1_irgendwas=122 Then ....) oder z.B. If 2_irgendwas=122 Then ....) |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Funktionsprinzip stelle ich mir eigentlich ganz einfach vor!
Der Organisator programmiert ein Spiel. Den Code stellt er allen Teilnehmern zu Verfügung. Der Code ist soweit komplett, bis auf die Steuerung der Spielfiguren, die der Einfachheit halber in einer Funktion untergebracht ist. Die Wettbewerbsteilnehmer haben nun die Aufgabe, eine KI zu programmieren, die eine der Figuren steuert. Es müssen natürlich klare Regeln feststehen, was erlaubt ist für die KI. Es wird also nicht möglich sein, irgendwelche beliebigen Variablen zu manipulieren, um zum Beispiel die Lebensenergie eines Spielers zu senken, oder ähnliches. Einzig solche Variablen, die für die Steuerung des Spielers notwendig sind, dürfen verändert werden (Positionsvariablen...) Klar? ![]() Aber eigentlich sollte dieser Thread hier nicht dazu missbraucht werden, über andere Contests zu diskutieren, schließlich läuft dieser hier ja noch. ![]() edit: Ups, ich sehe gerade, dass ja schon ein Thread darüber erstellt wurde... |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn ihr alle nur sagt "man sollte" wird nie was draus... und das var system ist ganz leich...
$username_varname z.B. schnuff_action% = 10 dann muss man nurnoch includen ![]() und dann halt was festes wie schnuff_update() oder schnuff_initializie(X,Y)... ich halte nicht viel von Ki (habe aber auch noch nie eine geproggt) |
||
Programmers dont die. They gosub without return... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group