- LiFePO4 Speicher Test         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Mühlespielender Bot

  1. #11
    Murus
    Gast
    Anzeige

    Praxistest und DIY Projekte
    ja, das schwankt natürlich auch... das Mecano hat halt schon ein wenig Spiel... Naja, was solls, er ist ziemlich genau, ich muss noch zwei Felder verbessern, dann steuert er alle fehlerlos an.

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    35
    Beiträge
    2.624
    Wirklich ein schickes Projekt! :o)
    Hat man theoretisch eine Chance gegen ihn zu gewinnen, oder lässt er keine Fehler zu?!

    Viele Grüße
    Florian

  3. #13
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Soll keine Kritik sein, Projekt ist super, aber: fehlen für ein normales Mühlespiel nicht ein paar Felder ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    nice, ich hab auch lächeln müssen @video

    sind die LM317 wirklich nötig für die servos? wie hoch ist deine versorgungsspannung? unter 8V schliesse ich meine Servos direkt an und der atmega erzeugt das pwm-signal. das hat bisher immer geklappt, und meine L78S05 werden nicht belastet. ist aber nur ein gedanke.

    ich habe vor 2-3 monaten ein mühlespiel in c programmiert allerdings "all virtual". an der KI bin ich aber gescheitert, so dass man nur im netzwerk spielen konnte. (fällt mir nur grade so ein)

    in welcher sprache hast du es programmiert? n bissl beispielcode würde wohl manche augen hier erglänzen lassen..

    ja, picnick, da scheinen 8 felder zu fehlen. ob man allerdings eine echte mühle-KI in einen atmel packen kann, wage ich zu bezweifeln.

    gruesse, eure katz

  5. #15
    Murus
    Gast
    Oh, ganz vergessen: Es ist einfache Mühle...
    Der Bot verliert nicht. Wenn der Gegner einigermassen klar im Kopf ist dauert so das Spiel unendlich lange. Der Bot macht keine Fehler.
    Versorgungsspannung vom Trafo (12V) im Leerlauf sind 17V... Also nix für Servos. Jo, für die echte Mühlen-KI wars zu dick, zu viele Möglichkeiten und Strategien. Ich hab mit einem ETH-Prof gesprochen, der damals das Mühlespiel komplett identifiziert hat (alle möglichen Situationen )das sind Daten über 2GB... Sein Bot hat alle möglichen Situationen gespeichert und führt auf jede Situation den passenden Zug aus..

    Meine KI denkt 2 Ebenen tief, d.H. er betrachtet alle Möglichkeiten, die er selber fahren kann, und danach noch alle folgenden Möglichkeiten, die der Gegner fahren kann. (Minimax-Algorithmus). Ich verwende keine "Vereinfachungsstategien" wie Alpha-Beta Pruning, er braucht eh nur 300ms um den Zug zu berechnen.

    Programmiert in Bascom, sind ca. 1200 Zeilen bis jetzt, werden wohl noch 500 mehr.

    Hier mal ein Codeschnipsel:
    Code:
    Ebene2:
    
    If Spielphase = 0 Then
    
    'Aus dem Ebene1-Array müssen schrittweise die Feler ausgelesen werden. Dann wird daraus jeweils ein neues Feld erzeugt, welches dann bewertet wird.
    
    
    For I = 1 To Zugzahl                                        ' Zugzahl aus voriger Routine. Es müssen die jeweils leicht veränderten Felder ins Momfeld eingetragen werden.
    Zugzahl2 = 0
    A = I - 1
    A = A * 9
    
    For M = 1 To 9
    A = A + M
    If Ebene1(a) = 0 Then                                       'Hier wird bestimmt, wieviele Züge man vom Knoten der ersten Ebene in die zweite Ebene machen kann.
    Incr Zugzahl2
    End If
    A = A - M
    Next M
    
    For B = 1 To Zugzahl2
    C = 1
    A = I - 1
    A = A * 9
    
    For J = 1 To 9
    
    A = A + J
    If C = 1 Then
    
    If Ebene1(a) <> 0 Then
    Momfeld(j) = Ebene1(a)
    Elseif Ebene1(a) = 0 Then
    Momfeld(j) = Gezogenezuege2                                 ' Der (virtuelle) Gegner ist nun dran mit setzen.
    Ebene1(a) = 10
    C = 2
    End If
    
    Elseif C = 2 Then                                           
    Momfeld(j) = Ebene1(a)
    
    End If
    
    A = A - J
    Next J
    
    For D = 1 To 9
    If Momfeld(d) = 10 Then                                     ' Die 10s werden durch 0 ersetzt.
    Momfeld(d) = 0
    End If
    Next D
    
    Gosub Bewerten                                              ' Hier wird das momentane Momfeld zur Bewertung geschickt.Es wird hierher zurückgekehrt
    
    Next B
    Next I
    
    For I = 1 To 81
    If Ebene1(i) = 10 Then
    Ebene1(i) = 0
    End If
    Next
    Hier berechnet er alle möglichen Züge, die der Gegner nach seinem Zug machen kann, falls man noch in der ersten Spielphase ist (Steine setzen), diese speichert er in einem Array.

    Der Code ist sehr "holprig" geraten, man könnte noch viele Variablen einsparen und verbessern, das lass ich vorerst aber, never change a running system...
    Entwickelt hab ich die Speicherstrategien und Abläufe auf einem A3-Block, hat sich super bewährt!

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Zitat Zitat von Murus
    Oh, ganz vergessen: Es ist einfache Mühle...
    Der Bot verliert nicht. Wenn der Gegner einigermassen klar im Kopf ist dauert so das Spiel unendlich lange. Der Bot macht keine Fehler.
    Versorgungsspannung vom Trafo (12V) im Leerlauf sind 17V... Also nix für Servos. Jo, für die echte Mühlen-KI wars zu dick, zu viele Möglichkeiten und Strategien. Ich hab mit einem ETH-Prof gesprochen, der damals das Mühlespiel komplett identifiziert hat (alle möglichen Situationen )das sind Daten über 2GB... Sein Bot hat alle möglichen Situationen gespeichert und führt auf jede Situation den passenden Zug aus..
    Ist Mühle wirklich so komplex? Ich hätte gedacht, das sei relativ problemlos in Echtzeit zu beachten, da es ja nicht soo viele Mögliche Zustände und Zugmöglichkeiten gibt (im Gegensatz z.B. zu Schach).

  7. #17
    Murus
    Gast
    Ja, für mich war es zu komplex... Es gibt doch noch einige Taktiken, die man eventuell nicht mit dem Minimax-Algorithmus hätte lösen können und in einer Bibliothek hätte ablegen müssen.

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Zitat Zitat von Murus
    Ja, für mich war es zu komplex... Es gibt doch noch einige Taktiken, die man eventuell nicht mit dem Minimax-Algorithmus hätte lösen können und in einer Bibliothek hätte ablegen müssen.
    Ja, das mit den Taktiken stimmt. Ähnliche Probleme hatte ich vor einiger Zeit bei einem Vier-Gewinnt-Programm. Der Computer spielt dann zwar in gewisser Weise perfekt, aber eben ohne echte Taktik - vlg. Fussball-WM...

  9. #19
    Murus
    Gast
    So, hier mal ein weiteres, etwas besseres Video.
    Hier platziert er den Stein einigermassen zufällig auf die einzelnen Felder und schaut, ob der Sensor anspricht.
    Z.T. müssen die Steine nicht ganz mit dem weissen Feld übereinstimmen, denn der Sensor befindet sich nicht immer genau unter dem weissen Feld..., hab da etwas ungenau gearbeitet, leider... Also nicht wundern, wenn er den Stein "danebenstellt"
    Aber er steuert unterdessen alle Felder fehlerlos an.

    Limitierender Faktor in Bezug auf die Betriebsdauer ist der Elektromagnet, bei 50°C lass ich ihn abkühlen...

    Hier der Link:
    http://video.google.de/videoplay?doc...68472960615592

    Herzlichen Gruss
    Mario

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    11.01.2005
    Ort
    Bayern
    Alter
    35
    Beiträge
    161
    der ganze aufbau sieht sehr schön gemacht aus finde ich.

    mfg
    (-_-)

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests