unknow chess (alpha) pb 5.50

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

unknow chess (alpha) pb 5.50

Beitrag von True29 »

Heyhey,

hier mein letztes Projekt (unknow chess noch namenlos) in welchem ich versucht hatte eine Chess KI auf die beine zu stellen.
Leider bin ich nun an einem Punkt an welchem ich nicht mehr weiter komme und so stelle ich euch hier den aktuelln stand bereit.
Eventuell hat hier ja jemand lust daran sich zu versuchen ich würde mich freuen ;)

hier eine kleine übersicht was fehlt bzw was integriert ist.
programm Status: alpha
bewegungen: integriert
regeln: fehlen alle
gui: 80% (hier fehlt die zeitanzeige)
ki: 50%
gfx: ist alles vorhanden (spielfeld,figuren,farbliche farkierung für zielfeld)

was fehlt nun noch bei der KI:
ich habe hier versucht das alpha beta pruning zu intergrieren wem das nicht sagt dies ist ein algo welche für jeden spieler des besten nutzen aus dem zug holt.
quelle: https://chessprogramming.wikispaces.com/Alpha-Beta

Man müsste die Methoden/Prozeduren Makemove unmakemove/copyboard integrieren.
quelle: https://chessprogramming.wikispaces.com/Make+Move

ebenso fehlt die berechnung der position
quelle: https://chessprogramming.wikispaces.com/Evaluation

copyrigh von den Grafiken geht an http://graphicriver.net , die grafik darf nicht verkauft werden ;)
bild vom chess.

Bild

compiler: pb 5.50 windows
download: (alles enthalten , source grafik)
https://www.dropbox.com/s/hmnz31pvbqyyw ... s.rar?dl=0

__________________________________________________
Link zum Originalbild hinzugefügt
01.12.2016
RSBasic
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von RSBasic »

:allright:

PS: Ich habe den von dir eingefügten Screenshot zusätzlich zum Originalbild verlinkt, damit man besser sehen kann, wie dein Spiel aussieht.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von True29 »

danke ;)
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: unknow chess (alpha) pb 5.50

Beitrag von DarkSoul »

Habe das Spiel getestet.

Hier mein Feedback:

Bugs:
- Kein Schließen-X?
- Sehr hohe CPU-Last (ein Kern läuft stets auf 100% - durch dieses Spiel)
- Das Schachbrett ist spiegelverkehrt. Die Koordinate A8 ist oben links oder unten rechts (je nachdem, auf welcher Seite man sitzt)
- Die Koordinaten (Zahlen/Buchstaben) um das Schachbrett herum sind nicht mittig und auch teilweise abgeschnitten
- Mein erster Startversuch war, auf "Start new game" im Screen zu klicken. Es irritiert etwas, dass der Klick nicht angenommen wird und man über Game/New... gehen muss.
- "Choose your color, yes = white, no = black" -> Warum das? Warum nicht "Choose your color" mit einem Button "Black" und einem Button "White"?
- Die KI hat bei mir keinen einzigen Zug gemacht, obwohl ich die Frage "Player vs KI" bejaht habe.
- Die Seitenwahl ist funktionslos, wenn beide Seiten von menschlichen Spielern gesteuert wird. Weiß fängt IMMER an.
- Die beiden großen Bauern unterscheiden sich zu schlecht von den kleinen. Idee: Normalerweise hat der große einen eingekerbten Kopf.
- Die großen Bauern lassen sich nicht bewegen.
- Wenn ich eine Figur anklicke, kann ich zwar sehen, wohin ich sie setzen kann, aber es wäre evtl. besser, wenn auch angezeigt werden würde, welche Figur überhaupt ausgewählt wurde.
- Teilweise sind die Anzeigen rechts abgeschnitten
- Total Playtime. Hier sollte die Formatierung der Zeit imho so aussehen: 00:00:00. Die bisherige Anzeige ist eher für Videoschnittprogramme geeignet. 8)
- Entweder sollte das eine nicht korrekt funktionierende Schach-Matt-Erkennung sein, oder der König wird nicht richtig gezogen.. Das kannst du dir jetzt aussuchen. :) (https://postimg.org/image/nwd0jd66t/)
- Die Chessclock führte bei mir dazu, dass alle 3 Stellen (h, m und s) in rasender Geschwindigkeit rückwärts liefen
- Wozu ist der Menübutton "Actions"? Der ist bei mir immer leer.
- Ich kann den eigenen König schachsetzen, wenn ich eine Figur so bewege, dass eine gegnerische Figur dadurch den König im nächsten Zug schlagen kann
- Klick auf die Last-turns-Liste führt gelegentlich zu verbuggten Anzeigen auf dem Spielfeld. Vermutlich alte Züge werden angezeigt, die aber nie stattgefunden haben.
- Die Querlatte vom Kreuz des weißen Königs ist verschwommen

Es fehlen noch wichtige Spielregeln (darum wahrscheinlich noch Alpha):
- En passant (Am gegnerischen Bauern vorbeigelaufener eigener Bauer kann von diesem nachträglich geschlagen werden)
- Ein bis zum Ende durchgelaufender Bauer kann durch eine zuvor verlorene Spielfigur nach Wahl ersetzt werden
- Rochade bei ungezogenem König/Turm
- Eine Figur, die man auswählt, muss man dann theoretisch auch setzen MÜSSEN (im realen Leben ist es so, dass du die Figur auch wirklich setzen musst, wenn du sie angefasst hast)
- Wenn ein König geschlagen worden ist, ist das Spiel zuende und derjenige hat gewonnen, der seinen König noch hat.

Anregungen:
- Vielleicht dunkles Grün oder dunkles Rot anstatt das Schwarz als Hintergrund? Ich finde den Kontrast auf Dauer sehr anstrengend.
- Das Spielbrett kann locker die doppelte Größe haben.
- Ich finde das Spiel grafisch ziemlich hässlich. Ein schönes Holzbrett und schöne Figuren würden das Spiel für mich schon viel attraktiver machen.

Ich hoffe, dir helfen diese Infos weiter. :)
Bild
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von True29 »

danke für deine Kritik. und das ausführliche Testen.
Eins hatte ich vielleicht vergessen zu erwähnen ich bin kein schach spieler ;) demnach kann ich das nicht so nachempfinden was wichtig ist.
werde einige punkte davon umsetzten ;)

thema grafik:
Bei dem spiel war eher mein Ziel mich dem Thema chess KI zu widdmen weshalb ich die grafik minimal gehalten habe.
Ich hätte für die figuren auch platzhalter lassen können.

Grüße
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: unknow chess (alpha) pb 5.50

Beitrag von DarkSoul »

Ich bin auch kein Schachspieler. :mrgreen:

Ich spiele mal aus Jokus Schach mit jemandem, der genauso wenig Ahnung hat. Dann wirds aber Räuberschach (mit Schlagzwang) :mrgreen: :mrgreen:

Habe meine Schachfiguren vor Jahren selber aus Holz geschnitzt, weil ich zu geizig war, welche zu kaufen. :mrgreen:

Wenn dir nur die KI wichtig ist, wäre es vielleicht eine Überlegung wert, das entsprechende .pb in eine DLL auszulagern, die in ein bestehendes Schachspiel eingebaut werden kann. :mrgreen:

Dann wäre die DLL das "wertvolle" und die GUI drumherum nur Beiwerk zum Testen.

Schade, dass du das Projekt mehr oder weniger aufgegeben hast. :|
Bild
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von True29 »

hm , zum thema aufgeben. ich habe da bestimmt schon viel zeit in die KI gesteckt.
jedoch ist es da schwierig hilfe zu bekommen.

mache jetzt mal ein zwischen projekt und dann vielleicht weiter ;)
demotiviert wenn man in einem projekt nicht wirklich selbst weiterkommen kann :D
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Re: unknow chess (alpha) pb 5.50

Beitrag von Helle »

Haste denn mein simples Schachprogramm hier ein paar Seiten weiter angeschaut? Habe das eben für Unicode aktualisiert:
http://www.mdcc-fun.de/k.helbing/Little-Timpetu/LT.zip
Wenn Grafik weniger wichtig ist kann man für Unicode auch die dort enthaltenen Schach-Figuren-Symbole verwenden; simples Beispiel:

Code: Alles auswählen

;Unicode einschalten für ältere PB-Versionen!
;Unicode-Schachfiguren:
;Weisser König 	    = 9812
;Weisse  Dame 	    = 9813
;Weisser Turm 	    = 9814
;Weisser Läufer     =	9815
;Weisser Springer   =	9816
;Weisser Bauer 	    = 9817
;Schwarzer König 	  = 9818
;Schwarze Dame 	    = 9819
;Schwarzer Turm 	  = 9820
;Schwarzer Läufer	  = 9821
;Schwarzer Springer	= 9822
;Schwarzer Bauer 	  = 9823

Procedure Brettmal(Pixel.f, Width.i, Height.i, StartPosX.i, StartPosY.i)
  FontHigh = Int(Pixel / (GetDeviceCaps_(GetDC_(WindowID(0)), #LOGPIXELSY) / 96.0)) ;Font anpassen
  LoadFont(0, "Arial Unicode MS", FontHigh)
  ;LoadFont(0, "Arial Unicode MS Bold", FontHigh)     ;Geschmacks-Sache
  Font0 = FontID(0)

  PosX = StartPosX
  PosY = StartPosY
  Feldfarbe = $ffffff                  ;Weiss
  Restore Grundstellung
  Restore Figuren
  For i = 0 To 63                      ;64 Felder
    Feld = PeekB(?Grundstellung + i) & $FF
    Select Feld    
      Case $11                         ;weisser Bauer usw.
        Figur = PeekW(?Figuren)
      Case $12
        Figur = PeekW(?Figuren + 2)
      Case $13
        Figur = PeekW(?Figuren + 4)
      Case $14
        Figur = PeekW(?Figuren + 6)
      Case $15
        Figur = PeekW(?Figuren + 8)
      Case $16
        Figur = PeekW(?Figuren + 10)
      Case $81
        Figur = PeekW(?Figuren + 12)
      Case $82
        Figur = PeekW(?Figuren + 14)
      Case $83
        Figur = PeekW(?Figuren + 16)
      Case $84
        Figur = PeekW(?Figuren + 18)
      Case $85
        Figur = PeekW(?Figuren + 20)
      Case $86
        Figur = PeekW(?Figuren + 22)
      Default
        Figur = 32                     ;Leerfeld
    EndSelect

    If i > 0 And (i % 8 = 0)
      PosX = StartPosX
      PosY + Height
      Feldfarbe ! ($ffffff - $cc99)    ;Wechsel Weiss <> Grün
    EndIf

    TextGadget(i, PosX, PosY, Width, Height, Chr(Figur))
    SetGadgetFont(i, Font0)
    SetGadgetColor(i, #PB_Gadget_BackColor, Feldfarbe)
    PosX + Width
    Feldfarbe ! ($ffffff - $cc99)      ;Wechsel Weiss <> Grün
  Next
EndProcedure


OpenWindow(0, 0, 0, 360, 400, "Schach-Figuren Unicode", #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget)
  Brettmal(24.0, 40, 45, 20, 20)


  While Event <> #PB_Event_CloseWindow      ;zum Test als Schleife
    Event = WaitWindowEvent()
    If Event = #PB_Event_SizeWindow
      Breite = WindowWidth(0)
      Hoehe = WindowHeight(0)
      If Breite >= 700 And Hoehe >= 700     ;Testwerte, willkürlich. Selber anpassen!
        Brettmal(40.0, 60, 65, 20, 20)
       ElseIf Breite >= 600 And Hoehe >= 600
        Brettmal(36.0, 55, 60, 20, 20)
       ElseIf Breite >= 500 And Hoehe >= 500
        Brettmal(32.0, 50, 55, 20, 20)
       ElseIf Breite >= 400 And Hoehe >= 450
        Brettmal(28.0, 45, 50, 20, 20)
       ElseIf Breite < 400 Or Hoehe < 450
        Brettmal(24.0, 40, 45, 20, 20)
      EndIf
    EndIf
  Wend
End

DataSection
Grundstellung:
  Data.b $84, $82, $83, $85, $86, $83, $82, $84
  Data.b $81, $81, $81, $81, $81, $81, $81, $81
  Data.b $00, $00, $00, $00, $00, $00, $00, $00
  Data.b $00, $00, $00, $00, $00, $00, $00, $00
  Data.b $00, $00, $00, $00, $00, $00, $00, $00
  Data.b $00, $00, $00, $00, $00, $00, $00, $00
  Data.b $11, $11, $11, $11, $11, $11, $11, $11
  Data.b $14, $12, $13, $15, $16, $13, $12, $14

Figuren:
  Data.w 9817, 9816, 9815, 9814, 9813, 9812      ;wB, wS, wL, wT, wD, wK
  Data.w 9823, 9822, 9821, 9820, 9819, 9818      ;sB, sS, sL, sT, sD, sK

EndDataSection
Einfach mal das Fenster vergrößern usw.
Übrigens, die großen Bauern mit Schlitz nennt man Läufer... :mrgreen:
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von True29 »

@Helle gute Arbeit wenn du das alles alleien und selbst programmiert hast ;)
jedoch bringt mir das ja alles nichts da ich es selbst hinbekommen wollte danke trotzdem.
wie lange hast du für das ganze so gebraucht bis alles lief ?
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: unknow chess (alpha) pb 5.50

Beitrag von NicTheQuick »

Das sieht so nach 30-60 Minuten Arbeit aus.
Bild
Antworten