- img_1_1781526290590.jpg (213.63 KiB) 查看 13 次
搜索找到 5934 个匹配
- 2026年 6月 15日 20:18
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
如果藍方往上走,則會在第三步停留在第一步停留的地方。
規則需要修改:當走完三步後,前兩步停留的地方如果有兩個空位,則選擇其一放置話筒,如果只有一個空位,則把話筒放在這個空位,如果沒有空位,則無需放置。
規則需要修改:當走完三步後,前兩步停留的地方如果有兩個空位,則選擇其一放置話筒,如果只有一個空位,則把話筒放在這個空位,如果沒有空位,則無需放置。
- 2026年 6月 15日 19:34
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
"io-modal"和"io-textarea"的樣式應寫到<style>中。
當進入行動階段,又回退到開局階段,又前進至行動階段時,最後兩個角遊戲板沒有自動補上。
當進入行動階段,又回退到開局階段,又前進至行動階段時,最後兩個角遊戲板沒有自動補上。
- 2026年 6月 15日 19:25
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
gemini 3.1 pro 真是太好用啦!
以下是實現您所有需求的代碼修改指引,請根據步驟替換或新增對應的代碼塊:
### 1. 修改 HTML 結構(加入導入導出按鈕及模態框,更新消息列結構)
將原本的 `<div id="message"></div>` 替換為支援最大化與文字獨立的結構:
```html
<div id="message" style="display: none; justify-content: center; align-items: center; gap: 10px;"></div>
```
在 `<div id="history ...
以下是實現您所有需求的代碼修改指引,請根據步驟替換或新增對應的代碼塊:
### 1. 修改 HTML 結構(加入導入導出按鈕及模態框,更新消息列結構)
將原本的 `<div id="message"></div>` 替換為支援最大化與文字獨立的結構:
```html
<div id="message" style="display: none; justify-content: center; align-items: center; gap: 10px;"></div>
```
在 `<div id="history ...
- 2026年 6月 15日 19:14
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
改進:
當開局階段結束,行動階段開始時,btn-turn-undo應可點擊(現在是會變為disable),當點擊它時將退回到開局階段的最後一步,這時如果再點擊btn-turn-redo則會再回到行動階段的首回合。
當一局棋結束時,會展示一個全屏的文字提示「第n局結束!本局勝者:……」和「選擇是否再戰一局按鈕」的div元素。現在要在這個div元素的右上角加上一個最小化svg按鈕,點擊它將隱藏這個div。同時div#message將顯示「第n局結束!本局勝者:……」,其右方將出現一個最大化svg按鈕,當點擊時,之前的div元素將再次顯示。
當兩局棋結束時,或者第一局結束時選擇「結束遊戲顯示總分 ...
當開局階段結束,行動階段開始時,btn-turn-undo應可點擊(現在是會變為disable),當點擊它時將退回到開局階段的最後一步,這時如果再點擊btn-turn-redo則會再回到行動階段的首回合。
當一局棋結束時,會展示一個全屏的文字提示「第n局結束!本局勝者:……」和「選擇是否再戰一局按鈕」的div元素。現在要在這個div元素的右上角加上一個最小化svg按鈕,點擊它將隱藏這個div。同時div#message將顯示「第n局結束!本局勝者:……」,其右方將出現一個最大化svg按鈕,當點擊時,之前的div元素將再次顯示。
當兩局棋結束時,或者第一局結束時選擇「結束遊戲顯示總分 ...
- 2026年 6月 15日 14:22
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
【重大問題】藍方明明將要獲勝,卻在最後一步亂走(上左下)。
- 2026年 6月 15日 14:16
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
gemini 3.1 pro
這款 3D 桌遊的開發非常精彩!蒙地卡洛樹搜尋 (MCTS) 與歷史紀錄棧 (Undo/Redo) 在邏輯狀態管理上非常複雜,你目前建立的框架已經相當有水準。
針對你提出的需求與問題,我整理了目前 AI 的邏輯分析、需要修正的致命 Bug,以及你需要替換的具體程式碼片段。
### 一、 目前 AI 演算法所理解的規則與診斷
**1. AI 目前正確理解的規則:**
* **物理空間與障礙物:** AI 知道棋盤邊界、圓柱體、以及對手立方體是不可逾越的障礙 (`simIsObstacleEnv`)。
* **行走限制:** AI 知道第一步可以走四個方向 ...
這款 3D 桌遊的開發非常精彩!蒙地卡洛樹搜尋 (MCTS) 與歷史紀錄棧 (Undo/Redo) 在邏輯狀態管理上非常複雜,你目前建立的框架已經相當有水準。
針對你提出的需求與問題,我整理了目前 AI 的邏輯分析、需要修正的致命 Bug,以及你需要替換的具體程式碼片段。
### 一、 目前 AI 演算法所理解的規則與診斷
**1. AI 目前正確理解的規則:**
* **物理空間與障礙物:** AI 知道棋盤邊界、圓柱體、以及對手立方體是不可逾越的障礙 (`simIsObstacleEnv`)。
* **行走限制:** AI 知道第一步可以走四個方向 ...
- 2026年 6月 15日 14:07
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
改進:
當開局階段結束,行動階段開始時,turnUndo()仍可退回到開局階段的最後一步,這時如果再turnRedo()則會再回到行動階段的首回合。
ai-status窗口在AI思考結束後要顯示思考用時和勝率。
檢查AI算法和必殺算法是否正確理解規則,說明目前AI算法所理解的規則。檢查AI算法中是否有需要修正和改進的地方。
需要明確給出所要修改的地方和所要替換的代碼,不用給出全部代碼。
改進:
當開局階段結束,行動階段開始時,turnUndo()仍可退回到開局階段的最後一步,這時如果再turnRedo()則會再回到行動階段的首回合。
ai ...
當開局階段結束,行動階段開始時,turnUndo()仍可退回到開局階段的最後一步,這時如果再turnRedo()則會再回到行動階段的首回合。
ai-status窗口在AI思考結束後要顯示思考用時和勝率。
檢查AI算法和必殺算法是否正確理解規則,說明目前AI算法所理解的規則。檢查AI算法中是否有需要修正和改進的地方。
需要明確給出所要修改的地方和所要替換的代碼,不用給出全部代碼。
改進:
當開局階段結束,行動階段開始時,turnUndo()仍可退回到開局階段的最後一步,這時如果再turnRedo()則會再回到行動階段的首回合。
ai ...
- 2026年 6月 15日 10:23
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
gemini 3.1 pro真的吃了:
這裡為您整理了所需修改的區塊與對應的代碼替換,這將滿足您對 UI、撤銷邏輯、AI 狀態顯示以及增加「必殺計算」的需求。
### 1. 修改 CSS(增加自定義下拉選單樣式)
請在 `<style>` 區塊內,將下列代碼加入到 `#ai-status` 或 `.ai-toggle.active-green` 的下方:
```css
/* 新增的自定義下拉選單樣式 */
.custom-select-container {
position: relative;
display: flex;
align-items: center ...
這裡為您整理了所需修改的區塊與對應的代碼替換,這將滿足您對 UI、撤銷邏輯、AI 狀態顯示以及增加「必殺計算」的需求。
### 1. 修改 CSS(增加自定義下拉選單樣式)
請在 `<style>` 區塊內,將下列代碼加入到 `#ai-status` 或 `.ai-toggle.active-green` 的下方:
```css
/* 新增的自定義下拉選單樣式 */
.custom-select-container {
position: relative;
display: flex;
align-items: center ...
- 2026年 6月 15日 10:04
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
改進:
在開局階段,「行走撤銷」和「行走重做」應無效。在行動階段,「行走撤銷」和「行走重做」應只能在當前行動方的回合中撤銷和重做。
當開局階段結束,行動階段開始時,turnUndo()仍可回到開局階段的最後一步。
ai-status窗口在AI思考結束後並不會關閉,而是顯示思考用時、勝率,直到行動結束才會關閉。
AI算法中,應加上「必殺」檢查,獲得六分即贏(初始為一分)。必殺計算深度為2,在代碼中作為可更改的變量。
「藍方AI」按鈕應改為一個「正六邊形內有一個AI機器人」的SVG圖標,「綠方AI」按鈕應改為一個「正三角形內有一個AI機器人」的SVG圖標,圖標的尺寸為24*24。
ai ...
在開局階段,「行走撤銷」和「行走重做」應無效。在行動階段,「行走撤銷」和「行走重做」應只能在當前行動方的回合中撤銷和重做。
當開局階段結束,行動階段開始時,turnUndo()仍可回到開局階段的最後一步。
ai-status窗口在AI思考結束後並不會關閉,而是顯示思考用時、勝率,直到行動結束才會關閉。
AI算法中,應加上「必殺」檢查,獲得六分即贏(初始為一分)。必殺計算深度為2,在代碼中作為可更改的變量。
「藍方AI」按鈕應改為一個「正六邊形內有一個AI機器人」的SVG圖標,「綠方AI」按鈕應改為一個「正三角形內有一個AI機器人」的SVG圖標,圖標的尺寸為24*24。
ai ...
- 2026年 6月 15日 02:40
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
當前的planFullTurnActions()並沒有真正實現蒙地卡羅樹搜尋,改寫相關函式,配合aiStrength變量,實現真正的實現蒙地卡羅樹搜尋。
為了確保AI不會在思考時鎖死UI,要將計算過程包裝在async函式中。但不用把每個函式都寫成async函式。
```
function checkAndRunAI() {
if (markers.length === 0 || isAIThinking) return;
const shouldRun = (currentTurnColor === 'blue' && isBlueAI) || (currentTurnColor ...
為了確保AI不會在思考時鎖死UI,要將計算過程包裝在async函式中。但不用把每個函式都寫成async函式。
```
function checkAndRunAI() {
if (markers.length === 0 || isAIThinking) return;
const shouldRun = (currentTurnColor === 'blue' && isBlueAI) || (currentTurnColor ...
- 2026年 6月 15日 01:32
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
當前的planFullTurnActions()並沒有真正實現蒙地卡羅樹搜尋,改寫相關函式,配合aiStrength變量(已定義,值為100、1000或5000),實現真正的實現蒙地卡羅樹搜尋。
```
function checkAndRunAI() {
if (markers.length === 0 || isAIThinking) return;
const shouldRun = (currentTurnColor === 'blue' && isBlueAI) || (currentTurnColor === 'green' && isGreenAI);
if ...
```
function checkAndRunAI() {
if (markers.length === 0 || isAIThinking) return;
const shouldRun = (currentTurnColor === 'blue' && isBlueAI) || (currentTurnColor === 'green' && isGreenAI);
if ...
- 2026年 6月 15日 00:56
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
當前的planFullTurnActions()並沒有真正實現蒙地卡羅樹搜尋,改寫相關函式,配合aiStrength變量,實現真正的實現蒙地卡羅樹搜尋。
```
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
// ==========================================
// 1. 初始化場景、相機、渲染器 ...
```
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
// ==========================================
// 1. 初始化場景、相機、渲染器 ...
- 2026年 6月 14日 23:15
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
當一局結束時,應清空aiPlannedActions。
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
// ==========================================
// 1. 初始化場景、相機、渲染器
// ==========================================
const container = document ...
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
// ==========================================
// 1. 初始化場景、相機、渲染器
// ==========================================
const container = document ...
- 2026年 6月 14日 22:46
- 版面: Javascript
- 主题: 「我為歌狂」遊戲製作
- 回复总数: 38
- 阅读次数: 319
Re: 「我為歌狂」遊戲製作
在這個函式中,是否已經完全實現「不能直接轉180度,只能轉90度,僅當不能走90度時才轉180度」?在實際測試中,還是發現有能轉90度的時候,也轉了180度。查明原因。
function planFullTurnActions() {
const activeCube = cubes.find(q => q.userData.color === currentPlayer);
const oppColor = currentPlayer === 'blue' ? 'green' : 'blue';
const oppCube = cubes.find(q => q.userData ...
function planFullTurnActions() {
const activeCube = cubes.find(q => q.userData.color === currentPlayer);
const oppColor = currentPlayer === 'blue' ? 'green' : 'blue';
const oppCube = cubes.find(q => q.userData ...