Entwickler-Ecke
Freeware Projekte - Stein Schere Papier 1.7.7.8
DelphiMarkus - Mi 07.11.07 13:39
Titel: Stein Schere Papier 1.7.7.8
Hallo,
ich habe hier wieder ein Programm. Dieses Mal ist es ein simples Spiel: Stein Schere Papier.
Die Programmversion ist 1.7.7.8
Ich glaube, dass jeder dieses Spiel kennt,wenn nicht gibt es im Programm den Button "Regeln"
Was das Programm momentan kann:
:arrow: Gegen den Computer spielen
:arrow: Unten wird die Punktzahl angezeigt
:arrow: Neues Spiel
:arrow: Runde wird angezeigt
:arrow: Buttons jetzt im Hauptformular
:arrow: Shortcuts: "s" für "Stein", "d" für "Schere" und "f" für "Papier"
:arrow: Log hinzugefügt: (Anwendungsdaten-Verzeichniss "SCHNIK-Log.txt")
:arrow: Mensch gegen Mensch ist jetzt möglich
:arrow: Log im Programm anzeigen lassen
:arrow: Bei 50, 100, 150, usw. Runden wird Meldung angezeigt
:arrow: 2 Designs (Umschaltbar)
:arrow: Neue schönere Bilder
:arrow: Log manuell speichern
:arrow: Wenn der Computer wählt, ist es (fast) immer etwas anderes
:arrow: Log löschen
:arrow: XPDesign jetzt überall
:arrow: Einstellungen werden ins Anwendungsdaten-Verzeichniss gespeichert
:arrow: KI mit 4 Stufen (mit genug Logik, finde ich ;) )
:arrow: Ein richtiger Einstellen-Dialog
Die Bilder sind jetzt besser als vorher, ich habe sie mit GIMPShop gemacht.
Kritik und Vorschläge sind "Herzlich Willkommen"
Regan - Do 08.11.07 10:14
Hy,
ich habe es mir mal angeschaut und muss folgendes feststellen. Das gefällt mir ganz gut. Die Hauptfunktion erledigt alles sehr gut. Außerdem hast du auch Maximieren deaktiviert. Sehr gut :zustimm: . Noch ein paar Punkte, die mir aufgefallen sind:
1. Wenn ich auf neues Spiel klicke, und dann Schere, Stein oder Papier wähle, dann wird das Bild vom Computer nicht aktuallisiert. So kann es sein, dass der Computer Stein hat und ich trotzdem verliere, obwohl ich Schere habe. Ich würde einfach die Zähler zurücksetzten.
2. Statt des OK-Buttons könntest du doch die Schere, Stein Papier Buttons gleich in die Hauptform einbringen.
3. Das Info-Fenster ist ein klein wenig zu klein. Dort erscheint bei mir eine Scrolbar.
Also eigentlich nichts Großes.
MfG
Regan
DelphiMarkus - Do 08.11.07 12:17
Hallo,
Fehler gefunden und repariert.
Danke fürs Feedback!
Bei mir ist das Info-Fenster groß genug. Habe es trotzdem etwas größer gemacht.
Aktuelle Version hochgeladen: 1.3Beta.
Für die nächste Version (1.4Beta):
:arrow: Buttons zum auswählen kommen auf das Hauptformular(Muss den Code ganz schön umschreiben, deshalb auf nächste Version verschoben)
Wer noch Ideen hat und Fehler findet bitte MELDEN!
DelphiMarkus - Fr 09.11.07 17:36
Titel: Version 1.4BETA
Hallo,
ich habe nun die neue Version (1.4) programmiert.
Der Link und das Bild sind aktualisiert.
Folgende Änderungen habe ich vorgenommen:
:arrow: Die Buttons zum Wählen ins Hauptfenster gelegt
:arrow: Statt den Buttons kann man jetzt auch s (Stein), d (Schere), f (Papier) drücken
:arrow: Rundenzahl wird angezeigt
:arrow: kleinere Bugs beseitigt
Immernoch: Wenn jemand Lust hat mir bei den Icons zu helfen bitte MELDEN! :flehan: :crying:
Name der Person stände natürlich auch im Programm. (Momentane Bildgröße: 64x64 Pixel)
Ich würde mich auf ein paar Feedbacks freuen!
Mitmischer 1703 - Fr 09.11.07 19:37
Nettes Programm, aber das Infofenster ist immer noch zu klein :crying:! :tongue: Außerdem kann man es in der Größe verändern! Sehr hübsch... :roll:
Die Grafiken sind einfach, aber akzeptabel :zustimm:.
Aber bei dem "Neu"-Button solltest du die Ecke ein wenig größer machen! :mrgreen:
DelphiMarkus - Sa 10.11.07 09:34
Hallo!
Danke fürs Feedback!!
Kann mir jemand einen Screenshot vom Info-Fenster senden?
Bei mir ist es nach wie vor groß genug!
Ich hänge mal einen Screenshot vom Info-Fenster an.
DelphiMarkus - Sa 10.11.07 13:09
Hallo!
Eine kleine Verbesserungen in Version 1.4.1BETA:
:arrow: Größe verändern im Info-Fenster deaktiviert
| Mitmischer 1703 hat folgendes geschrieben: |
| Aber bei dem "Neu"-Button solltest du die Ecke ein wenig größer machen! :mrgreen: |
Ich verstehe nicht was du meinst. Welche Ecke?
DelphiMarkus - So 11.11.07 13:17
Hallo!
Heute ist die neue Version 1.5BETA fertig geworden.
Eine Funktion habe ich noch hinzugefügt:
:arrow: Log hinzugefügt: (Im Programmordner "SCHNIK-Log.txt")
Jetzt kann man sich das letzte Spiel auch ansehen. :lupe:
Was haltet ihr von einem Highscore? Soll ich ihn auch noch einbauen?
Ich weiß nur nicht recht, wie ich das sortieren soll. Kann mir jemand einen Tipp geben?
freak4fun - So 11.11.07 16:01
Hi,
ich hab mal nur 50 mal auf Stein, Schere und Papier gedrückt. Bei Stein und Schere eindeutig und bei Papier knapp gewonnen. Optimal wäre wenn das Programm das Verhalten des Spielers analysiert und gegen ihn anwendet. :mrgree: Ist aber wahrscheinlich noch zu schwer für dich.
Die zweite Idee ist, das das Spiel 2 Menshen gegeneinander spielen könnten. Der eine drückt 1,2,3 und der andere zB a,s,d. Wenn beide gedrückt haben wird verglichen. :)
MfG
freak
DelphiMarkus - So 11.11.07 16:39
Hallo!
Vielen Dank fürs Feedback!
| freak4fun hat folgendes geschrieben: |
| Optimal wäre wenn das Programm das Verhalten des Spielers analysiert und gegen ihn anwendet. :mrgreen: Ist aber wahrscheinlich noch zu schwer für dich. |
Da hast du recht, ich habe zwa schon einige Erfahrung in Delphi, aber so etwas kann ich noch nicht. :mahn:
| freak4fun hat folgendes geschrieben: |
| Die zweite Idee ist, das das Spiel 2 Menshen gegeneinander spielen könnten. Der eine drückt 1,2,3 und der andere zB a,s,d. Wenn beide gedrückt haben wird verglichen. :) |
Das habe ich mir auch schon überlegt. Habe mir aber gedacht das das etwas doof ist, weil der eine als erstes wählen muss und dann der andere. Aber auf die Idee mit den zwei Tasten-Feldern bin ich ehrlich gesagt nicht drauf gekommen. :mrgreen:
Ich werde es wahrscheinlich in die Version 1.6 oder 1.55 einbauen.
Vielleich schaffe ich das heute noch, sonst aber bestimmt morgen. :gruebel:
DelphiMarkus - Di 13.11.07 17:42
Titel: Neue Version : 1.6BETA
Hallo!
Ich bin nun fertig geworden mit der Version 1.6BETA.
Einen Tag zu spät :oops: , aber ich musste gestern für die Physikarbeit üben. :angel:
Neue Funktionen:
:arrow: Mensch gegen Mensch
:arrow: Log heißt jetzt "Schnick-Log.rtf"
Wenn jemand Fehler findet und Vorschläge hat bitte MELDEN!
Grüße
SportGoofy - Sa 17.11.07 23:01
Hi 8)
Nettes kleines Spielchen.
Ähm was mir sofort aufgefallen ist:
Woher weiß ich denn, wer welche Punkte kriegt :?:
Eine Beschriftung an den Punkten je nach Auswahl (Mensch/Computer)
wäre nicht falsch.
Highscore ist immer gut - erhöht die Motivation auch bei kleinen Spielen.
Dabei wäre es natürlich schön, wenn man einen Namen eingeben könnte beim Start -
diesen könnte man dann auch als Beschriftung zu den Punkten verwenden.
Wie lange dauert denn so ein Spiel?
Ich drücke und drücke - über Runde 200 und kein Ende ...
vielleicht ein Hinweis einbauen oder Rundenanzahl vorab.
BenBE - So 18.11.07 00:13
Manchmal ist es nervig, wenn man 10 Runden hintereinander ein Unentschieden mit dem Computer erreicht ;-)
Die Grafiken könnten noch etwas "anspruchsvoller" gestaltet werden.
Ansonsten nettes Spielchen.
DelphiMarkus - Do 06.12.07 18:34
Hallo!
Ich habe jetzt eine neue Version online gestellt.
Folgende Punkte sind hinzugekommen:
:arrow: Log im Programm anzeigen lassen
:arrow: Bei 50, 100, 150, usw. Runden wird Meldung angezeigt
Das man 10 mal hintereinander Unentschieden macht liegt an den Zufallszahlen, die sind nicht immer unterschiedlich.
Ich freue mich auf Kritik.
.#R4id - Do 06.12.07 19:24
Ich weiß zwar nicht ob das jetzt zufall ist, jeden falls war ich auch dabei, Stein-Schere-Papier zu schreiben :(
DelphiMarkus - Do 06.12.07 19:40
Ich glaube das ist nur Zufall.
Ich habe das Programm im September für den Geburtstag von meinem Vater geschrieben.Er hat sich darüber sehr gefreut! :mrgreen:
Außerdem für die nächste Version:
Komplett neues Design!!(Habe in der DelphiPraxis schöne Komponente gefunden)
DelphiMarkus - Fr 07.12.07 17:19
So...
Ich habe die neue Version hochgeladen.
Ich habe etwas Design reingebracht.
Ich hoffe es gefällt euch.
Langsam wird das Programm immer besser, wenn jemand Lust hat mit mir schönere Bilder zu machen: einfach melden.
.#R4id - Fr 07.12.07 18:39
DelphiMarkus hat folgendes geschrieben: |
| ...wenn jemand Lust hat mit mir schönere Bilder zu machen: einfach melden. |
Wieso lädst du nicht einfach ein paar Designer Icons runter?
DelphiMarkus - Sa 08.12.07 10:08
Wo kann man die denn runterladen?
So...
Ich habe mir gedacht, dass manche ein nicht so aufdringliches Design haben möchten, deshalb habe ich jetzt 2 Versionen: D für Design und N für Normal.
Ich werde mal sehen, ob ich es irgendwie eine Beta zu machen mit der man im Netzwerk spielen kann, ich kann aber nichts versprechen, vielleicht kann mir jemand ja helfen.
.#R4id - Sa 08.12.07 10:13
Wieso machst du nicht einfach eine funktion, die das Design deaktiviert und den Status dann in der INI speichert?
DelphiMarkus - So 09.12.07 10:22
Ich habe jetzt beide Designs in einer Version.
Änderungen:
:arrow: Design ist umschaltbar
:arrow: Log heißt jetzt wieder "Schnik-Log.txt" (Das flimmern beim Auswählen ist damit weg)
Bitte weiterhin testen und Vorschläge machen
DelphiMarkus - Mi 30.01.08 19:57
Hi!
Hat wohl nichts gebracht das Bitte...
Naja, ich habe jetzt mit GIMPShop neue Bilder gemacht, ich hoffe sie gefallen euch besser als die alten.
Das Beta-Stadium habe ich nun auch aufgehoben, und ich finde es ist wirklich ein gelungenes Spielchen.
Bin weiterhin für Kritik und Vorschläge offen!
DelphiMarkus - Sa 02.02.08 14:54
Hallo!
Ohne Kritik und Vorschläge kann ich das Programm nicht erweitern oder verbessern.
Ich würde mir wünschen, dass ihr sagt was ihr nun von dem Programm und den schöneren Bildern haltet.
Ich warte... :cry: :cry: :evil: :? :?!?:
Regan - So 10.02.08 16:21
DelphiMarkus hat folgendes geschrieben: |
| Ohne Kritik und Vorschläge kann ich das Programm nicht erweitern oder verbessern. |
Warum nicht?! :wink: .
DelphiMarkus hat folgendes geschrieben: |
| Ich würde mir wünschen, dass ihr sagt was ihr nun von dem Programm und den schöneren Bildern haltet. |
Beim Hauptprogramm hat sich ja nicht viel geändert. Die Bilder sind aber im Vergleich zur ersten Version deutlich besser :zustimm: .
Ich hab allerdings noch einen Fehler gefunden, den ich grad nur einmal habe: Wenn ich das Programm starte, dann auf neues Spiel (Mensch vs. Mensch) klicke, und dann auf "Stein" gehe, dann rutscht der so nach rechts unten.
Zu den Einstellungen: Warum brauchst du die? Ich finde es mit dem neuen Design besser. Da solltest du dem Nutzer nicht die Wahl geben, nicht bei Programmen in diesem Ausmaß. Falls du die Einstellungen dennoch beibehalten möchtest, dann solltest du 1. die im Anwendungsdatenverzeichnis speichern und 2. erwähnen, dass es dann dort welche gibt. Das mit dem Speichern gilt auch für den Log. Nicht alle Nutzer sind mit Admin-Rechten unterwegs. Deshalb könntest du noch einen Button "Log speichern" einbauen.
MfG
Regan
DelphiMarkus - Di 12.02.08 18:15
Hi!
Danke für die Rückmeldung!
Fehler mit dem Button behoben.(1 falsches True gesetzt, was ein Eigenschaftchen ausmacht... :) )
2 weitere Checkboxen: 1. Log speichern, 2. Einstellungen speichern
Neue Version hochgeladen!
DelphiMarkus - So 17.02.08 14:20
Hallo!
Ich habe eine neue Version hochgeladen.
Änderungen:
:arrow: Log mitschreiben an/aus
:arrow: Log manuell speichern (LogFormular)
:arrow: Wenn man gegen den Computer spielte kam es schnell zu einigen Runden indenen der Computer immer das selbe anzeigte. Das ist jetzt vorbei es werden 10000 Zufallszahlen gemacht und dann gezählt wovon am meisten da ist, so ist es fast unmöglich das der Computer Rundenlang das gleiche anzeigt.
Für die nächste Version:
:arrow: Angeben, wie viele Zufallszahlen gemacht werden sollen.
Fabian E. - So 17.02.08 14:31
so also mal zum thema analyse des gegners. wenn ich das ganz simpel lösen wollte, würde ich einfach mitzählen wie oft mein gegner was genommen hat. und anhand dieser zehlen würde ich dann entscheiden was ich selber wähle.
das ist natürlich nicht perfekt, aber immerhin ein kleiner ansatz und nicht schwer zu schreiben.
gruß
DelphiMarkus - So 17.02.08 14:40
Hi!
Ich werd mal schauen ob ich das einbaue, es ist doch sehr einfach und wenn man es raus hat gewinnt man immer, vielleicht fällt mir ja noch was besseres ein.
Aber trozdem:
Danke für den Tipp!
Fabian E. - So 17.02.08 14:46
wie wenn man es raus hat kann man immer gewinnen? ich meine eigentlich dass dein computergegner immer zählt was man selber macht un danach dann entscheided was er macht. das hat doch dann eher was mit verlieren zu tun? und wenn man weiß wies geht kann man höchstens die chancen wieder gleich machen.
gruß
DelphiMarkus - So 17.02.08 15:29
Ich meine das so:
Ich nehme 5x Stein, der Computer wird danach dann Papier nehmen, also nehme ich 6x Schere.
Der Computer versucht es mit Stein, aber ich mache Papier.
Im Endeffekt gewinne ich und der Computer verliert.
DelphiMarkus - Mi 20.02.08 18:36
Leider hat das mit den 10000 Zufallszahlen nicht funktioniert. Die EButtons die ich verwende reagieren darauf allergisch ;). Sie fabrizieren so eine Endlosschleife, deshalb habe ich das wieder rausgebaut.
Ich habe es mit einer anderen Funkrion ersetzt, die aber nicht so sorgfältig arbeitet.
Ich werde versuchen die alte Funktion wieder einzubauen, solange müsst ihr mit der anderen leben.
Die neue Version ist oben.
Ich freue mich auf eure Rückmeldungen.
DelphiMarkus - So 09.03.08 17:06
So, Version 1.7.5.3 ist draußen.
Einzige Veränderung:
:arrow: Ich hab das mit den 10000 Zufallszahlen wieder eingebaut. Funktioniert jetzt wieder fehlerfrei.
Kommt da noch was???
DelphiMarkus - Sa 15.03.08 10:57
Hi!
Version 1.7.5.4 ist da!
Änderungen:
:arrow: XPDesign jetzt überall
:arrow: kleinen Fehler behoben
:arrow: Log manuell löschen (Spiel wird dann schneller)
Ich hoffe das ich noch ein paar Rückmeldungen bekomme! :flehan:
DelphiMarkus - Sa 15.03.08 14:02
Ich hab es nun endlich geschafft, dass die Einstellungen und das Log ins Anwendungsdaten-Verzeichniss des Benutzers gespeichert werden.(...\...\...\Anwendungsdaten\SteinScherePapier\*.*)
Die Version (1.7.6) ist schon hochgeladen.
Wenn der Ordner nicht existiert, wird er erstellt.
DelphiMarkus - Di 18.03.08 09:46
Hallo!
Ich find es schade dass ich keine Rückmeldungen bekomme. Ich würde mir wünschen wenn ich noch ein paar bekomme, weil ich es allmählich Leid bin, dass sich niemand meldet.
Ganz alleine Fehler zu suchen und sich neue Funktionen ausdenken wird auf die Dauer sehr sehr langweilig.
In dieser Version (1.7.6.1) gibt es nur einen Bugfix.
Delphi-Laie - Mo 24.03.08 19:01
Meine (zugegebenermaßen ziemlich unbequeme und vermutlich auch als hochnäsig empfundene) Meinung dazu:
Den Aufwand zur Erstellung dieses Programmes erkenne ich (an), aber.....
in das Spiel ist anscheinend kein Fünkchen Intelligenz (hinein-)programmiert worden - damit werden Sinn, Charakter und Inhalt dieses Spieles letztlich negiert bzw. wenigstens ignoriert. Somit könnte man auch gegen einen Würfel spielen - der Computer wird damit nur zum (komfortablen) Zufallsgenerator (degradiert). Nicht einmal eine simple statistische Auswertung (trivialstes Beispiel: Relative Häufigkeiten der einzelnen Eingabemöglichkeiten) der Benutzereingaben scheint zu erfolgen, um daran das Spielverhalten des Computers auszurichten.
Papier-Stein-Schere kann durchaus anspruchsvoll und gut gespielt werden (womit die Gewinnchancen zumindest gegenüber einem Menschen erhöht werden, gegenüber einem echten Zufallsgenerator, wie ihn Computer zu liefern imstande sind, wäre man als Mensch im Sinne eines sicheren Gewinnes jedoch chancenlos). Das zu programmieren wäre eine echte Herausforderung! Hier jedoch führt ein grottenschlechtes Spiel (in Form der Eingabe des immer gleichen Elementes) nicht zwangsläufig zu einem Verlust, was beim Spiel gegen den Menschen zu einem sicheren Verlust führen würde. Ganz im Gegensatz: Obwohl man als Spieler immer das gleiche Element eingibt, stört sich das Programm überhaupt nicht daran, sondern läßt seinen Zufallsgenerator davon völlig unbeeindruckt munter vor sich hin werkeln.
Hier haben also weder der Computer noch der Mensch eine echte (i.S. einer geschickt, intelligent, raffiniert erspielten u.ä.) Gewinchance. Der Gewinn beruht für beide Seiten rein auf dem Zufall. Damit wird Papier-Stein-Schere in der vorliegenden Form jedoch zum reinen Glücksspiel. In Wirklichkeit ist PSS jedoch absolut (!) kein Glücksspiel, sondern eines mit perfekt verschleierter Information. Derartige Spiele werden von Jörg Bewersdorff als vollständig strategisch bezeichnet (m.E. keine besonders glückliche Bezeichnung, weil die von ihm als vollständig kombinatorisch bezeichneten Spiele wie Schach, Go, Mühle, Dame auch strategische Elemente enthalten). Ich empfehle zur Lektüre der spieltheoretischen Grundlagen sein Buch "Glück, Logik und Bluff". Bei den strategischen Spielen wie PSS (das, wie gesagt, sogar ein vollständig strategisches ist) kommt man mit Bluff weiter. Nicht jedoch hier, bei dem PSS zum reinen (und entsprechend totlangweiligen) Glücksspiel degradiert wird.
Deshalb meine rhetorische Grundsatzfrage: Hat ein (Zwei-(Personen-))Spiel, bei dem keiner der Spielpartner eine echte, d.h. aus eigenen Kräften erspielbare Gewinnchance besitzt, überhaupt diese Bezeichnung verdient?
Ich empfehle, vor dem Beginn eines solchen Projektes sich erst einmal über solche Essentialien zu informieren. Oder im Jargon eines Lehrers: "Thema verfehlt!"
DelphiMarkus - Di 25.03.08 09:44
Delphi-Laie hat folgendes geschrieben: |
| Meine (zugegebenermaßen ziemlich unbequeme und vermutlich auch als hochnäsig empfundene) Meinung dazu: |
Keine Angst, du hast vollkommen recht.
Nur ich habe da leichte Einschränkungen:
:arrow: Ich bin in keinem Informatik-Kurs.
:arrow: Ich programmiere rein als Hobby, wenn ich keine Lust mehr hätte würde ich aufhören.
:arrow: Ich bin noch ein Anfänger in Delphi
:arrow: Ich bin 13 Jahre alt 1 1/2 Jahre Erfahrung in Delphi
Warum habe ich dass noch nicht gemacht:
:arrow: Ich habe im Moment keine Lust dazu
:arrow: Ich überlege momentan wirklich ob ich das Programm Open Scource mache, weil ich keine Lust mehr dazu habe es weiterzuentwickeln, damit auch andere sich am Scourcecode erfreuen können.
Delphi-Laie - Di 25.03.08 10:15
Für einen 13jährigen, 1,5jährigen Delphianer kein schlechtes Ergebnis, ganz im Gegensatz. Mit 13 Jahren kannte ich das Wort Programmierung noch gar nicht, und ich weiß nicht, ob ich das Wort Computer schon einmal irgendwo gehört habe. Insbesondere erstaunt es mich, wie Du reagierst, denn meine Kritik war ziemlich heftig, weil fundamental (m.E. aber nicht unsachlich). In den beiden anderen PSS-Projekten führte meine Kritik zu mehr oder weniger heftigen Diskussionen. Falls Du das noch nicht entdeckt hast (was ich mir nicht so recht vorstelle), so schau auch dort mal vorbei.
Mir ging es nicht darum, die bisherige Programmierleistung niederzumachen, sondern aufzuzeigen, daß das Spiel "eigentlich" noch gar nicht programmiert wurde, sondern nur eine mit einem Zufallsgenerator und einer Ergebnisauswertung versehene Oberfläche dafür geschaffen wurde.
Natürlich kann man PSS auch stur und streng rein zufallsgeneriert durchziehen (ist das dann noch spielen?), doch beißt sich das mit dem Spielziel: Die eigene Gewinnwahrscheinlichkeit zu maximieren und die des Gegners zu minimieren (wie bei jedem Spiel); und damit muß man sich vom Zufallsgenerator verabschieden.
.#R4id - Di 25.03.08 18:57
Delphi-Laie hat folgendes geschrieben: |
| ...und damit muß man sich vom Zufallsgenerator verabschieden. |
Und was soll man statt dessen nehmen :?:
Ich könnte das Spiel auch so machen das der PC immer das richtige wählt und somit den Spieler 100:0 vertieg macht :lol:
Delphi-Laie - Di 25.03.08 20:42
Ich kann es kaum fassen. Ist dieser obige Beitrag wirklich Dein Ernst?
.#R4id hat folgendes geschrieben: |
Delphi-Laie hat folgendes geschrieben: | | ...und damit muß man sich vom Zufallsgenerator verabschieden. |
Und was soll man statt dessen nehmen :?: |
Stattdessen? Stattdessen kann man eine - wie immer man das auch konkret bezeichnet - intelligente, clevere, raffinierte Spielweise (die zu programmieren die eigentliche Herausforderung ist, wie bei vielen Spieleprogrammierungen) einsetzen. Ich verweise als ausführliche Antwort auf meinen letzten Beitrag in
http://www.delphi-forum.de/topic_Schere+Stein+Papier_78973.html. PSS ist ein Spiel, bei dem die Psyche (bzw. Psychologie) eine erhebliche bis entscheidende Rolle spielt und damit dem Poker (trotz dessen Glücksanteil) sehr viel ähnlicher und mit diesem verwandter als einem reinen Glücksspiel (wie dem Roulette und dem Lotto), zu dem es hier degradiert wurde, ist. Tatsächlich ist es so, daß es Menschen gibt, die PSS (und adäquate Strategiespiele) besser als andere spielen (die sind aber, soweit ich das weiß, nicht sonderlich häufig).
.#R4id hat folgendes geschrieben: |
Ich könnte das Spiel auch so machen das der PC immer das richtige wählt und somit den Spieler 100:0 vertieg macht :lol: |
vertieg? Meinst Du fertig? Was soll Dein zweiter Satz denn nun für ein Beitrag sein? Um auf dieses Unargument einzugehen: Das hat doch dann gar nichts mehr mit dem Spiel PSS zu tun, und es wäre eine Abkehr von seiner wichtigsten Regel: Der Gleichzeitigkeit, wenigstens Voneinander-Unabhängigkeit der Entscheidungen! Ich kann auch meinen Gegner "vertieg" machen, indem ich seine Antwort abwarte und erst dann richtig (i.S. der Maximierung der Wahrscheinlichkeit meines Gewinnes) reagiere. Ist das dann noch ein Spiel? Nein, das ist Schummelei, das ist programmierter (Spiel-)Betrug!
Dein "Gelolle" war also - gelinde gesagt - voreilig oder einfach an den falschen Adressaten gerichtet.
DelphiMarkus - Mi 26.03.08 10:31
Ich habe mir gestern überlegt, ob ich so etwas ähnliches, wie
.#R4id einbaue, und ich bin zu dem Entschluss gekommen, dass ich so etwas einbaue, nur mit Schwierigkeitsgraden: Sehr Leicht, Leicht, Mittel, Schwer, Zufall.
Es wird eine weile dauern, bis ich das fertig habe, aber ich bin zuversichtlich, dass ich das schaffe. :wink: :?
DelphiMarkus - Mi 26.03.08 15:24
So.
Die nächste Version ist nun raus. Sie steht oben im ersten Post zum Download bereit.
Die Veränderungen in dieser Version sind:
:arrow: einfache KI mit 5 Schwierigkeitsstufen
:arrow: ein richtiger Dialog für die Einstellungen
:arrow: ein Bugfix
Ich freue mich schon auf weitere Kommentare, solange sie keine heftigen Diskusionen herbeirufen. Und die Kritik nicht zu heftig wird.
Auf sowas habe ich keine Lust
DelphiMarkus - Mi 26.03.08 17:25
Neue Version oben.
Ich habe noch einen Bug in der KI gefixt.
Alles im ersten Post.
Delphi-Laie - Mi 26.03.08 17:45
Eine heftigere Kritik als die, daß das eigentliche Spiel gar nicht programmiert wurde, ist kaum denkbar und werde ich auch nicht wiederholen , und ich hoffe, daß eine solche Kritik ab sofort auch nicht mehr berechtigt ist/wäre.
Da hast Du Dir etwas vorgenommen, wozu ich Dir die Daumen drücke. Wenn man es richtig ernsthaft betreibt, wird man kaum damit fertig (womit ich Dir nicht den Mut nehmen möchte), zumal/weil
- die Spieltheorie noch voll in der Entwicklung steht und
- die ernsthate Spielprogrammierung (also spielstarker Programme, außer reinen Zufalls-/Glücksspielen, die können per se nicht spielstark sein) vom Aufwand und von der Komplexität her geradezu unsäglich ist.
Ich werde mir das anschauen (bin gespannt!) und mich bald (erneut) dazu äußern.
PSS ist somit, wenn man ernsthaft betreibt, man also gewinnen will (was eigentlich der Sinn und Zweck jedes Spieles sind), eben kein simples Spiel (wie Du es zunächst froh verkündet hattest) - ganz im Gegensatz!!
Ich hoffe und gehe aber davon aus, daß die oberen Schwierigkeitsstufen, die Du implementiert hast, nicht auf einer nicht spielregelwidrigen Mogelei beruhen, mit der sich .#R4id weiter oben brüsten wollte.
Viel Glück und Erfolg!
Netter Gruß
Delphi-Laie
Delphi-Laie - Mi 26.03.08 23:50
Tut mir leid, aber meine Kritik fällt wiederum vernichtend aus, diesmal sogar noch heftiger (womit ich meiner eigene Aussage weiter oben widerspreche). Ich hatte mich ohnehin schon gewundert, woher Du in der kurzen Zeit die 5 - anscheinend sogar deutlich voneinander abweichenden - Schwierigkeitsstufen gezaubert hast.
Die m.E. "schwächste sinnvolle" Spielweise kann nur die zufallsgenerierte sein. Rein statistisch gesehen muß somit der Computer, wenn ich immer das gleiche Element wähle (was ich auch tat) bei jedem 3. Versuch richtig liegen, bei jedem 3. gewinnen und beim letzten Drittel unentschieden spielen. Das Ergebnis wäre also bei zufälligen menschlichen Eingaben in etwa ausgeglichen. In der untersten Stufe jedoch verliert der Computer viel mehr, als er gewinnt. Es ist natürlich möglich, daß die statistischen Eingaben auswertet und absichtlich falsche Züge generiert. Für sinnvoll halte ich das nicht, sondern als Minimum den Zufall als Grundlage der Entscheidungen, also die Gleichverteilung der Ausgaben. Bessere Entscheidungen sind dann die intelligenteren. Hier wurde von der Nichtintelligenz, die einem Zufallsprozeß innewohnt, auf Antiintelligenz weiter herabgestuft.
Es kommt aber noch viel dicker, das vorher ist dagegen nur geringfügig: Bei "schwer" reagiert der Computer im ersten Zuge anscheinend stets in seinem Sinne. Wie ist das möglich? In einem Spiel mit "eigentlich" vollständig verborgener Information über des Gegners Zugentscheidung natürlich nur durch eine Spielmanipulation, also Verletzung der Spielregeln. Damit hast Du aus meiner Sicht einen Tabubruch begangen und ebenfalls dieses Spiel nicht implementiert. Sollst Du Dich wirklich von .#R4ids o.a. indiskutabler Idee haben inspirieren lassen? Mein diesbezüglich o.a. laut ausgesprochener Verdacht (den zu glauben ich mich innerlich weigerte) scheint sich leider doch bestätigt zu haben, Du hast den Computer bzw. sein Programm vom elektronischen Würfel zum elektronischen Mogler weiter degradiert. Siehst Du, und jetzt bekommt man auch gleich einen riesigen Vorteil von quelltextoffener Software präsentiert: Deren Programmieren kann man auf die Finger schauen, programmierter (auch wenn hier nur Spiel-)Betrug (das ist es, was Du offensichtlich getan hast) ist bei diesen so gut wie unmöglich.
Ich warte somit (aber eigentlich nicht mehr) auf eine diesem Forum vorgestellte Implementation des Spieles PSS, die dem eigentlich selbstverständlichen Anspruch, daß dieses Spiel (und zwar von seinem Charakter und Wesen her) auch wirklich programmiert wird, gerecht wird. Einen ersten, akzeptablen Ansatz dafür hatte lediglich #R4ids mit der statistischen Erfassung der relativen Häufigkeiten der Benutzereingaben vorgestellt.
DelphiMarkus - Do 27.03.08 10:03
Hallo.
Ich habe mir gestern abend noch einiges zur KI überlegt. Sie soll wenn möglich etwa so, wie ich, also ein Anfänger spielen würde. Sie wird also etwas taktischer.
Zur Stufe 5(Schwer):
Ich habe da noch einen Bug drin, der nicht sein sollte. Das wird behoben sein, wenn die nächste Version kommt warscheinlich heute noch.
@
DelphiLaie
Und eine KI kann immer nur so schlau und klever sein, wie sein Programmierer. Wenn der Entwickler davon nichts versteht, dann leidet das Programm darunter, daran kann man nichts ändern.
DelphiMarkus - Do 27.03.08 13:24
Gerade habe ich die nächste Version fertiggestellt und auch schon hochgeladen.
Ich hoffe
DelphiLaie gibt sich jetzt damit mehr zu frieden, weil ich mich für die Logik in dem Programm ganz schön konzentrieren musste. Das war ganz schön anstrengend, aber ich habe es geschafft. In Stufe 5 macht es meiner Meinung nach am meisten Spass, weil der Computer mich mit meinen eigenen Gedanken manchmal austrickst.
Die Logik die nun im Programm ist, ist zwar immer noch nicht perfekt, ein Profi würde warscheinlich gewinnen, aber für "normale" Menschen schon ganz gut.
Die Veränderungen sind:
:arrow: Verbesserte KI
:arrow: Bug in der KI behoben (Danke an
DelphiLaie für den Tipp, ich habe die Abfrage an eine falsche Stelle gestellt, so wusste der Computer immer was man als erstes gewählt hat und hat beim ersten Zug immer gewonnen)
Ich würde gerne noch ein paar Ideen und Fehlermeldungen bekommen, damit ich sie schnell fixen kann. Besonders in der KI sind Fehler nicht ausgeschlossen und dort sind sie besonders gemein.
Scheinbar ich DelphiLaie ein richtiger Fan dieses Spiels. :mrgreen: :zwinker:
GTA-Place - Do 27.03.08 13:34
Da muss noch ein Bug drin sein:
Wenn ich immer Stein nehme, nimmt der Computer entweder auch Stein oder Papier.
Wenn ich immer Schere nehme, nimmt der Computer abschwechselnd Schere, Stein, Papier.
Wenn ich immer Papier nehme, nimmt der Computer entweder nur Schere, nur Stein oder nur Papier.
DelphiMarkus - Do 27.03.08 13:46
Ich werde mal sehen.
Auf welcher Schwierigkeitsstufe steht es denn?
Bei sehr Leicht oder Leich kann das schon sein aber auch bei Mittel.
Bei Zufall wäre es ja auch klar.
GTA-Place - Do 27.03.08 14:15
Stand auf "schwer".
DelphiMarkus - Do 27.03.08 14:17
Ok, dann ist da auf jeden Fall ein Bug drin.
Suche noch danach, habe ihn bis jetzt nicht gefunden, bin aber auch erst bei Mittel.
Edit:
Ich kann den Bug nicht finden ist eigentlich alles richtig, aber eigentlich doch nicht, außerdem:
Wer spielt denn so?
Bringe morgen noch mal eine komplett überarbeitete KI raus. Für heute habe ich genug, war ja auch ganz schön anstrengend.
Delphi-Laie - Do 27.03.08 15:40
DelphiMarkus hat folgendes geschrieben: |
@ DelphiLaie
Und eine KI kann immer nur so schlau und klever sein, wie sein Programmierer. Wenn der Entwickler davon nichts versteht, dann leidet das Programm darunter, daran kann man nichts ändern. |
Das ist eine Binseinweisheit. Künstliche Intelligenz ist modellierte und bis heute (soviel ich weiß) ausschließlich algorithmische bzw. algorithmierte Intelligenz, läßt sich also programmatisch implementieren.
Sollte das Level "schwierig" fehlerhaft sein, dann nehme ich meine diesbezügliche Kritik zurück. Allerdings ist mir unklar, wie dieser Fehler überhaupt zustande kam. Die aktuellen Eingabe des Nutzers wird zweifelsohne aufgegriffen, ausgewertet, zur Antwort des Computers herangezogen. Ich vermute, daß Dein Programm voreilig bereits die aktuellen Nutzerentscheidung in eine statistische Auswertung vor seiner Entscheidung einfließen läßt. Bei nur einer Nutzereingabe wird dann diese fehlerhafte Abarbeitungsreihenfolge als "Computerschummelei" offensichtlich. Laß Dein Programm doch unbedingt (!) einfach
vor der Nutzereingabe (natürlich unangezeigt) entscheiden! Selbst dann, wenn die letzte eingegebenen Entscheidung in eine bloße statistische Auswertung vor Ausgabe der Programmentscheidung mit einbezogen wird, wäre das i.S. der Spielregel(n) von PSS nicht redlich.
Beim PSS gibt es jedoch gar keine Antworten, es wird nicht abwechselnd gezogen wie bei vielen anderen Spielen. Die Gleichzeitigkeit beim Offenlegen der Entscheidungen ist ein wesentliches Merkmal. Mit einem Computer ist das natürlich unmöglich. Entscheidend ist, daß keiner der Spielpartner eine Information erhält (bzw. auswertet, in die eigene Entscheidung mit einbezieht), wie der Spielpartner gerade entschieden hat, dann reicht das als Ersatz für die fehlende Gleichzeitigkeit völlig aus.
Wie ich Deine und die übrigen Programme teste, hast Du inzwischen vermutlich mitbekommen. Mit recht brachialen, simplen Eingabedaten, die aber geeignet sind, diesen Programmen, insbesondere der eigentlichen Umsetzung des (Wesens des) Spieles auf den Zahn zu fühlen.
Beim realistischen PSS gibt es solche Spielstärkenunterschiede, wie sie Dein Programm teilweise erzeugt, nicht. Um es mal übertrieben zu verdeutlichen: Z.B. in der Weise, daß die Punkteverteilung 20% zu 80% beträgt. Vielleicht 45% zu 55%, wenn es hochkommt, dann womöglich auch 40% zu 60% (grob über den Daumen geschätzt). Große Unterschiede sind aber auch nicht unbedingt nötig: Ein Quentchen über 50% ist bei der Auswertung schließlich für den Sieg ausreichend (es zählt eben nur, "was hinten rauskommt"). Und dafür sind möglichst viele Einzelrunden wegen des Gesetzes der großen Zahlen zu spielen. Oft ist wirklich nur eine Nuance des einen Algorithmus' besser und entscheidend für den Sieg (was dann aber möglichst viele Runden benötigt, um (möglichst sicher) zu wirken) - aber das ist mit anderen Spielprogrammen ja schließlich genauso.
Gegen einen
echten Zufallsprozeß, wie ihn z.B. ein Würfel erzeugt, wäre man insofern chancenlos, als daß man diesen nicht im Sinne des eigenen Sieges sicher "knacken" kann. Allerdings hat ein solcher Null-Intelligenz-Prozeß (s. mein Beitrag weiter oben, habe ich noch was ergänzt) auch Null-Spielkraft, man kann mit der gleichen Entscheidung immer wieder gefahrlos antreten (wie ich es schon darlegte). Gegen einen Pseudozufallsprozeß, wie ihn Algorithmen (Software-Zufallsgeneratoren) liefern, hat man jedoch eine, nämlich dann, wenn man das bißchen Nicht-Zufälligkeit entdecken und für sich ausnutzen kann. Diese Chance ist zwar, selbst, wenn sie geschickt programmatisch ausgewertet und beantwortet wird, immer noch minimal, aber sie ist vorhanden und führt wegen des Gesetzes der großen Zahlen mit Sicherheit zum Sieg, wenn die Anzahl der Runden nur entsprechend groß gewählt wird.
Ich hoffe, daß meine fast schon ellenlangen Quasimonologe einen Einblick davon gegeben haben, welch unsäglich aufwendige und subtile, aber auch reizvolle und erfolgreiche* Tätigkeit die Programmierung von Zwei- oder Mehrpersonen-Nichtglücksspielen sein kann.
*Schließlich gibt es ja auch Weltmeisterschaften für Schachprogramme.
DelphiMarkus - Do 27.03.08 17:24
Ich versuche es ja eine möglichst gute KI zu machen, nur leider habe ich darin keine Erfahrung und in Delphi bin ich auch noch Anfänger. Außerdem ist das sehr schwer. In der Delphi-Praxis sagt jemand:
| Zitat: |
Also das Programm funktioniert schon, aber irgendwie macht es keinen Spaß, ich weiß auch nicht warum. Der KI ist auch seltsam-
Aber ich wüsste nicht wie ichs anders machen würde, von dem her ist es schon in ordnung |
Das nenne ich
fair!!
Morgen kommt eine neue bessere Version.
Und außerdem weiß der Computer erst
nach der Auswertung und der Anzeige, was der Spieler genommen hat. Und nicht bevor er gewählt hat, ich weiß also garnicht, was du damit sagen willst.
Ich werde den Code ja wohl am besten kennen kennen.
Beim den ersten 2 Malen kann das sein, weil da per Zufall entschieden wird, du musst tiefer und eingehender und nicht nur "oberflächlich" testen.
Irgendwann ist auch die menschliche Gedult zu Ende, anders als bei Computern, denen ist es egal!
Gausi - Do 27.03.08 18:03
Bevor der Ton hier weiter in Richtung leicht aggressiv abdriftet (was bisher nicht der Fall ist, aber Tendenzen sind meiner Meinung nach durchaus erkennbar), möchte ich ein kleines Zitat aus "Men in Tights" bringen. Nämlich die Stelle, an der Robin und seine noch unvollständige Crew an eine Brücke kommen, an der Little John Wegezoll kassieren will, was zu einer recht heftigen Diskussion führt. Hatschi versucht eine Deeskalations-Strategie, in etwa so:
| Hatschi hat ungefähr folgendes gesagt: |
| Leute, wir stehen hier nicht gerade am Mississippi...:roll: |
Und ja, ich weiß, dass es hier ums Prinzip geht. Aber nicht, dass hier hinterher einer nicht schwimmen kann und zu ertrinken droht! :zwinker:
Delphi-Laie - Do 27.03.08 21:22
DelphiMarkus hat folgendes geschrieben: |
| Ich versuche es ja eine möglichst gute KI zu machen |
Das glaube ich Dir gern. Das ist ja auch zu spüren.
DelphiMarkus hat folgendes geschrieben: |
| nur leider habe ich darin keine Erfahrung und in Delphi bin ich auch noch Anfänger. |
Jeder fängt beim Punkt Null an (zum Glück, aber eben auch keine Entschuldigung). Und mit Delphi hat das gar nichts zu tun (aus der einen Richtung betrachtet, zum Glück!). Das ist viel abstrakter, losgelöst von der eigentlichen Programmierumgebung. Wenn Du ein Programm soweit gebracht hast, wie Du es hier vorgestellt hast, dann beherrschst Du alle wesentlichen, benötigten Programmierelemente mit Leichtigkeit. Die Schwierigkeit liegt in der Komplexität der eingesetzten Analyse-/Auswertungsmethoden (überwiegend Mathematik) und des Algorithmus'!
DelphiMarkus hat folgendes geschrieben: |
| Außerdem ist das sehr schwer. |
Wem sagst Du das.
Natürlich ist das schwierig, extrem schwierig sogar. Falls Du jetzt glaubst, ich will Dich mit aller Gewalt dorthintreiben (was ich ohnehin nicht schaffen würde): Nein, ich wollte Dir nur aufzeigen, was es (für einen Aufwand) bedeutet, wenn man einem Programm das Spielen von PSS beizubringen. Zum Spielen gehört das Bestreben, selbst zu gewinnen und dem Gegner das zu verwehren.
DelphiMarkus hat folgendes geschrieben: |
Also das Programm funktioniert schon, aber irgendwie macht es keinen Spaß, ich weiß auch nicht warum. Der KI ist auch seltsam-
Aber ich wüsste nicht wie ichs anders machen würde, von dem her ist es schon in ordnung
Das nenne ich fair!! |
Fair? Ansichtssache. Es ist jedenfalls Kritik, die gewiß nicht substantiell ist und sicher auch kaum wehtut, also so richtig schön bequem ist. Aber
hilft Dir eine solche Unsubstanz weiter? Wer außer mir hat Dir denn mitgeteilt, daß man mit diesem Spiel im engeren Sinne gar nicht spielen kann und daß Du dieses Spiel überhaupt nicht modelliert hast?
Du willst mir damit anscheinend außerdem signalisieren, daß ich unfair bin. Falls dem so ist: Das finde ich wiederum unfair, und zwar nicht zu knapp. Schau Dir mal an, wer welchen Aufwand getrieben hat, wer Dir welche Tips gegeben hat. Waren es - im wahrsten, eigentlichen (nicht übertragenen!) Sinne des Wortes - oberflächliche oder substantielle Tips? Wenn man
- einem Programm die dämlichsten Eingaben anbietet und dieses dann daraus den Nutzen zu ziehen leider ebenso zu dämlich ist (Entschuldigung!),
- keiner der beiden Spieler eine echte, aus eigenen Kräften erspielbare Chance zu gewinnen oder zu verlieren hat (sondern das alles reiner Zufall ist),
dann ist das kein Programm, das ein eigentlich subtiles, psychologisches und strategisches Spiel simuliert, modelliert, spielt (was auch immer), sondern (fast) nur die Oberfläche desselben und leider ein Totlangweiler (wie ein Würfel oder eine Münze - beim Spielautomaten, Roulette und Lotto, alles ebenfalls reine Glücksspiele, geht es wenigstens noch um Geld, viel Geld sogar, was deren Reiz und mithin Kurzweile vermutlich ausmacht).
Nachdem Du - im Gegensatz zu den anderen Programmautoren - erstaunlich viel menschliche Größe gezeigt hattest, ich erinnere:
DelphiMarkus hat folgendes geschrieben: |
| Keine Angst, du hast vollkommen recht. |
, und was mich erstaunt und erfreut hatte, scheinst auch Du nunmehr die Nerven zu verlieren, schade. Meine Absicht ist das jedenfalls nicht.
DelphiMarkus hat folgendes geschrieben: |
| Also das Programm funktioniert schon, aber irgendwie macht es keinen Spaß, ich weiß auch nicht warum. |
Ich hoffe, daß Du es nach meinen Worten nunmehr ahnst.
Davon abgesehen: Ein Mensch kann gar nicht alle solche statistischen Eingaben behalten. Und selbst, wenn ein Mensch ein Quentchen stärker als ein Computer spielt (was ich wegen des Unvermögens, alle diese Eingaben zu behalten und auszuwerten, bezweifele): Es wären einfach zu viele Runden erforderlich, um einen nennenswerten Vorsprung herauszuholen. Ich schätze mal, daß ein Mensch gar nicht diese Geduld bzw. Ausdauer hätte. Gegen einen Computer mit guter KI (die ja mit Exaktheit und dem Behalten sämtlicher Daten einhergehen kann und wird!) hätte ein Mensch keine Chance. Mensch gegen Mensch und Programm gegen Programm sind dann zwei unterschiedlichen Ligen (letztere die höhere). Bei den Schachprogrammen ist dieser Zustand inzwischen ja quasi schon eingetreten.
DelphiMarkus hat folgendes geschrieben: |
| Und außerdem weiß der Computer erst nach der Auswertung und der Anzeige, was der Spieler genommen hat. Und nicht bevor er gewählt hat, ich weiß also garnicht, was du damit sagen willst. Ich werde den Code ja wohl am besten kennen kennen. |
Ja sicher kennst (nur) Du diesen, wer wollte diese Binsenweisheit abstreiten. Dann hast Du aber ein Erklärungsproblem: Wie kann das Programm im Schwierig-Level im ersten Zug (anscheinend)
immer die für sich günstigen Entscheidung fällen? Das ist definitiv unplausibel - Zufallsereignisse sehen anders aus. Wie kannst Du das plausibel und ohne Manipulation / Bug erklären? Das Programm
muß die menschliche Entscheidung bereits kennen, verarbeiten und als Grundlage seiner Entscheidung verwenden - oder Du widerlegst meine Behauptung. Falls mein Horizont nicht ausreicht, eine andere Ursache zu vermuten: Nur Du kannst die wahre Ursache wissen: Dann tu es doch bitte auch, dieses Rätsel hier aufzulösen!
DelphiMarkus hat folgendes geschrieben: |
| Irgendwann ist auch die menschliche Gedult zu Ende, anders als bei Computern, denen ist es egal! |
Bei menschlichen Spielern ohnehin (s.o.). Ab wenn gilt das aber auch für Dich als Progrmmierer? Wenn Dir noch irgendetwas einfällt/einfiele, was über die Verarbeitung der relativen Häufigkeiten in .#R4ids Programm hinausgeht/hinausginge, dann hast/hättest Du die Nase vorn, das PSS-Spitzenpogramm dieses Forums. Nur mal eine beispielhafte Idee (die ist aber auch nur von einer anderen (sprachwissenschatlichen) Angelegenheit "raubkopiert", ich habe mich auch noch nie mit der PSS-Programmierung beschäftigt): Die Wahrscheinlichkeit, mit der auf ein Element das nächste folgt (also z.B. spielt jemand nach der Schere häufiger den Stein als das Blatt aus). Oder das Programm stellt fest, daß der Mensch bevorzugt das Element wählt, mit dem er vorher vom Computer geschlagen wurde (psychologische Komponente!!). Usw. usf. - so etwas zu programmieren, könnte (?) eine elende Fummelei sein, aber
das macht das Wesen von PSS aus.
DelphiMarkus - Fr 28.03.08 09:33
DelphiLaie hat folgendes geschrieben: |
DelphiMarkus hat folgendes geschrieben: | | Und außerdem weiß der Computer erst nach der Auswertung und der Anzeige, was der Spieler genommen hat. Und nicht bevor er gewählt hat, ich weiß also garnicht, was du damit sagen willst. Ich werde den Code ja wohl am besten kennen kennen. |
Ja sicher kennst (nur) Du diesen, wer wollte diese Binsenweisheit abstreiten. Dann hast Du aber ein Erklärungsproblem: Wie kann das Programm im Schwierig-Level im ersten Zug (anscheinend) immer die für sich günstigen Entscheidung fällen? Das ist definitiv unplausibel - Zufallsereignisse sehen anders aus. Wie kannst Du das plausibel und ohne Manipulation / Bug erklären? Das Programm muß die menschliche Entscheidung bereits kennen, verarbeiten und als Grundlage seiner Entscheidung verwenden - oder Du widerlegst meine Behauptung. Falls mein Horizont nicht ausreicht, eine andere Ursache zu vermuten: Nur Du kannst die wahre Ursache wissen: Dann tu es doch bitte auch, dieses Rätsel hier aufzulösen! |
Hast du vielleicht noch eine ältere Version, in 1.7.7.1 war da noch ein Bug, in 1.7.7.5 ist er aber nicht mehr.
Ich glaub da ist noch ein Bug, nur wie der zustande kommt weiß ich nicht.
DelphiMarkus - Fr 28.03.08 10:45
In Version 1.7.7.5 war noch ein Bug drin, der ist jetzt behoben.
Download im ersten Post.
Die KI die jetzt eingebaut ist soll erstmal auch so bleiben.
GTA-Place - Fr 28.03.08 10:47
Es gibt - für die, die es nicht wissen - eine
RPS-Weltmeisterschaft [
http://www.worldrps.com/]. Und ich bin grad auf ein Interview aus der FAZ gestoßen, wohl etwa von 2004, geführt mit Jason Simmons, einem Kommentator der WM bei Fox Sports Network:
| Jason Simmons hat folgendes geschrieben: |
Es ist ein Sport, in dem es nur auf Geschick, nur auf Strategie ankommt. Viele der Top-Spieler haben verschiedene Strategien. Glück spielt dabei kaum eine Rolle. […] “Schere, Stein, Papier” ähnelt mehr dem Schach.
[…]
Ich bin, auch wenn sich das immer mal wieder ändert, ein Fan des “Scheren-Sandwich”: Papier, Schere, Papier. Es ist ein subtil defensives Gambit, aber die Schere in der Mitte hat eine ziemliche Wucht. Wenn Ihr Gegner eher offensiv spielt, ist das Papier am Ende sehr wirkungsvoll.
[…]
Nicht zu wissen, was man tut, einfach die Figur zu werfen, die einem in den Sinn kommt, ist bei “Schere, Stein, Papier” auch eine Strategie: Das “Chaos-Spiel”.
Ja, aber das ist, als ob man eine Münze wirft. Ein großer Spieler wird man nicht werden. wenn man sich dem Zufall überlässt. Verstehen Sie mich nicht falsch, es gibt Momente, in denen das Chaos-Spiel funktioniert. Aber es gibt auch Momente, da braucht man höher entwickelte Strategien.
[…] |
Und ehrlich gesagt: Dieses Zitat trifft den
nagel haargenau auf den Kopf. Deshalb dachte ich, ich poste das hier auch mal.
DelphiMarkus - Fr 28.03.08 11:08
| Zitat: |
| Und ehrlich gesagt: Dieses Zitat trifft den Nagel haargenau auf den Kopf. Deshalb dachte ich, ich poste das hier auch mal. |
Das stimmt genau!
Aber es ist einfach sehr schwer das den Computer beizubringen. Deshalb bin ich mit meiner Leistung vollkommen zufrieden. :D 8)
Delphi-Laie - Fr 28.03.08 13:33
| Zitat: |
| Glück spielt dabei kaum eine Rolle. |
Ansicht- und Definitionssache. Die erste Entscheidung - Spielern, gegen die man noch nie gespielt hat - mag tatsächlich aus der Sicht des jeweils anderen wie reiner Zufall anmuten (sie ist es aber nicht im mathematischen Sinne). Doch PSS besteht aus vielen Runden. Bereits ab der zweiten ist die Intuition, das Bauchgefühl gefragt, später zunehmend auch die subtile Erfassung des gegnerischen und womöglich auch eigenen Spielverhaltens (z.B. in Form - wie auch immer gearteter auffälliger - statistischer Merkmale).
| Zitat: |
| Schere, Stein, Papier” ähnelt mehr dem Schach. |
Aus dieser ein(seitige)n Perspektive betrachtet, kann man dem fast mit "jein" zustimmen. Schach und PSS ähneln sich nämlich nahezu überhaupt nicht. Sie haben nur eines gemeinsam: Das Fehlen jeglicher Zufallsereignisse, sie basieren ausschließlich auf menschlichen Entscheidungen (die keine zufälligen im engeren, eigentlichen Sinne sind).
PSS und die (bei Jörg Bewersdorff so genannten) rein kombinatorischen Spiele wie Schach, Go, Dame, Mühle, Halme etc. und die an gleicher Stelle so genannten rein strategischen Spiele (von denen PSS wohl der bekannteste Vertreter ist) sind sich genauso entfernt wie diese beiden Spielklassen/-typen von den reinen Glückspielen. Die reinen Glücksspiele (Roulette, Lotto, Würfeln), die rein kombinatorischen und die rein strategischen Spiele sind Pole und bilen als solche die Eckpunkte eines Dreiecks, sie sine mithin also gleich weit voneinander entfernt.
Beispiele, die die völlige Verschiedenheit der kombinatorischen (1inks) und der strategischen (rechts) dieser Spieltypen charakterisieren:
- Zeitkomponente: abwechselndes bzw. gleichzeitiges Ziehen
- Informationskomponente: vollständige Information bzw. vollständig fehlende Information
Gemeinsam ist beiden lediglich, daß es überhaupt keine Glückspiele i.S. von Zufallsereignissen sind (und damit den Gegensatz zu den reinen Glücksspielen aufspannen). Zwar erscheint jeweils die Entscheidung des einen Spielers aus der Perspektive des anderen zufällig (das ist sogar bei beiden Spielklassen so), sie ist es aber nicht im Sinne eines (echten) Zufallsereignisses, denn sie basiert auf menschlichen Entscheidungen.
Apropos menschliche Entscheidungen: Menschen können, selbst wenn sie es woll(t)en, keine guten Zufallsgeneratoren abgeben (und wäre mithin auf diese Weise auch nicht in der Lage, mit ihren "Pseudo-Pseudo-Zufallsentscheidungen" einem halbwegs künstlich-intelligenten PSS-Spiel Paroli zu bieten).
Dem Rest Jason Simmons' Wörter kann ich mich jedoch voll anschließen!
nagel - Fr 28.03.08 13:39
GTA-Place hat folgendes geschrieben: |
| Und ehrlich gesagt: Dieses Zitat trifft den Nagel haargenau auf den Kopf. |
Auaa :cry: .
:D
nagel - Fr 28.03.08 17:27
Hab grad das verlinkte RPS gespielt und muss sagen, dass RPS-Spiele mit sogenannter KI leichter zu besiegen sind als solche mit Zufallsstrategien, auch wenn
Delphi-Laie das vermutlich nicht hören will. Hatte nach 20 Spielen ein Ergebnis von
| roshambot hat folgendes geschrieben: |
| You have won 13, lost 3, and tied 4 games |
und das ist nur möglich, weil der Gegner durch die KI durchschau- und berechenbar wird. Das gleiche habe ich auch bei
http://www.play.de/flash_games/games/schnickschnackschnuck.htm festgestellt, wobei es hier nach meinem Eindruck etwas schwieriger ist, zu gewinnen.
Die gesamte wahrscheinlichkeits- und spieltheoretische Analyse mag also, wenn sie perfekt umgesetzt wird, einen Vorteil bringen, wenn aber wie bei den beiden Beispielen nur Ansätze dazu vorhanden sind, spielt sie gegen einen mitdenkenden menschlichen Gegner schlechter als die Zufallsmethode.
Wo ich nun schon mal einen Beitrag zu dieser durchaus interessanten Diskussion schreibe, noch ein paar Kommentare:
Delphi-Laie hat folgendes geschrieben: |
Die m.E. "schwächste sinnvolle" Spielweise kann nur die zufallsgenerierte sein.
|
Wohl nicht, wie ich oben gerade erklärt hab, ist ein Ergebnis von 13:3 gegen den Zufall nur sehr schwer möglich.
DelphiMarkus hat folgendes geschrieben: |
Und eine KI kann immer nur so schlau und klever sein, wie sein Programmierer. Wenn der Entwickler davon nichts versteht, dann leidet das Programm darunter, daran kann man nichts ändern.
|
Das stimmt nun gar nicht. Eine KI kann ihren Programmierer in dem Bereich, für den sie programmiert wurde, bei weitem übertreffen, da ihr ganz andere Möglichkeiten zur Verfügung stehen (schnelle Berechnungen, bessere Merkfähigkeit (Speicher)). Sonst müssten auch alle Programmierer von Schachprogrammen ein Meister in ihrem Spiel sein, was absolut nicht der Fall ist.
Delphi-Laie hat folgendes geschrieben: |
Gegen einen Pseudozufallsprozeß, wie ihn Algorithmen (Software-Zufallsgeneratoren) liefern, hat man jedoch eine, nämlich dann, wenn man das bißchen Nicht-Zufälligkeit entdecken und für sich ausnutzen kann. Diese Chance ist zwar, selbst, wenn sie geschickt programmatisch ausgewertet und beantwortet wird, immer noch minimal, aber sie ist vorhanden und führt wegen des Gesetzes der großen Zahlen mit Sicherheit zum Sieg, wenn die Anzahl der Runden nur entsprechend groß gewählt wird.
|
Da gehst du entweder von einem sehr schlechten RNG aus oder willst die Anzahl der Runden wirklich unrealistisch hoch wählen. Realistisch gesehen kannst du diese Daten nicht zu deinem Vorteil auswerten.
Delphi-Laie hat folgendes geschrieben: |
Schließlich gibt es ja auch Weltmeisterschaften für Schachprogramme.
|
Dieses Argument hast die dir mit deiner ständigen Bezugnahme auf Bewersdorff selbst entkräftet, da seiner Ansicht nach Schach und RPS wenig miteinander zu tun haben, was du sogar selbst weiter unten übernimmst. Eine Computer-WM würde für RPS auch kaum Sinn machen, weil hier meiner Meinung nach die Zufallsmethode die stärkste wäre, wenn gegen jede andere eine vernünftige gewählte Anzahl an Spielen gespielt wird.
Delphi-Laie hat folgendes geschrieben: |
Gegen einen Computer mit guter KI (die ja mit Exaktheit und dem Behalten sämtlicher Daten einhergehen kann und wird!) hätte ein Mensch keine Chance.
|
Ist vermutlich wirklich so, aber ist das der Sinn des Spiels? Macht das dann noch Spaß? Denn du bist ja anscheinend der Meinung:
Delphi-Laie hat folgendes geschrieben: |
DelphiMarkus hat folgendes geschrieben: | | Also das Programm funktioniert schon, aber irgendwie macht es keinen Spaß, ich weiß auch nicht warum. |
Ich hoffe, daß Du es nach meinen Worten nunmehr ahnst.
|
Delphi-Laie hat folgendes geschrieben: |
Mensch gegen Mensch und Programm gegen Programm sind dann zwei unterschiedlichen Ligen (letztere die höhere).
|
Programm gegen Programm wird nie die höhere Liga sein, denn hier spielt Psychologie keine Rolle mehr, die beim "echten" RPS einer der Hauptbestandteile ist. Computer gegen Computer wird, wie bereits gesagt, immer wieder zur reinen Zufälligkeit zurückkommen, da jedes andere Verhalten ausbeutbar macht (und der Gegner das hier auch machen wird). Und dass die Analyse des gegnerischen RNGs keinen Erfolg bringen wird, ist auch klar, da dies frühestens nach einer RNG-Periodenlänge Sinn hätte.
Delphi-Laie - Sa 29.03.08 01:46
nagel hat folgendes geschrieben: |
Hab grad das verlinkte RPS gespielt und muss sagen, dass RPS-Spiele mit sogenannter KI leichter zu besiegen sind als solche mit Zufallsstrategien, auch wenn Delphi-Laie das vermutlich nicht hören will. |
Dann ist das keine Intelligenz, bestenfalls Anti-Intelligenz (absichtliche Dummachung des Programmes). Ein Programm kann per se nicht dümmer als ein lebloser Gegenstand wie z.B. ein Würfel sein und gleichzeitig für sich beanspruchen, echte (wenn auch nur künstliche) Intelligenz zu besitzen. Das widerspricht sich!
Delphi-Laie hat folgendes geschrieben: |
Die m.E. "schwächste sinnvolle" Spielweise kann nur die zufallsgenerierte sein.
Wohl nicht, wie ich oben gerade erklärt hab, ist ein Ergebnis von 13:3 gegen den Zufall nur sehr schwer möglich. |
Die absichtlich verdummte Spielweise des Computers halte ich jedenfalls nicht für sinnvoll (und nur das hatte ich geschrieben). Macht es Spaß, gegen einen Gegner zu spielen, der absichtlich geschwächt wird? Mir jedenfalls nicht.
DelphiMarkus hat folgendes geschrieben: |
Und eine KI kann immer nur so schlau und klever sein, wie sein Programmierer. Wenn der Entwickler davon nichts versteht, dann leidet das Programm darunter, daran kann man nichts ändern.
Das stimmt nun gar nicht. Eine KI kann ihren Programmierer in dem Bereich, für den sie programmiert wurde, bei weitem übertreffen, da ihr ganz andere Möglichkeiten zur Verfügung stehen (schnelle Berechnungen, bessere Merkfähigkeit (Speicher)). Sonst müssten auch alle Programmierer von Schachprogrammen ein Meister in ihrem Spiel sein, was absolut nicht der Fall ist. |
Hier bringst Du zwei Dinge völlig durcheinander. Sind die Konstrukteure und Erbauer so schnell wie ihr Auto?
Auch dann, wenn man einen Algorithmus fehlerfrei erstellt, muß man als Mensch nicht in der Lage sein, ihn immer selbst fehlerfrei abzuarbeiten. Genausogut kann man in Mathematik schlechte Noten erhalten, obwohl man sie verstanden hat, und zwar nur deshalb, weil man sich wiederholt verrechnet. Dämmert es Dir jetzt, wo der Fehler Deiner Argumentation liegt? DelphiMarkus hatte mit seiner Aussage jedenfalls insofern recht, wenn man es prinzipiell, grundsätzlich sieht. Der Programmierer eines Schachspieles kann ja auch an Alzheimer erkranken, und schon ist sein Programm stärker. Ist das eine seröse Widerlegung DelphiMarkus' Argument? Bei Zeitbegrenzung kann der Computer schneller rechnen, und die rein auf Berechnung beruhende, algorithmierte Intelligenz (auch die Zugverschachtelungstiefe) ist höher, doch das ist nur eine "vergegenständlichte", algorithmierte, an einen Computer "vererbte" Intelligenz. Die eigentliche, die lebende Intelligenz geht zweifelsohne vom Programmierer aus. Die vergegenständlichte Intelligenz hängt vom Programmierer ab, wird von diesem erst geschaffen und kann somit per se nicht über ihren Schöpfer hinauswachsen.
Etwas ganz anderes ist hingegen selbstlernende KI. Die steckt aber noch völlig in den Kinderschuhen.
Delphi-Laie hat folgendes geschrieben: |
Gegen einen Pseudozufallsprozeß, wie ihn Algorithmen (Software-Zufallsgeneratoren) liefern, hat man jedoch eine, nämlich dann, wenn man das bißchen Nicht-Zufälligkeit entdecken und für sich ausnutzen kann. Diese Chance ist zwar, selbst, wenn sie geschickt programmatisch ausgewertet und beantwortet wird, immer noch minimal, aber sie ist vorhanden und führt wegen des Gesetzes der großen Zahlen mit Sicherheit zum Sieg, wenn die Anzahl der Runden nur entsprechend groß gewählt wird.
Da gehst du entweder von einem sehr schlechten RNG aus oder willst die Anzahl der Runden wirklich unrealistisch hoch wählen. Realistisch gesehen kannst du diese Daten nicht zu deinem Vorteil auswerten. |
Bei subtilen Spielstärkeunterschieden helfen in der Tat nur sehr hohe Spielrundenanzahlen zu einem sicheren Sieg des Besseren - ansonsten ist die Zufallskomponente größer, der Sieg fraglicher.
Delphi-Laie hat folgendes geschrieben: |
Schließlich gibt es ja auch Weltmeisterschaften für Schachprogramme.
Dieses Argument hast die dir mit deiner ständigen Bezugnahme auf Bewersdorff selbst entkräftet, da seiner Ansicht nach Schach und RPS wenig miteinander zu tun haben, was du sogar selbst weiter unten übernimmst. |
Wo habe ich etwas entkräftet?
Nur, weil Schach und PSS vom Wesen her zwei völlig verschiedene Spiele sind, kann man bei beiden entsprechende Programme (also Schach gegen Schach bzw. PSS gegen PSS nicht gegeneinander antreten lassen? Warum sollte man das nicht können?
| Zitat: |
| Eine Computer-WM würde für RPS auch kaum Sinn machen, weil hier meiner Meinung nach die Zufallsmethode die stärkste wäre, wenn gegen jede andere eine vernünftige gewählte Anzahl an Spielen gespielt wird. |
Dann hast Du das Wesen des PSS-Spieles nicht verstanden. Eine sicher erspielbare Gewinnchance hat man genau und nur dann, wenn man des Gegners Spielweise durchschaut. Auch wenn ein Spieler seine Entscheidungen pseudozufallsgeneriert (und damit auch sein eigenes Gewinnstreben) abgibt, dann hat doch zumindest der andere die dannn eine echte Gewinnchance, wenn er eben nicht zufällig, sondern auf Basis der Analyse der gegnerischen Spielweise antworten (s.u.). Nur gegen echte Zufallszahlen nützen Auswertungen nichts.
| Zitat: |
| Programm gegen Programm wird nie die höhere Liga sein, denn hier spielt Psychologie keine Rolle mehr, die beim "echten" RPS einer der Hauptbestandteile ist. |
Schachprogramme spielen bereits in der höheren Liga. Psychologie? Läßt sich in KI teilweise umsetzen (z.B., wenn das Programm erkennt, daß der Mensch bevorzugt das Element wählt, mit dem er gerade die Runde vorher geschlagen wurde). Die Psychologie spielt beim Menschen nur deshalb eine größere, die entscheidende Rolle, weil kein Mensch im Kopf all' die gegnerischen Entscheidungen behalten und auch noch rechnerisch auswerten kann. Intuition, Bauchgefühl sind mithin nur Ersatzaspekte für eine exakte Analyse.
Ich bin mir ganz sicher, daß PSS-Programme den Menschen schlagen können (es jetzt schon tun oder werden). Bei den Schachprogrammen ist es auch schon so. Die Intuition, die auch bei Spitzenschachspielern vorhanden oder gar wesentlich ist, ist der exakten Auswertung massenhaft anfallender und zu verarbeitender Daten i.d.R. unterlegen, tendenziell sogar haushoch.
| Zitat: |
| Computer gegen Computer wird, wie bereits gesagt, immer wieder zur reinen Zufälligkeit zurückkommen, da jedes andere Verhalten ausbeutbar macht (und der Gegner das hier auch machen wird). Und dass die Analyse des gegnerischen RNGs keinen Erfolg bringen wird, ist auch klar, da dies frühestens nach einer RNG-Periodenlänge Sinn hätte. |
Nein! Gerade das wäre ja eine geschickte KI-PSS-Implementierung: Das eigene Spielverhalten undurchleuchtbar zu lassen (es als reine Reaktion auf des Gegners Spielweise auszurichten). Ein gutes PSS-Programm analysiert mithin nicht nur den Gegner, sondern auch und sogar sich selbst, wie gut das eigene Verhalten ausbeutbar ist (natürlich nur aus der eigenen Sicht). Sogar den pseudozufallszahlenbasierten Entscheidungen kann mit subtilen statistischen Verfahren auf den Zahn gefühlt werden (es gibt dort erhebliche Qualitätsunterschiede, die z.B. für die Kryptologie extrem wichtig sind). Letztendlich doch nur auf Zufallsprozesse zurückgreifen? Würfel gegen Würfel ist kein Spiel i.S. eines Kräftemessens. Es gibt definitiv höhere Spielstärken als die Zufallsprozesse! Entscheidend ist, daß man das gegnerische Spielverhalten stärker auszubeuten imstande ist, als sich selbst ausbeuten (durchschauen) zu lassen.
nagel - Sa 29.03.08 03:00
Ohje, das wird eine lange Antwort...
Delphi-Laie hat folgendes geschrieben: |
nagel hat folgendes geschrieben: | Hab grad das verlinkte RPS gespielt und muss sagen, dass RPS-Spiele mit sogenannter KI leichter zu besiegen sind als solche mit Zufallsstrategien, auch wenn Delphi-Laie das vermutlich nicht hören will. |
Dann ist das keine Intelligenz, bestenfalls Anti-Intelligenz (absichtliche Dummachung des Programmes). Ein Programm kann per se nicht dümmer als ein lebloser Gegenstand wie z.B. ein Würfel sein und gleichzeitig für sich beanspruchen, echte (wenn auch nur künstliche) Intelligenz zu besitzen. Das widerspricht sich!
nagel hat folgendes geschrieben: |
Delphi-Laie hat folgendes geschrieben: |
Die m.E. "schwächste sinnvolle" Spielweise kann nur die zufallsgenerierte sein.
|
Wohl nicht, wie ich oben gerade erklärt hab, ist ein Ergebnis von 13:3 gegen den Zufall nur sehr schwer möglich. |
Die absichtlich verdummte Spielweise des Computers halte ich jedenfalls nicht für sinnvoll (und nur das hatte ich geschrieben). Macht es Spaß, gegen einen Gegner zu spielen, der absichtlich geschwächt wird? Mir jedenfalls nicht.
|
Hast du das RPS schon mal getestet, vom dem ich hier rede (das von
GTA-Place oben verlinkte)? Das ist offensichtlich keine absichtliche Anti-Intelligenz, aber auch der Versuch einer "richtigen" Intelligenz durch Analyse der Spielerentscheidungen macht es durchschaubar und führt letztendlich zu einem Vorteil für den menschlichen Spieler.
Delphi-Laie hat folgendes geschrieben: |
nagel hat folgendes geschrieben: |
DelphiMarkus hat folgendes geschrieben: |
Und eine KI kann immer nur so schlau und klever sein, wie sein Programmierer. Wenn der Entwickler davon nichts versteht, dann leidet das Programm darunter, daran kann man nichts ändern.
|
Das stimmt nun gar nicht. Eine KI kann ihren Programmierer in dem Bereich, für den sie programmiert wurde, bei weitem übertreffen, da ihr ganz andere Möglichkeiten zur Verfügung stehen (schnelle Berechnungen, bessere Merkfähigkeit (Speicher)). Sonst müssten auch alle Programmierer von Schachprogrammen ein Meister in ihrem Spiel sein, was absolut nicht der Fall ist. |
Hier bringst Du zwei Dinge völlig durcheinander. Sind die Konstrukteure und Erbauer so schnell wie ihr Auto?
Auch dann, wenn man einen Algorithmus fehlerfrei erstellt, muß man als Mensch nicht in der Lage sein, ihn immer selbst fehlerfrei abzuarbeiten. Genausogut kann man in Mathematik schlechte Noten erhalten, obwohl man sie verstanden hat, und zwar nur deshalb, weil man sich wiederholt verrechnet. Dämmert es Dir jetzt, wo der Fehler Deiner Argumentation liegt? DelphiMarkus hatte mit seiner Aussage jedenfalls insofern recht, wenn man es prinzipiell, grundsätzlich sieht. Der Programmierer eines Schachspieles kann ja auch an Alzheimer erkranken, und schon ist sein Programm stärker. Ist das eine seröse Widerlegung DelphiMarkus' Argument? Bei Zeitbegrenzung kann der Computer schneller rechnen, und die rein auf Berechnung beruhende, algorithmierte Intelligenz (auch die Zugverschachtelungstiefe) ist höher, doch das ist nur eine "vergegenständlichte", algorithmierte, an einen Computer "vererbte" Intelligenz. Die eigentliche, die lebende Intelligenz geht zweifelsohne vom Programmierer aus. Die vergegenständlichte Intelligenz hängt vom Programmierer ab, wird von diesem erst geschaffen und kann somit per se nicht über ihren Schöpfer hinauswachsen.
|
In diesem Punkt verstehe ich dich absolut nicht. Erst bestätigst du u. a. mit dem Auto-Vergleich das von mir gesagte (dass das, was man baut/programmiert in bestimmten Disziplinen besser sein kann) und dann versuchst du damit plötzlich das Gegenteil zu begründen? Natürlich kann keine Programm seinen "Schöpfer" in echter Intelligenz übertreffen, das hab ich ja auch nie behauptet und ist wohl eher eine philosophische Frage. Meine Aussage war lediglich, dass ein RPS-Programm oder eine beliebige andere auf ein Problem zugeschnittene KI ihre Aufgabe besser erfüllen kann als es ihr Programmierer vermag. Das sagst du ja auch selbst immer wieder. Auf was willst du also hinaus? Warum soll in meiner Argumentation ein Fehler liegen, wenn du andauernd das selbe behauptest?
Delphi-Laie hat folgendes geschrieben: |
Etwas ganz anderes ist hingegen selbstlernende KI. Die steckt aber noch völlig in den Kinderschuhen.
|
Nein, die ist auch nichts anderes. Auch diese KI basiert lediglich auf den Regeln, die ihr mitgegeben wurden und kann damit auch keine echte Intelligenz erreichen.
Delphi-Laie hat folgendes geschrieben: |
nagel hat folgendes geschrieben: |
Programm gegen Programm wird nie die höhere Liga sein, denn hier spielt Psychologie keine Rolle mehr, die beim "echten" RPS einer der Hauptbestandteile ist.
|
Schachprogramme spielen bereits in der höheren Liga. Psychologie? Läßt sich in KI teilweise umsetzen (z.B., wenn das Programm erkennt, daß der Mensch bevorzugt das Element wählt, mit dem er gerade die Runde vorher geschlagen wurde). Die Psychologie spielt beim Menschen nur deshalb eine größere, die entscheidende Rolle, weil kein Mensch im Kopf all' die gegnerischen Entscheidungen behalten und auch noch rechnerisch auswerten kann. Intuition, Bauchgefühl sind mithin nur Ersatzaspekte für eine exakte Analyse.
|
Schachprogramme spielen größtenteils in einer höheren Liga, das ist sicher korrekt. Aber wie du selbst nun schon mehrmals gesagt hast, ist Schach und RPS nicht vergleichbar, was sich hier auch auswirkt. Zum Einwand, dass sich Psychologie in KI umsetzen lässt: Natürlich kann man das. Aber ich hab hier von Computer gegen Computer gesprochen, und das hat nunmal aus prinzipiellen Gründen nichts mehr mit Psychologie zu tun. Du wirfst mir an anderer Stelle vor, ich hätte das Wesen des Spiels nicht verstanden. Nun, ich finde, dass der psychologische Aspekt einer der wesentlichen Punkte dieses Spiels ist, der aber beim reinen Kampf zwischen Programmen nicht mehr vorhanden ist, weshalb es keine höhere Liga sein kann, da das Spiel nur noch teilweise umgesetzt wird. Wie gesagt, in dem Teil ging es mir rein um die Behauptung, dass Programm gegen Programm auf einem höheren Niveau stattfindet als Mensch gegen Mensch, von Programm gegen Mensch war hier nicht die Rede. Deshalb muss ich dich leider zitieren: Dämmert es Dir jetzt, wo der Fehler Deiner Argumentation liegt? :wink:
Delphi-Laie hat folgendes geschrieben: |
Ich bin mir ganz sicher, daß PSS-Programme den Menschen schlagen können (es jetzt schon tun oder werden). Bei den Schachprogrammen ist es auch schon so. Die Intuition, die auch bei Spitzenschachspielern vorhanden oder gar wesentlich ist, ist der exakten Auswertung massenhaft anfallender und zu verarbeitender Daten i.d.R. unterlegen, tendenziell sogar haushoch.
|
Ich hab nie bestritten, dass Programme den Menschen in RPS schlagen können. Wenn überhaupt, hab ich lediglich gesagt, dass eine nicht perfekt umgesetzte KI unter Umständen schlechter ist, als eine auf Zufallsentscheidungen basierende Spielweise.
Und wieder mal muss ich leider sagen, dass der Vergleich mit Schach trotzdem nicht funktioniert. Beim Schach basiert die Spielstärke des Programms auf der Fähigkeit, Spielzüge weit voraus berechnen zu können, da auf jede Aktion nur eine genau definierte Menge an Zügen des Gegners möglich ist. Bei RPS geht es nun überhaupt nicht darum, zukünftige Züge durchzurechnen, sondern aufgrund vergangener ein mögliches Muster erkennen zu wollen. Das ist ein grundlegender Unterschied.
Delphi-Laie hat folgendes geschrieben: |
Sogar den pseudozufallszahlenbasierten Entscheidungen kann mit subtilen statistischen Verfahren auf den Zahn gefühlt werden (es gibt dort erhebliche Qualitätsunterschiede, die z.B. für die Kryptologie extrem wichtig sind).
|
Ja kann. Und der Delphi-Zufallszahlengenerator ist auch nicht der beste und deshalb für Kryptologie nicht geeignet. Aber wie schon mehrmals gesagt, um das auszunutzen braucht man eine derart hohe Anzahl an Spielen, dass es sicher nicht mehr dem von dir ständig erwähnten "Wesen des Spieles" entspricht. Ein halbwegs ernstzunehmener RNG kann nicht in vernünftiger Zeit durchschaut werden, vor allem auch, wenn er nur drei verschiedene Ergebnisse ausgibt.
Delphi-Laie hat folgendes geschrieben: |
Würfel gegen Würfel ist kein Spiel i.S. eines Kräftemessens. Es gibt definitiv höhere Spielstärken als die Zufallsprozesse!
|
Richtig.
Aber eben nur gegen menschliche Spieler.
So, endlich geschafft :) . Nächstes Mal warte ich, bis du mit editieren fertig bist :wink: .
Freue mich auf eine sicher wieder ausführliche Antwort und wünsche noch einen schönen Abend.
DelphiMarkus - Sa 29.03.08 10:11
Da kümmert man sich einen Tag nicht hier rum, da ist auch schon alles vollgeschrieben, wo soll das denn hingehen? :mrgreen:
Ihr diskutiert hier mehr über Möglichkeiten der KI, als von was anderem.
Zu meiner KI habt ihr zwischenzeitlich auch nichts mehr geschrieben.
Ihr könnt euch meinetwegen noch weiter darüber schreiben und Argumente und Gegenargumente finden, aber irgendwann seit ihr dabei über den Osterhasen zu diskutieren. Lasst es wenn möglich nicht so weit kommen. :mrgreen:
Die KI die im Moment im Programm eingebaut ist, ist wirklich sehr einfach. Ich kann es leider auch (noch ?) nicht besser. Wenn jemand also einen Vorschlag hat einfach posten.
Ich werde jetzt auf eure Diskussion nicht weiter eingehen.
GTA-Place - Sa 29.03.08 10:29
Zu deiner KI: Es reicht immer abwechselnd SchereSteinPapier zu nehmen, weil der Computer immer das nimmt, um das zu besiegen, was ihn gerade besiegt hat. Nimm ich also Schere und er hatte Papier, nimmt er in der nächsten Runde Stein.
Vllt. doch noch ein Tick Zufall rein ;-) Aber immerhin haste was neues ausprobiert.
DelphiMarkus - Sa 29.03.08 10:42
| GTA-Place hat folgendes geschrieben: |
| Vllt. doch noch ein Tick Zufall rein ;-) Aber immerhin haste was neues ausprobiert. |
Stimmt! Das wäre besser. Werde das in der nächsten Version einbauen.
nagel - Sa 29.03.08 13:03
@
DelphiMarkus: Sorry, dass wir hier deinen Thread so zweckentfremden. Die Diskussion ist aber nunmal aus
Delphi-Laies Kritik an deinem Programm entstanden, die ich teilweise nicht unkommentiert lassen wollte. Wenn's dir lieber ist, kann man das auch in PNs verlagern.
@
Delphi-Laie: Siehst du, das was
GTA-Place gerade beschrieben hat, ist das was ich meinte: Auch eine ernstgemeinte KI (nicht das was du als Anti-Intelligenz bezeichnest) kann leicht durchschaut werden, wenn man verstanden hat, auf was zu reagieren sie programmiert wurde, und spielt dann schlechter als der reine Zufall. Nochmal: Damit möchte ich nicht sagen, dass Zufallsentscheidungen gegen menschliche Spieler das beste sind.
Delphi-Laie - Sa 29.03.08 21:26
Da freut sich sogar jemand auf meine Antwort (wo ich hier doch einen Flurschaden angerichtet, ja fast eine Vernichtungsspur hinterlassen habe)? Das lese ich das erste Mail. Es freut mich das zu lesen, danke, nagel! Insbesondere deshalb, weil mein schriftliches Auftreten hier so vehement ist und vermutlich auch (nur ein bißchen?) anmaßend wirkt, sodaß ich insgesamt ein wenig aggressiv wirken dürfte.
Nun, so ausführlich wird meine Antwort nicht mehr werden, denn wir haben uns inhaltlich weitgehend angenähert, so schätze zumindest ich es ein. Anscheinend konnten meine Ausführungen nicht nur nachvollzogen, sonder sogar auch akzpetiert werden. Eigentlich sehe ich nur noch bei zwei Deiner Ausführungen Antwortpotential und -bedarf.
Ich gebe Dir recht, daß ich mich nicht ganz klar und widerspruchsfrei bei der Intelligenz ausdrückte. Du antwortetest:
nagel hat folgendes geschrieben: |
| In diesem Punkt verstehe ich dich absolut nicht. Erst bestätigst du u. a. mit dem Auto-Vergleich das von mir gesagte (dass das, was man baut/programmiert in bestimmten Disziplinen besser sein kann) und dann versuchst du damit plötzlich das Gegenteil zu begründen? Natürlich kann keine Programm seinen "Schöpfer" in echter Intelligenz übertreffen, das hab ich ja auch nie behauptet und ist wohl eher eine philosophische Frage. Meine Aussage war lediglich, dass ein RPS-Programm oder eine beliebige andere auf ein Problem zugeschnittene KI ihre Aufgabe besser erfüllen kann als es ihr Programmierer vermag. Das sagst du ja auch selbst immer wieder. Auf was willst du also hinaus? Warum soll in meiner Argumentation ein Fehler liegen, wenn du andauernd das selbe behauptest? |
Das Problem liegt in der Definition der Intelligenz. Nimmt man sie synonym mit Verstand, Geistesschärfe, so kann eine Maschine, leblose Materie im allgemeinen nichts davon besitzen (ob das so allgemeingültig für alle Ewigkeiten gelten wird?). Nachdem Intelligenz - wenn man sie denn so bezeichnet - ansatzweise algorithmier- und mithin programmierbar wurde (und zwar auf der Basis arithmetischer und logischer Operationen - Berechenbarkeit!), war es eigentlich nur eine Frage der Zeit, daß bei der langsamen Arbeitsgeschwindigkeit einzelner Tasks/Threads des menschlichen Gehirns - insbesondere bei Zeitbegrenzungen - mehr Berechnungen, mehr berechnete Intelligenz, also die maschinelle Intelligenz der menschlichen in dieser Hinsicht bzw. unter diesem Aspekt überlegen wurde. Das ist aber quasi nur dieselbe Intelligenz wie die von abgearbeiteten Rechenaufgaben und Algorithmen. Die "eigentliche" Intelligenz steckt im Algorithmus selbst, und die kommt vom Menschen. Oder ist eine mechanische Rechenmaschine intelligent, nur weil auch sie schneller als der Mensch und zudem fehlerfrei werkelt?
Ziemlich stelzig ausgedrückt, aber ich hoffe, daß rüberkam, worauf ich hinauswill.
Es bleibt zu bemerken, daß es eine Weile dauerte, bis akzeptiert wurde, daß die Intelligenz überhaupt aus den menschlichen Gehirnen "rauswandern" kann und in Form von Algorithmen oder gar laufenden Programmen "vergegenständlicht" werden kann. Mit der körperlichen Arbeit der Menschen gilt das schon, seitdem es Arbeit als solche gibt. Nunmehr gilt es auch für geistige Arbeit (gutes Schachspielen ist sogar geistige Schwerarbeit).
| Zitat: |
Etwas ganz anderes ist hingegen selbstlernende KI. Die steckt aber noch völlig in den Kinderschuhen.
Nein, die ist auch nichts anderes. Auch diese KI basiert lediglich auf den Regeln, die ihr mitgegeben wurden und kann damit auch keine echte Intelligenz erreichen. |
Da muß ich Dir energisch widersprechen. Es ist eine ganz andere Ebene (mindestens eine Etage höher), einem Programm beizubringen, daß es sein Verhalten anhand seiner Erfolge und Mißerfolge ausrichten kann, soll und muß. Ob dafür der Algorithmus geändert werden muß oder ob ein solches Lernverhalten mit einem starren, konstanten Algorithmus bereits implementierbar ist, weiß ich nicht, und auf mein diesbezügliches Bauchgefühl verlasse ich mich lieber nicht, meine Vermutung jetzt hier kundzutun. Mit KI habe auch ich schließlich nie irgendetwas konkretes zu tun gehabt. Eine größere Herausforderung wäre sogar die Auto-Anpassung des eigenen (!) Algorithmus. Es soll ja mal eine Programmiersprache gegeben haben, die das konnte (kann?). War/ist es Lisp? Keine Ahnung, könnte aber sein, das ist ja eine KI-Programmiersprache (jedoch eine, die nie über Forschungszwecke hinauskam.
Insgesamt disputieren wir hier schon reichlich am eigentlichen Diskussionsthema vorbei.
Ich danke Dir (und den anderen Mitlesenden) für die Geduld, mich bzw. meine Dozierereien zu ertragen, und wünsche ebenfalls noch einen schönen Abend!
Nette Grüße
Delphi-Laie
Delphi-Laie - Sa 29.03.08 22:31
GTA-Place hat folgendes geschrieben: |
| Zu deiner KI: Es reicht immer abwechselnd SchereSteinPapier zu nehmen, weil der Computer immer das nimmt, um das zu besiegen, was ihn gerade besiegt hat. Nimm ich also Schere und er hatte Papier, nimmt er in der nächsten Runde Stein. |
Das wäre leider ein echter Fehler ("Bug") in der KI: Ein berechenbares, sicher oder zumindest wahrscheinlich vorhersagbares Spielverhalten ist bei dieser Art von Spielen der (Spiel-)Tod des betreffenden Spielteilnehmers und letztlich auch der Freude am Spiel.
| Zitat: |
| Vllt. doch noch ein Tick Zufall rein ;-) Aber immerhin haste was neues ausprobiert. |
Ja, und das finde auch ich sehr gut! Nur wer wagt, gewinnt etwas (und daß man dabei auch Fehler macht, ist nur allzu menschlich, das geht immerhin jedem so, und aus diesen lernt man schließlich auch am besten). Offensichtlich waren meine Predigten in bezug auf echte Spielumsetzung doch nicht umsonst?! :wink:
Delphi-Laie - Sa 29.03.08 23:01
Jetzt scheinen die Verständigungsschwierigkeiten doch wieder zuzunehmen.
nagel hat folgendes geschrieben: |
@ Delphi-Laie: Siehst du, das was GTA-Place gerade beschrieben hat, ist das was ich meinte: Auch eine ernstgemeinte KI (nicht das was du als Anti-Intelligenz bezeichnest) kann leicht durchschaut werden, wenn man verstanden hat, auf was zu reagieren sie programmiert wurde, und spielt dann schlechter als der reine Zufall. Nochmal: Damit möchte ich nicht sagen, dass Zufallsentscheidungen gegen menschliche Spieler das beste sind. |
Genau das
ist doch die Herausforderung: Das eigene Spielverhalten möglichst im Dunkeln lassen und das Gegnerische durchschauen und darauf reagieren (vermutlich ein Zielkonflikt). Ich kann mir aber durchaus vorstellen, daß, wenn man das gegnerische Spielverhalten nur als Reaktion auf die eigene Spielweise, auf die eigenen Entscheidungen erkennt (weil eine daraufhin erfolgte Strategieänderung ja auch erkannt werden dürfte), daß das dann schwieriger abzuwehren ist, als wenn man echte, einseitige Aktionsanteile des Gegners erkennt (die per se ausgenutzt werden können).
Das ist alles dermaßen diffizil, daß schon meine überwiegend aus (hoffentlich als fundiert empfundenen) Annahmen bestehende Beschreibung dieser Sachverhalte eine gewisse vage Schwammigkeit nicht vermeiden läßt. Nochmals: Auch ich hatte nie etwas konkretes mit KI zu tun. Ich versuche hier in Form meiner amateurhaften Überlegungen aufzuzeigen, wie ungeheuer komplex und kompliziert das ist, wenn man es ernsthaft betreibt.
Schließlich hat die Evolution Jahrmilliarden (!!) benötigt, um unsere Intelligenz hervorzubringen. :!:
DelphiMarkus - Sa 05.04.08 10:34
Hallo!
Ich habe die Stufen etwas verändetrt:
Sehr Leicht ist jetzt Leicht
Leicht ist jetzt Mittel
Mittel ist jetzt Schwer
Zufall bleibt Zufall
Wenn das Spiel nicht funktioniert, einfach nochmal die "Einstellungen.ini" im Ordner "\<User>\Anwendungsdaten\SteinScherePapier" löschen.
Und für alle die zu faul dazu sind:
Das Programm im Anhang entfernt die Datei von selbst.
klaus483 - Fr 18.04.08 07:03
Hallo Maximilian,
habe mir mal die Version 1.7.7.7 angesehen.
Was mir auffällt ist, dass die Schriftgröße der Punkteanzeige überhaupt nicht zum Rest das Programms passt. Warum so klein? Mach es doch so wie bei den Spielregeln.
Und eine Anzeige auf welcher Seite der Mensch bzw. der Computer spielt wäre auch gut.
Ansonsten ist das Progi i.O.
Tschüß Klaus483
DelphiMarkus - Fr 18.04.08 15:01
Hi!
Danke für den Tipp!
Ich werde das mal schnell fixen.
//Edit:
Bin jetzt fertig. Neue Version ist oben: 1.7.7.8!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!