Arrays Nim范围超出范围

Arrays Nim范围超出范围,arrays,nim-lang,Arrays,Nim Lang,所以我是尼姆的新手。如果这听起来不对劲,很抱歉。这是我的密码: proc makeMap(width: int, size: int): seq[int]= var theMap = newSeq[int](size) var playerPos: int = 249750 var i: int = 0; for i in 1..size: if i<width: theMap[i] = 2 elif i == playerPos: theMap[i

所以我是尼姆的新手。如果这听起来不对劲,很抱歉。这是我的密码:

proc makeMap(width: int, size: int): seq[int]=
 var theMap = newSeq[int](size)
 var playerPos: int = 249750
 var i: int = 0;
 for i in 1..size:
   if i<width:
     theMap[i] = 2
   elif i == playerPos:
     theMap[i] = 1
   else:
     theMap[i] = 0
 return theMap


var width = 500;
var height = 500;
var nsize: int = width * height
var myMap = makeMap(width, nsize)
echo "Map: ", myMap

我能做些什么来解决这个错误?很抱歉,请提前感谢。

您将
i
从1迭代到
size
(包括在内),但是seq
theMap
的索引从0到
size-1
。将0中i的第5行更改为
。。size-1
,或者您也可以使用
theMap.high
查找允许的最高索引。

您将
i
从1迭代到
size
(包括),但seq
theMap
的索引范围是从0到
size-1
。将0中i的第5行更改为
。。size-1
,或者您也可以使用map.high查找允许的最高索引。

此外,我更喜欢为0中的I键入
而不是为0中的I键入
。。size-1
此外,我更喜欢为0中的I键入
而不是为0中的I键入
。。1号尺码
nim.nim(18)              nim
nim.nim(8)               makeMap
system.nim(2833)         sysFatal
Error: unhandled exception: index out of bounds [IndexError]