feat: Improved how NNUE Evalutes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package de.nowchess.ui
|
||||
|
||||
import de.nowchess.api.board.Color.Black
|
||||
import de.nowchess.api.board.Color.{Black, White}
|
||||
import de.nowchess.bot.util.PolyglotBook
|
||||
import de.nowchess.bot.BotDifficulty
|
||||
import de.nowchess.bot.bots.{ClassicalBot, HybridBot, NNUEBot}
|
||||
@@ -16,10 +16,9 @@ object Main:
|
||||
// Create the core game engine (single source of truth)
|
||||
val engine = new GameEngine()
|
||||
|
||||
|
||||
val book = PolyglotBook("../../modules/bot/codekiddy.bin")
|
||||
|
||||
engine.setOpponentBot(HybridBot(BotDifficulty.Easy, book = Some(book)), Black);
|
||||
engine.setOpponentBot(HybridBot(BotDifficulty.Easy, book = Some(book)), White);
|
||||
|
||||
// Launch ScalaFX GUI in separate thread
|
||||
ChessGUILauncher.launch(engine)
|
||||
|
||||
@@ -6,24 +6,26 @@ import de.nowchess.api.board.{Color, Piece, PieceType}
|
||||
/** Utility object for loading chess piece sprites. */
|
||||
object PieceSprites:
|
||||
|
||||
private val spriteCache = scala.collection.mutable.Map[String, Option[Image]]()
|
||||
private val spriteCache = scala.collection.mutable.Map[String, Image]()
|
||||
|
||||
/** Load a piece sprite image from resources. Sprites are cached for performance.
|
||||
*/
|
||||
def loadPieceImage(piece: Piece, size: Double = 60.0): Option[ImageView] =
|
||||
val key = s"${piece.color.label.toLowerCase}_${piece.pieceType.label.toLowerCase}"
|
||||
spriteCache.getOrElseUpdate(key, loadImage(key)).map { image =>
|
||||
new ImageView(image) {
|
||||
fitWidth = size
|
||||
fitHeight = size
|
||||
preserveRatio = true
|
||||
smooth = true
|
||||
}
|
||||
def loadPieceImage(piece: Piece, size: Double = 60.0): ImageView =
|
||||
val key = s"${piece.color.label.toLowerCase}_${piece.pieceType.label.toLowerCase}"
|
||||
val image = spriteCache.getOrElseUpdate(key, loadImage(key))
|
||||
|
||||
new ImageView(image) {
|
||||
fitWidth = size
|
||||
fitHeight = size
|
||||
preserveRatio = true
|
||||
smooth = true
|
||||
}
|
||||
|
||||
private def loadImage(key: String): Option[Image] =
|
||||
private def loadImage(key: String): Image =
|
||||
val path = s"/sprites/pieces/$key.png"
|
||||
Option(getClass.getResourceAsStream(path)).map(new Image(_))
|
||||
Option(getClass.getResourceAsStream(path)) match
|
||||
case Some(stream) => new Image(stream)
|
||||
case None => sys.error(s"Could not load sprite: $path")
|
||||
|
||||
/** Get square colors for the board using theme. */
|
||||
object SquareColors:
|
||||
|
||||
Reference in New Issue
Block a user