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

C#战舰小游戏 自定义行列坐标(A-J列/1-10倒序行)修改方案

C# 战舰小游戏自定义坐标适配实现

问题描述

C#开发Battleships(战舰)迷你游戏时需要调整坐标命名规则:不使用0-10的数字索引,改为行号从底部起始编号1到10,列号从A到J编号。
Battleships棋盘参考效果
当前已实现基础击毁判定逻辑:输入攻击坐标后可判断是否命中,船只所有占位格被命中则返回destroyed,否则返回not destroyed,已知参考坐标5 C对应当前程序索引5 2即可判定命中,现有代码如下:

char[,] board = new char[10, 10];
for (int i = 0; i < 10; i++)
{   
    string line = Console.ReadLine();
    string[] boardCharacters = line.Split(' ');
    for (int j = 0 ; j < 10; j++)
        board[i, j] = Convert.ToChar(boardCharacters[j]);
}

int countHits = 0;
for (int z = 0; z < 14; z++)
{
    var attackCoordinates = Console.ReadLine().Split(' ');
    int[] attack = new int[2];
    for (int i = 0; i < 2; i++)
    {
        attack[i] = int.Parse(attackCoordinates[i]);
    }

    if (board[attack[0], attack[1]] == 'x')
    {
        countHits++;
    }

}

if (countHits == 8)
{
    Console.WriteLine("destroyed");
}
else
{
    Console.WriteLine("not destroyed");
}

修改方案

不需要改动棋盘初始化、命中计数、结果输出的核心逻辑,只需要替换攻击坐标的解析部分,做两层坐标映射即可:

  • 行映射:当前数组i=0对应棋盘顶部第一行,要求行号从底部开始计1~10,因此数组行索引计算公式为 10 - 用户输入的行号。例:输入底部行号1,对应索引9;输入顶部行号10,对应索引0。
  • 列映射:要求列号为A~J,直接通过ASCII码偏移计算数组列索引,公式为 char.ToUpper(用户输入的列字母) - 'A'。例:输入C,大写转换后减'A'得2,完全匹配你给出的「5 C对应原程序索引5 2命中」的规则。

替换后的攻击解析代码

把原循环中解析攻击坐标的部分替换为以下代码即可:

for (int z = 0; z < 14; z++)
{
    // 拆分时自动忽略多打空格产生的空条目
    var attackCoordinates = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries);
    // 解析行号
    int inputRow = int.Parse(attackCoordinates[0]);
    int boardRowIndex = 10 - inputRow;
    // 解析列号,自动兼容小写输入
    char inputCol = char.ToUpper(attackCoordinates[1][0]);
    int boardColIndex = inputCol - 'A';

    if (board[boardRowIndex, boardColIndex] == 'x')
    {
        countHits++;
    }
}

可选优化:输入合法性校验

如果需要避免用户输错坐标导致程序崩溃,可以在解析完索引后加校验逻辑:

// 校验坐标范围
if (boardRowIndex is < 0 or > 9 || boardColIndex is < 0 or > 9)
{
    Console.WriteLine("坐标非法,请输入1-10行号+A-J列号,例如:5 C");
    z--; // 本次无效输入不计入次数,重新等待输入
    continue;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:24:56