You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python战舰游戏己方棋盘用@符号标记并打印舰船?

在Python战舰游戏中标记并打印带舰船的5x5棋盘

你的原代码已经正确实现了空棋盘的生成与打印,要标记舰船只需要修改二维列表中对应位置的元素为@,再沿用原有的打印逻辑即可。以下是两种可行的实现方式:

手动指定舰船位置

如果需要固定舰船的摆放位置,直接通过索引修改棋盘元素即可:

# 生成5x5空棋盘
board = []
for x in range(5):
    board.append(["O"] * 5)

# 标记舰船位置(索引从0开始,示例为第2行第3列、第4行第1列、第1行第5列)
board[1][2] = "@"
board[3][0] = "@"
board[0][4] = "@"

# 打印带舰船的棋盘
for row in board:
    print(" ".join(row))

执行后会输出类似这样的棋盘:

O O O O @
O O @ O O
O O O O O
@ O O O O
O O O O O

随机生成舰船位置

如果需要随机摆放舰船(避免重复位置),可以借助random模块实现:

import random

# 生成5x5空棋盘
board = []
for x in range(5):
    board.append(["O"] * 5)

# 随机生成3个不重复的舰船位置
ship_num = 3
placed = 0
while placed < ship_num:
    row = random.randint(0, 4)
    col = random.randint(0, 4)
    # 确保当前位置未被占用
    if board[row][col] == "O":
        board[row][col] = "@"
        placed += 1

# 打印棋盘
for row in board:
    print(" ".join(row))

注意:Python列表采用0索引,即棋盘的第1行对应索引0,第1列对应索引0,修改位置时要注意对应关系。

内容的提问来源于stack exchange,提问作者Emma Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:41:28