如何计算位于溢价瓷砖上的点数?

2024-06-16 13:46:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,计算拼字游戏中单词的点数。我有问题,下一步该怎么做,看看这个词是不是在高档瓷砖。我做了一系列的优质瓷砖,就像拼字板。你知道吗

premium_tiles = np.array([['3','1','1','2','1','1','1','3','1','1','1','2','1','1','3'],
                     ['1','2','1','1','1','3','1','1','1','3','1','1','1','2','1'],
                     ['1','1','2','1','1','1','2','1','2','1','1','1','2','1','1'],
                     ['2','1','1','2','1','1','1','2','1','1','1','2','1','1','2'],
                     ['1','1','1','1','2','1','1','1','1','1','2','1','1','1','1'],
                     ['1','3','1','1','1','3','1','1','1','3','1','1','1','3','1'],
                     ['1','1','2','1','1','1','2','1','2','1','1','1','2','1','1'],
                     ['3','1','1','2','1','1','1','2','1','1','1','2','1','1','3'],
                     ['1','1','2','1','1','1','2','1','2','1','1','1','2','1','1'],
                     ['1','3','1','1','1','3','1','1','1','3','1','1','1','3','1'],
                     ['1','1','1','1','2','1','1','1','1','1','2','1','1','1','1'],
                     ['2','1','1','2','1','1','1','2','1','1','1','2','1','1','2'],
                     ['1','1','2','1','1','1','2','1','2','1','1','1','2','1','1'],
                     ['1','2','1','1','1','3','1','1','1','3','1','1','1','2','1'],
                     ['3','1','1','2','1','1','1','3','1','1','1','2','1','1','3']])

在做了这些之后,我尝试使用doubles = np.argwhere(premium_tiles == '2')来找到这两个的坐标(对于triple来说是相同的,只是更改为'3')。另外,我试图用coordinate_tiles = np.argwhere(arr1 != '0')找到输出数组的坐标,这是我的单词数组btwClick here

我已经可以得到每个单词的分数了,比如EAGLE = 6 APPLE = 9如何计算分数?我想要的输出是这样的,因为EAGLE=6,但是因为G在2上的高级平铺上。点数应为1+1+(2X2)+1+1=8。你知道吗

[['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' 'E' 'A' 'G' 'L' 'E' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' 'P' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' 'P' 'E' 'A' 'K' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' 'L' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' 'E' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']
 ['0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0']]

这是我使用计算机视觉后的输出


Tags: 项目np数组单词array分数tileseagle
1条回答
网友
1楼 · 发布于 2024-06-16 13:46:42

当我把这个词放进去的时候,我假设你有瓷砖的位置,还有这个词的顺序。所以你应该可以使用for循环来增加一个和值,比如

def wordscore(svp, evp, shp, ehp):
sum = 0
if(evp>svp):
    for num in range(svp,evp):
        sum += premium_tiles[num][shp]*letterscore(word, num)
 else:
    for num in range(shp,ehp):
        sum+= premium_tiles[svp][num]*letterscore(word, num)
return sum;

相关问题 更多 >