以字符串形式返回网格的x坐标和y坐标

gab6jxml  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(319)

关闭。这个问题需要详细或明确。它目前不接受答案。
**想改进这个问题吗?**编辑这篇文章,添加细节并澄清问题。

两小时前关门了。
改进这个问题
我最近在一次面试中得到了以下问题,我无法解决。
游戏中的一个实体位于坐标(x,y)处,坐标为1000m×1000m(0<=x<1000,0<=y<1000)这个世界被划分成10乘10的网格,网格正方形从零开始索引。此外,x轴网坐标将转换为字母(a、b、c)。实现一个函数convert(x,y),该函数返回一个字符串,其中x坐标表示为字母,y坐标表示为1到10之间的数字。我们预计x=0,y=0将为“a1”,x=99,y=99将为“j10”
如何用javascript或python解决它?

function convert(x, y) {

let x_str 
let y_str
let arr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];

if(y >= 100){
    y_str = Math.round(y/100);
}else{
     y_str = Math.round(y/10) + 1;
}

if(x >= 100){
    x_str = Math.round(x/100);

    if(x_str >= 10){
        x_str=9;
    }
}else{
    console.log(x)
     x_str = Math.round(x/10);
}
return arr[x_str] + y_str.toString();

}

编辑:::
事实上,我不知道该如何解决这个问题,因为我不理解它,我在这里分享它是为了一些想法,以及如何解决它的高层次问题,而你可能会认为我需要一个代码片段,或者看起来是一个懒惰的开发人员。
@马蒂斯:谢谢你的代码,你的代码让我知道该怎么做,我能够解决它,我已经更新了代码。

wfauudbj

wfauudbj1#

这里有一个解决方案(相当长,但它至少可以工作,它也非常简单,所以我不明白你为什么不能解决它):

def convert(x, y):
    if 0 <= x < 10:
        x_grid = 'A'
    elif 10 <= x < 20:
        x_grid = 'B'
    elif 20 <= x < 30:
        x_grid = 'C'
    elif 30 <= x < 40:
        x_grid = 'D'
    elif 40 <= x < 50:
        x_grid = 'E'
    elif 50 <= x < 60:
        x_grid = 'F'
    elif 60 <= x < 70:
        x_grid = 'G'
    elif 70 <= x < 80:
        x_grid = 'H'
    elif 80 <= x < 90:
        x_grid = 'I'
    elif 90 <= x < 100:
        x_grid = 'J'
    else:
        x_grid = None

    if 0 <= y < 10:
        y_grid = 1
    elif 10 <= y < 20:
        y_grid = 2
    elif 20 <= y < 30:
        y_grid = 3
    elif 30 <= y < 40:
        y_grid = 4
    elif 40 <= y < 50:
        y_grid = 5
    elif 50 <= y < 60:
        y_grid = 6
    elif 60 <= y < 70:
        y_grid = 7
    elif 70 <= y < 80:
        y_grid = 8
    elif 80 <= y < 90:
        y_grid = 9
    elif 90 <= y < 100:
        y_grid = 10
    else:
        y_grid = None

    return f'{x_grid}{y_grid}'

print(convert(0, 0))

相关问题