You are not logged in.

daniel7558

Tagträumer

  • "daniel7558" is male
  • »daniel7558« is a verified user
  • "daniel7558" started this thread

Posts: 319

Date of registration: Feb 13th 2010

  • Send private message

1

Wednesday, March 3rd 2010, 7:46pm

Wie macht man ein Programm "dumm"

Hi leute,
jetzt wo ich schon "bessere" Spiele schreibe, habe ich mir die Frage gestellt, wie man ein Programm "dumm" macht. Man kann ja für jede Möglichkeit eine "konterMöglichkeit" dem PC geben und schon schafft der Spieler gerade mal Unentschieden. Bei einem Streichholzpiel* (von mir) ist es völlig unmöglich zu gewinnen....der PC macht keinen Fehler, aber der Spieler, auch wenn dieser super spielt, hat er keine chance.

*(20 Streichhölzer sind am Tisch und jeder nimmt abwechselnd 1 bis 5 weg. wer das letzte wegnimmt, hat verloren)

Da mit Zufall(szahlen) zu arbeiten ist doch peinlich....;-)

Danke
Daniel
SUCHE:
Alles um den C64, verschiedene Konsolen, Bastelsachen,Kleinkram....ich kann so ziemlich alles gebrauchen.

BastetFurry

LionMod (Tame until taunted!)

  • "BastetFurry" is male

Posts: 4,409

Date of registration: Apr 18th 2005

Location: Tiefes Umbra ;) (Essen)

  • Send private message

member since 60 month member since 60 month member since 60 month member since 60 month member since 60 month

2

Wednesday, March 3rd 2010, 8:31pm

Da mit Zufall(szahlen) zu arbeiten ist doch peinlich....;-)

Aber genau so wurde es früher gemacht gemacht.

Source code

1
if int(rnd*100) < gewonnenespiele then gewonnenespiele -=1:spielverlieren


Jetzt muss man nur noch dafür sorgen das der Spieler es nicht merkt das der Computer gerade mit Absicht verliert.

Bei einem guten 3D-FPS Deathmatch Bot wird übrigens nachgeschaut wie gut der Spieler ist, also Trefferwahrscheinlichkeit, wie schnell der Spieler durch die Karte marschiert, wie oft er sich auf der Karte verheddert, etc....
Je nachdem wie gut da so ein "Score" ausfällt passt sich der Bot automatisch an, schießt also öfters daneben, nimmt eine schlechtere Route, etc...

pi64

der berserker unter den sanftmütigen

  • "pi64" is male

Posts: 191

Date of registration: Sep 8th 2009

  • Send private message

3

Wednesday, March 3rd 2010, 8:45pm

man kann einfach auch bei jedem ai-zug eine gewisse prozentchance einbauen, dass die ai eben nicht den optimalen gegenzug sondern einen etwas blöderen macht. den schwierigkeitsgrad kann man dann einfach anpassen, indem man eben die wahrscheinlichkeit ändert.
8 bit sie zu knechten...

TheRyk

bekannt aus Lehrfilmen wie "2 minus 3 ergibt negativen Spaß"

  • "TheRyk" is male

Posts: 3,258

Date of registration: Mar 14th 2008

Location: Berlin

  • Send private message

member since 24 month member since 24 month

4

Wednesday, March 3rd 2010, 9:35pm

Man KANN natürlich auch eine verstellbare Schwierigkeit/AI einbauen, dann wirkt es nicht "peinlich". ;)

Beim Streichholzspiel entscheidet natürlich letztlich bei 2 Spielern, die beide das Prinzip durchschaut haben, die Anzahl der Hölzer und wer anfängt. So gesehen muss man bei "Anfänger-Modus" eben (z.B. durch RND-Verzweigung) dümmere Züge einbauen, um dümmere menschliche Spieler nicht gleich abzuschrecken.
PREZ SEZ: SKEWL SUX!
_______________________________________________
SUCHE:
- Schrott-Gehäuse C64G (brauche nur das Power-Schild) gegen kleines Geld + Porto
- Atari 1010 Program Recorder (Datasette)
- SIO2PC inkl. Kabel

daniel7558

Tagträumer

  • "daniel7558" is male
  • »daniel7558« is a verified user
  • "daniel7558" started this thread

Posts: 319

Date of registration: Feb 13th 2010

  • Send private message

5

Thursday, March 4th 2010, 6:25pm

Quoted

Jetzt muss man nur noch dafür sorgen das der Spieler es nicht merkt das der Computer gerade mit Absicht verliert.


Wow....also entscheided der Zufall, ob man gewinnt oder verliert.....und ich dachte immer ich wäre gut..... ^^ ^^

aber bei heutigen Spielen sind da keine Zufälle mehr da, oder?


ok, dann werde ich mal den Zufall in das Streichholzspiel miteinbauen ;)

Daniel
SUCHE:
Alles um den C64, verschiedene Konsolen, Bastelsachen,Kleinkram....ich kann so ziemlich alles gebrauchen.

sign-set

Pixel-Schieber

  • "sign-set" is male
  • »sign-set« is a verified user

Posts: 942

Date of registration: Sep 22nd 2006

Location: Bergisch Gladbach

  • Send private message

member since 36 month member since 36 month member since 36 month

6

Thursday, March 4th 2010, 6:34pm

Nunja, wie willst Du sonst einer "perfekten" Maschine menschliches Versagen beibringen?
Der Mensch macht es entweder richtig oder falsch. Wie oft der Mensch es richtig macht, bestimmt, ob er gut ist. Theoretisch sind beim Menschen wohl auch nur 99x von 100x Richtig möglich - jeder macht mal Fehler. Mein Gott, jetzt wird es philosophisch.

Wenn Du also das oben angesprochene Beispiel mit der Zahl 100 verwendest, bestimmst Du durch Verschieben des "Richtig" - Wertes nach oben oder unten, wie intelligent der Computer ist oder ob er sich "zufällig" verrechnet.

In Deinem Beispiel gibt es keine andere Lösung, da Dein Spiel einfache Mathematik ist. Bei Schachprogrammen wird das sicherlich anders gelöst - hier werden die Anzahl der vorberechneten Schritte bis zum Sieg reduziert, der Schachcomputer denkt dann mehr oder weniger voraus.
RETURN - das 8-Bit Magazin.
Commodore, Atari, Nintendo, Sinclair, und viele mehr!

7

Thursday, March 4th 2010, 6:37pm

der Begriff AI ist ja weit gefaechert.
Einfach die Regeln eines einfachen Spieles zu kennen ist ja nun nicht grade intelligent (z.B.: Rate eine Zahl - AI).
Alle echten AI's nutzen an irgendeiner Stelle ein Bewertungs-schema das auf das Problem hin mehr oder weniger optimiert ist.
(wer sich fuer AI interessiert: 4 gewinnt ist grossartig dafuer!)
Das kann man bei echter AI dann auch einfach gegen beliebig unguenstigere Varianten austauchen um schlechter zu werden.
Wenn eine AI bei einem shooter extra schlechter trifft ist das eher eine eigene AI fuer einen 'schlechten' Spieler.

Similar threads