前不久申请了千问的代码模式,最近发现出现了这个入口,看来是通过了,是时候测试一下了。之前用claude做过游戏,效果不错Claude生成游戏测试:俄罗斯方块 - 集成InsCode快来阅读并即时体验吧~
但这个五子棋就先不调整了,因为中途有崩掉-越做越差了,还是先占个坑,后续再测测其它的。千问大模型的能力还是可以打的,起码在中上水平
环境说明
通义千问web版本:https://tongyi.aliyun.com
模式:代码模式
时间:2024-11-17
模式特色 - 代码分屏(待完善)
单独为代码模式设计的一个全屏编辑和预览弹窗,截图如下所示:
工具栏说明:
- 撤销 取消上一次的修改 (实测不可用,需要从旧的回答重新进入)
- 重做 重用取消的修改
- 添加注释 (自动生成添加注释的提示词重写)
- 转换语言(将代码转换成其它语言 - 测试效果不佳,可能简单的可以)
- 其它:复制 导出 分享 暗色(黑暗模式 - 不知道为何不与外部的统一)
提示词
编写一个web版本的五子棋
结果如下
<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>五子棋游戏</title><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background-color: #f4f4f9;}.board{display: grid;grid-template-columns:repeat(15, 30px);grid-template-rows:repeat(15, 30px);gap: 2px;}.cell{width: 30px;height: 30px;background-color: #d6cdc4;border-radius: 50%;cursor: pointer;}.black{background-color: black;}.white{background-color: white;}</style></head><body><divclass="board"id="board"></div><script>const boardSize =15;let currentPlayer ='black';let boardState = Array.from({ length: boardSize },()=>Array(boardSize).fill(null));functioncreateBoard(){const boardElement = document.getElementById('board');for(let row =0; row < boardSize; row++){for(let col =0; col < boardSize; col++){const cell = document.createElement('div');
cell.classList.add('cell');
cell.dataset.row = row;
cell.dataset.col = col;
cell.addEventListener('click', handleCellClick);
boardElement.appendChild(cell);}}}functionhandleCellClick(event){const row =parseInt(event.target.dataset.row,10);const col =parseInt(event.target.dataset.col,10);if(boardState[row][col])return;
boardState[row][col]= currentPlayer;
event.target.classList.add(currentPlayer);if(checkWin(row, col)){alert(`${currentPlayer} 赢了!`);resetGame();return;}
currentPlayer = currentPlayer ==='black'?'white':'black';}functioncheckWin(row, col){const directions =[{ dx:1, dy:0},// 水平方向{ dx:0, dy:1},// 垂直方向{ dx:1, dy:1},// 斜线方向 \{ dx:1, dy:-1}// 斜线方向 /];for(const direction of directions){let count =1;for(let i =1; i <5; i++){const newRow = row + direction.dy * i;const newCol = col + direction.dx * i;if(newRow >=0&& newRow < boardSize && newCol >=0&& newCol < boardSize &&
boardState[newRow][newCol]=== currentPlayer){
count++;}else{break;}}for(let i =1; i <5; i++){const newRow = row - direction.dy * i;const newCol = col - direction.dx * i;if(newRow >=0&& newRow < boardSize && newCol >=0&& newCol < boardSize &&
boardState[newRow][newCol]=== currentPlayer){
count++;}else{break;}}if(count >=5)returntrue;}returnfalse;}functionresetGame(){
boardState = Array.from({ length: boardSize },()=>Array(boardSize).fill(null));const cells = document.querySelectorAll('.cell');
cells.forEach(cell=> cell.className ='cell');
currentPlayer ='black';}createBoard();</script></body></html>
效果预览
默认
落子
整体的设计比较一般,主要不知道怎么想的,这个竟然是用户自己对战,而不是用户下子后自动出白子
总结
整体来看,与cluade相比,功能和完善度都有待提升,不过也能理解,毕竟是测试阶段。生成代码的速度比较快,但这也可能是一个缺点。个人使用来看,claude的速度是不如gpt4o的,但质量会比较高,当然后者也有适用的范围。
而千问的代码模式,因为是测试阶段,不便多评论。比较不解的是,为什么没有和阿里云的功能对接起来,或许大公司的业务割裂确实比较严重,希望能越来越好吧。
版权归原作者 余生H 所有, 如有侵权,请联系我们删除。