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

C#开发战舰游戏时传入坐标(0,0)函数返回异常值求助

战舰游戏坐标转换问题解决

问题根源

  • 直接把char强转成int,得到的是该字符的ASCII码值,'0'的ASCII码就是48,这就是你看到返回48的原因。
  • 代码存在语法错误:C#里数组初始化必须用大括号{},你写的小括号()会导致编译失败。
  • 坐标字符串"0,0"的索引对应关系:coordinate[0]是第一个'0',coordinate[1]是逗号',',coordinate[2]是第二个'0',你当前的索引逻辑可能也和你想要的YX对应关系不匹配。

修正方案

方案1:用Split拆分字符串(支持多位数坐标)

public static int[] GetYXCoordinate(string coordinate)
{
    var coords = coordinate.Split(',');
    // 按需求调整X/Y的顺序,这里假设输入是"X,Y",要返回[Y,X]
    int y = int.Parse(coords[1]);
    int x = int.Parse(coords[0]);
    return new int[] { y, x };
}

方案2:直接操作字符(仅适用于单个数字的坐标)

public static int[] GetYXCoordinate(string coordinate)
{
    // 字符转数字:用当前字符减去'0'的ASCII码,得到对应整数
    int y = coordinate[2] - '0';
    int x = coordinate[0] - '0';
    return new int[] { y, x };
}

补充说明

  • 两种方案都能把字符形式的数字转为真正的整数,方案1更灵活,适合以后扩展多位数坐标的情况;方案2更简洁,仅限单个数字的场景。
  • 记得根据你的实际需求调整X和Y的顺序,确保返回的数组符合战舰游戏的坐标逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:57:22