Hallo,
mein aller erstes Sinnvolles Programm in C# möchte ich hier kurz vorstellen.
Es ist ein Vier Gewinnt mit einem Computergegner.
Da er sehr einfach gestrickt ist, muss er eine Weile nachdenken um überhaupt eine Herrausforderung zu sein 😄.
Ihr dürft nur Zahlen eingeben, ansonsten stürtzt es ab. Ich weiß noch nicht genau wie ich dies ändern kann.
Sagt mal bescheid, wie ihr die Spielstärke der Ki einschätzt
Mit freundlichen Grüßen
Marcel Richter
Nevu - Intelligente Maschinen, die Zukunft alles rund um das Thema Künstliche Intelligenz!
Hallo Marcel
Sieht gut aus, nur was rechnet der so lange rum?
Kannst du vielleicht noch den Quellcode anhängen,
würde mich interessieren, wie du die KI implementiert
hast.
Bei diesem Speed 8o
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Es ist die einfachstmögliche Imlementierung des NegaMax Prinzip.
Kurzgesagt:
Die ki geht alle Varianten durch die mt 7 Spielzügen möglich ist und bewertet die Stellungen es ergeben sich etwa 8^7 Stellungen die bewertet werden müssen. Etwas mehr als Zwei Millionen!
Lerns nicht vom Noob sonern von Wiki:http://en.wikipedia.org/wiki/Negamax
Nevu - Intelligente Maschinen, die Zukunft alles rund um das Thema Künstliche Intelligenz!
Original von Richter
Ihr dürft nur Zahlen eingeben, ansonsten stürtzt es ab. Ich weiß noch nicht genau wie ich dies ändern kann.
Normalerweise mit try und catch
oder .TryParse
Ich hab 1x gespielt und gleich gewonnen. Man muss allerdings schon etwas aufpassen, auf der anderen Seite macht die KI manchmal auch was, das ich nicht machen würde 😉
Das Spiel läuft super. Jetzt kannst du es ja mit GDI+ grafisch umsetzen um den Spielspass zu erhöhen.
Original von Voggi
Original von Richter
Ihr dürft nur Zahlen eingeben, ansonsten stürtzt es ab. Ich weiß noch nicht genau wie ich dies ändern kann.Normalerweise mit try und catch
Ich würde es so machen: (try & catch finde ich eine dirty-Methode)
bool zahl=true;
foreach (char x in textBox1.Text)
{
if (x.IsDigit==false)
{
zahl=false;
}
}
if (zahl==false)
{
MessageBox.Show("Sie haben keine gültige Zahl eingegeben!", "Fehler");
}
else
{
...
......
webstarg
Hallo webstarg,
das ist m.E. umständlich - zumindest, wenn man 2.0 einsetzt. John Doe hat ja schon geschrieben, dass man TryParse verwenden kann.
try & catch finde ich eine dirty-Methode
try/catch ist ein stukturierter Fehlerbehandlungsmechanismus und alles andere als Quick&Dirty. Trotzdem wäre TryParse hier natürlich vorzuziehen.
if (zahl==false)
Siehe Anfängerfehler == true / == false
herbivore
Wenn sich die Console schließt bedeutet das das die KI aufgibt?
ich war nämlich kurz vorm Sieg.
Ich such noch mal ein projekt wo ich mich im Bereich KI üben kann
Huhu,
warum hast du das eigentlich als Konsolen Anwendung realisiert?? Ein paar Pictures Boxen mit Windows Forms wären ansprechender gewesen...
Der Quellcode wäre net schlecht...
Ist das mit .Net 1.1 oder .Net 2.0?
gruß Sieben
[EDIT von herbivore]Zum Thema, wie man wie man Spielbrett und Figuren malt, siehe auch Spiel "Prärie"[/EDIT]
Nur die Kogge schwimmt! 😁
ich finds nicht schlecht, aber etwas langsam. einen fehler hab ich noch entdeckt obwohl er eigentlich gar keiner ist:
das original-vier-gewintn spielfeld ist nur 7 steine breit.
und wie es der zufall will habe ich letzte woche auch ein viergewinnt geschrieben.
bzw. ein kollege und ich haben jeder ein eingenes viergewinnt (bzw. eine ki) geschrieben, wir hatten eine woche zeit und dann haben wir sie gegeneinander spielen lassen.
=)meine hat glücklicherweise gewonnen, ich werde sie heute abend auch mal uppen.
hier noch schnell da sspielprinzip meiner ki:
mfG b3nJ
-edit-
ich hab meins mal geuppt.
source + exe
die ki-schwierigkeit sollte bei einem langsam pc bei 3 bleiben bei einem schnellen kann man sogar bis zu 5 schalten und die züge werden trotzdem recht shcnell berechnet
mfg b3nJ
Huhu,
also dein Spiel ist an sich net schlecht.
Aber was bitte ist das für ein Interface?? Das ist ja grausig zu bedienen 🙁
Die Berechnungen dauern mitunter ganz schön lange... vielleicht kannst du das ein wenig optimieren?? Vielleicht mehrere Threads??
gruß Sieben
Nur die Kogge schwimmt! 😁
Diese Variante hat ein besseres GUI. Die AI ist jetzt (Version 3) kann jetzt sogar mit der AI von B3nj mithalten.
Neu in AI Version 4: deutlich schneller, bei exakt gleichem Ergebnis -> Level 6 ist jetzt
spielbar.
Weiß jemand, wie dashier funzt❔http://rezepte.nit.at/online_spiele/vier_gewinnt/vier_gewinnt.html
das is sauschnell und hält die geposteten KIs ganzschön auf trab.
--
Wer Rechtschreibfehler findet darf sie behalten.
mit schwierigkeitsstufe 4 (mit meiner ki) habe ichs einmal geschafft zu gewinnen, ansonsten meistens verloren. und meine berechnungen haben meistens länger gedauert. leider dauern die berechnungen relativ lange wenn ich eine schwierigkeitsstufe über 4 einstelle (ein normaler pc kommt auch bei 5 noch recht schnell nach), weshalb es eigentlich acuh sinnlos ist, die schwierigeitsstufe bei meiner ki bis 9 zu erhöhen.
ich denke die ki schaut von anfang an ob sie situationen finden kann, bei denen es zwei gewinnmöglichkeiten gibt.
es gibt auch situationen, bei denen man erst bei den letzten zügen, wenn nur noch eine spalte teilweise leer ist gewinnen kann, diese erkennt die ki eventuel besser?
zweite möglichkeit wäre eine kleinere bibliothek die dem programm bei der rechenzeit ein bisschen hilft, kA...
auf ejden fall ist sie nicht schlecht.
mfG b3nJ
Wer will kann sich mal den Quelltext (im Anhang oder hier) anschauen. Ich verstehe das irgendwie ned.
--
Wer Rechtschreibfehler findet darf sie behalten.