Laden...

Schach-KI "Battle"

Erstellt von Mentor49 vor 15 Jahren Letzter Beitrag vor 15 Jahren 7.435 Views
M
Mentor49 Themenstarter:in
35 Beiträge seit 2009
vor 15 Jahren
Schach-KI "Battle"

Hey,
mir ist vorhin was witziges in den Sinn gekommen.
Man könnte doch mal ein Battle zwischen 2 Schach-KI's machen.

Das heißt, 2 Leute programmieren, jeder für sich, ein Schachprogramm.
(Also jeder programmiert die Schach-KI, die immer ausrechnet, welcher der klügste Zug grade ist).
Dann programmiert jemand noch einen Server.
Die Schachprogramme beider Gegner verbinden sich dann zum Server.
So dann wird noch entschieden wer anfängt (Wer Weiss ist).
Der fängt dann als erster an, einen Zug auszuführen.
Also das Programm entscheidet sich für seinen ersten Zug, sendet diesen an den Server, der Server wertet aus, und schickt das Resultat an beide Clients (Gegner).
Dann ist die Gegenseite dran.
Alles läuft halt über diesen Server, der selbstverständlich alle Spielregeln einprogrammiert hat.

Aber ich weiß...allein den Server mit den ganzen Spielregeln zu programmieren wäre ne ziemliche Arbeit.
Außerdem müsste man dann noch ein eigenes Protokoll erfinden, damit die Clients mit dem Server auch kommunizieren können.
Und dann "einfach mal so" ne Schach-KI zu programmieren ist auch sehr kompliziert.
Also beim Server würde ich sehr gerne mitarbeiten, da ich viel Erfahrung im Thema Netzwertechnik habe, aber selbst einen "Schachclient" zu programmieren..nep, das würde ich niemals hinbekommen 😃

Eigentlich weiß ich auch, dass sehr wahrscheinlich keiner die Zeit und Lust hat bei sowas mit zu machen, aber ich wollte meine Idee einfach mal zu "Papier" bringen und euch fragen, wie ihr diese Idee theoretisch findet 😉

Lg Chris

1.346 Beiträge seit 2008
vor 15 Jahren

Ich finde die Idee auch nicht schlecht. nur hat nicht jeder Zeit mal eben eine Schach-KI zu schreiben. Ich würde mit was einfacherem nachdenken. Tic-Tac-Toe oder 4-Gewinnt.

Gruß pdelvo

M
Mentor49 Themenstarter:in
35 Beiträge seit 2009
vor 15 Jahren

Tic-Tac-Toe oder 4-Gewinnt.

Bei Tic Tac Toe sehe ich das Problem, dass es fast identische Intelligenzen werden, die immer Unentschieden spielen würden.
4-Gewinnt ist aber auch ne sehr gute Idee.
Ich glaub, ich werde mich bald einfach mal dran, einen Spiele-Server fürn 4-Gewinnt-Spiel zu programmieren, vielleicht finden sich ja dann Leute die Bock haben Clients (KI's) zu schreiben. 😃
Lg

946 Beiträge seit 2008
vor 15 Jahren

Für Testzwecke/Vergleiche kannst du auch ein paar KI's aus Vier gewinnt mit Ki! verwenden.
Die sind auf jeden Fall schlagbar.

mfg
SeeQuark

1.130 Beiträge seit 2007
vor 15 Jahren

Bei deinem System wäre es kein Fairer Wettbewerb, wenn die KIs auf verschidenen rechnern laufen. Je mehr Berechnungen eine KI durchführen kann, desdo besser spielt sie. (klar, auch Das hat seine grenzen.) Wenn einer aber auf einem netbook 1,6ghz 1 Kern und ein anderer auf nem 3,8Ghz Quadcore antritt, ist das auf keinen fall fair.

Was ich mir eher vorstellen kann, ist ein Wettbewerb, einen Motor für z.B. Arena zu schreiben.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

N
335 Beiträge seit 2006
vor 15 Jahren

Hallo,

ich weise mal auf zwei bereits vorhandene Spiele / Konzepte dieser Art hin:
http://antme.net/ - Programmiere eine Ameisen KI und vergleiche deinen Highscore mit anderen (.NET)
http://www.robotbattle.com/ - Programmiere eine Roboter KI und trete gegen andere an (Von dieser Variante gibt es zahlreiche Klone, bzw. ähnliche Projekte)

Mfg NeuroCoder

179 Beiträge seit 2006
vor 15 Jahren

Hier gibts so eine Challenge mit Schiffe-Versenken KIs

268 Beiträge seit 2008
vor 15 Jahren

Wir könnten ja auch so eine "Kampfumgebung" Selbst Entwickeln, also wir von Mycsharp. Wir könnten uns ein kleines Spiel überlegen und dann eine Umgebung Proggen und dann unsere KI's gegeneinander kämpfen lassen.... das fänd ich ganz Interessant.

MFG Scarecraft

Name: Scarecraft
Language:C#
learning since:winter 2007
IDE: Visual Studio 2005/08 Professional Editon
Skill:Medium
qualifications: MCP - Microsoft Certified Professional
Homepage : FX RPG Maker

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo Scarecraft,

die richtung klingt recht interressant aber es wäre ja kein direkt mycsharp Projekt sondern etwas was aus dem dem mycsharp forum entstanden ist.. es muss ja jeder selber wissen wo er mitmachen mag .. 😃 Aber die Idee ist echt cool ich denke es mal ein wenig weiter wie es Sinn macht.

Man baut eine flexible Serverstruktur wo man verschiedene Spiele Spielen lassen könnte. Da stellt man einen Server ins Netz an dem wir z.b. testen ob die alles läuft und die Programmierer dafür testen können. Und dann müssen die Programme eingeschickt werden und werden vom Projekt Team die Clients auf identischer Computer-Hardware und Betriebssystem-Versionen laufen. Das es z.b. Jede Woche oder jeden Monat je nach Nachfrage Liga-Spiele machen kann. Und der Server im Netz für Testspiele und Testzenarien dasteht. Ich z.b. hätte keine Probleme 2 Identische Computer mit der selbern BetriebssystemVersion bereitzustellen um z.b. am Wochenende zu testen. (Arbeite in einem EDV-Systemhaus). So wäre es eine wirklich gute Basis. Ich hätte interresse die Serverstruktur mit zu bauen und das ganze anzugehen. Hätte auch nen V-Server um für den Anfang den Testserver zu stellen. Weiteres interresse oder Vorschläge?

Gruß Kaji

1.346 Beiträge seit 2008
vor 15 Jahren

Wow. Das sieht hier ja richtig gut aus. Ich würde auch meinen PC zur verfügung stellen 😁 Es ist ein Quad Core verbaut und er sollte genug Power bieten. Leider kann er nicht 24/7 laufen. Aber sonst gerne.

Gruß pdelvo

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo pdelvo,

um das natürlich richtig zu machen sind "normale user pc" nicht geeignet.. man brauch 2 identische rechner sprich hardware und betriebssysteme identisch.. Aber wie gesagt wäre das kein Problem für mich sowas am Wochenende bei meiner Firma zu machen da haben wir das alles. Weil wegen der rechnenleistung könnte der eine oder andere mit seinem Client bevorteilt werden, ich würde das wenn dann schon richtig machen wie die das auch bei AntMe gemacht haben.

Gruß Kaji

1.346 Beiträge seit 2008
vor 15 Jahren

Das war nur so ne Schnapsidee. Es ist natürlich besser 'echte' Server zu nehmen.

Gruß pdelvo

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo pdevlo,

es geht dabei nicht um Server sondern Clients. Der Server hat bei soetwas nicht viel zu tun außer zu Prüfen ob es ein gültiger Zug ist und wie die Situation ist. ( Bei Schach Matt oder ähnliches). Die Clients sind das entscheidende. Bei einem Schachprogramm sind die ergebnisse wie bereits gesagt besser wenn man länger rechnet. Darum identische Client Hardware und installationen.

Gruß Kaji

1.346 Beiträge seit 2008
vor 15 Jahren

Es wäre doch besser die KI's auf dem selben Rechner laufen zu lassen. Dann ist die Hardware konfiguration gleich.

Gruß pdelvo

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo,

Dann klaut das eine Programm die Resourcen des anderen Programms weil die ja die ganze Zeit rechnen, nacheinander ausführen geht ja nicht. Daher ist die sauberer Trennung mit der selben Hardware und der selben Software das beste, so haben beide die selben vorraussetzungen.

Gruß Kaji

1.346 Beiträge seit 2008
vor 15 Jahren

Dann sollte man das so machen, dass die KIs, wenn sie nicht am zug sind, im leerlauf sein müssen. und, dass sie nur eine bestimmte anzahl an arbeitsspeicher verbrauchen dürfen. sonst werden sie disqualifiziert.

Gruß pdelvo

K
593 Beiträge seit 2007
vor 15 Jahren

Warum den dass? Ist ja auch blöd, gerade diese leerlaufzeiten kann man ja optimal nutzen und auch menschen in dieser Zeit. Das ist ein extremer Aufwand das auch zu überwachen und zu kontrollieren. Es machen nicht ohne grund Leute wie bei AntMe das mit identischen Clients, dass ist die einfachste und absolut sauberste möglichkeit. Es soll ja wie bei Menschen sein. Nur das wir hier den unterschied im IQ wegmachen können und das auf das selbe Niveau machen können. ( durch selbe Rechenleistung ) 2 Clients mit selber Hardware und dem selben im Image und eine Server der als "Richter" fungiert.

Gruß Kaji

1.346 Beiträge seit 2008
vor 15 Jahren

Oder halt jedem Clienten 2 kerne gewähren. Das sollte ja auch reichen.

Gruß pdelvo

K
593 Beiträge seit 2007
vor 15 Jahren

Kannst du mir mal erklären was du gegen 2 getrennte Rechner hast wie alle diese Computerduelle ausgeführt werden? Wenn du es einem machst hast du immer das Problem das du alles kontrollieren musst und wenn du etwas übersiehst und deswegen der andere verloren hat ist auch fürn arsch.. weil das andere programm kann ein anderes auch gezielt beeinflußen. Du hast immer ein Problem, das einzigste was möglich ist bei einem Rechner 2 VM´s mit den selben bedingungen zu starten. Aber das schönste sind 2 Rechner, du musst nicht alles kontrollieren das alles richtig läuft und das das eine Programm nicht das andere "kaputt" macht. Sonst werden die austragungen immer angefecht.

Gruß Kaji

R
104 Beiträge seit 2006
vor 15 Jahren

Das schreit doch nach Go!

Ist sogar ein Forschungsschwerpunkt und nicht so ausgelutscht wie Schach und vier gewinnt!

Nevu - Intelligente Maschinen, die Zukunft alles rund um das Thema Künstliche Intelligenz!

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo zusammen,

nach meiner unmaßgeblichen Meinung seid ihr gerade dabei das Projekt derart zu überfrachten, dass ihr den Erfolg in Gefahr bringt. Setzt euch realistische Ziele und träumt nicht von der eierlegenden Wollmilchsau. Schreibt erstmal ein vernünftiges Vier-Gewinnt-Area-Programm für einen Stand-Alone-Rechner. Und selbst dafür braucht es eine Person, die sich der Sache annimmt und sie beharrlich vorantreibt.

herbivore

1.130 Beiträge seit 2007
vor 15 Jahren

das eine Programm nicht das andere "kaputt" macht.

Das würde es doch grade noch dynamischer und spannender machen 😁 , olbwohl: ein das wäre dann kein reiner Schachwettbewerb mehr.

Mal ernsthaft: man könnte bei einem wettbewerb auch einfach reflektor nehmen und nach "verdächtigem" code suchen.

Ich bin nach wie für für ein Programm, dass die KI´s aus dlls laden kann und die dann gegeneinander antreten lassen kann. Also sowas wie Arena (siehe oben für den link) oder mein reversi.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo,

ja es stimmt das das ganze viel zu sehr ins detail ging und hin und her. Naja jetzt ist Ostern da werde ich nicht soviel Zeit haben aber danach werde ich mal meine Idee umsetzen weil es mir im Stil wie AntMe sehr gefällt mit getrennten Rechner und einen Testserver im Netz wo man sich messen kann. Es wird dann erstmal auf den Testserver hinauslaufen und einem kleinen Testprogramm, nen TicTacToe sollte für den Anfang gut sein zu testzwecken da es hier im Forum schon einige KI´s gibt um sie zu benutzen sodass der Schwerpunkt erstmal auf den Server liegen kann. Ich versuche bis nächstes Wochenende mal eine erste Version zu veröffentlich!

Wer Idee oder Interresse hat mit zu machen kann mir ja gerne ne PM schreiben oder nen Extra Thread aufmachen weil es eigentlich nicht hierrein gehört.. Der Author hatte ja doch etwas anderes im Sinn.. 😃

Gruß Kaji