跳到主要內容

精選文章

2026 和 AI 一起寫程式 - 3 井字遊戲 - 1 kotlin 2.3

前篇: 2026 和 AI 一起寫程式 - 2 井字遊戲 - 0


( 上圖設計方式請參考 - 用 AI 設計漫畫角色 )


續前篇; 在介紹用 Q-learning 的方式前, 先來看看以前遊戲的決策


在遊戲決策演算法中, 有一個叫做 MiniMax 演算法 - 維基百科

再開一個 repository : https://github.com/neojou/MiniMax-Tic-Tac-Toe.git

順便整理記錄一下先前做的


1. 先在 Github 新開一個 Repository

2. 用 IntelliJ IDEA clone github 的 Repository

   ( 我是用社群免費版的, 可以發現這個和 Android Studio 非常像^^ )


3. 可以用 IntelliJ IDEA -> Check for Updates... 更新到最新 


4. 重要檔案, 可以把這些檔案從原本可執行的專案 copy 過來

    build.gradle.kts

    gradle.properties -> 先前有遇到編譯時 memory 問題, 後詳述

    settings.gradle.kts

    src/ 下目前按照 Kotlin Multiplatform 的規劃, 先 desktop / web (wasmJS) 共用

    有 commonMain , desktopMain, wasmJsMain 三個, 其他像 for Android 和 iOS 的,

    之後再來加;

    src/commonMain/

            kotlin/com/neojou/App.kt. -> 進入點

    src/desktopMain/

            kotlin/com/neojou/Main.kt -> Desktop 從這邊開始執行

    src/wasmJsMain/

            kotlin/com/neojou/WasmMain.kt -> wasm/JavaScript 從這開始

            resources/index.html -> 執行時 browser 一開始讀的檔, 裡面有定義 js 名稱

    

5. kotlin compiler 版本

   在 build.gradle.kts 一開始的地方

plugins {
kotlin("multiplatform") version "2.3.0"
id("org.jetbrains.compose") version "1.10.0"
id("org.jetbrains.kotlin.plugin.compose") version "2.3.0"
}

   可以參考官網:https://kotlinlang.org/

   目前最新的是 2.3.0 版

   IDEA 右邊可以開啟 Gradle 的視窗, sync 時會載入


   Kotlin 2.3 看來在 Multiplatform 有些加強, 換成這版看看問題會不會比較少^^


JVM 與 Native

在 Kotlin/JVM 上,2.3.0 新增支援產生 Java 25 位元碼。
在 Kotlin/Native 上,2.3.0 透過 Swift export 強化互通(例如支援 native enum 與 variadic 參數),並把 C/Objective-C library import 推進到 Beta,同時改善 Release 建置效能。

Wasm 與 JS

在 Kotlin/Wasm 上,2.3.0 提到預設啟用 KClass.qualifiedName(降低從 JVM 搬到 Wasm 的行為落差),並在例外處理與字元儲存等面向做了更新(例如 wasmWasi 目標的例外處理提案預設策略)。
在 Kotlin/JS 上,2.3.0 帶來實驗性的 suspend 函式匯出到 JavaScript、LongArray 的 BigInt64Array 表示選項、以及 companion object 匯出/存取方式的統一與更多互通註解支援。



6. Gradle 版本

    可以用 % ./gradlew --version 看到

    官網:https://gradle.org/

     目前最新版 : 9.3.1 - Release Notes

    但 kotlin 2.3.0 其實還是用 Gradle 9.0.0 來做; 所以可能在這版會比較穩定

    https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin



% ./gradlew wrapper --gradle-version=9.0.0 && ./gradlew wrapper


7. gradle.properties

    先前在 wasm 遇到了 memory 問題, 所以新增這個檔, 設定如下:

% cat gradle.properties
org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8
kotlin.daemon.jvmargs=-Xmx4g






留言

熱門文章