2014-12-14 28 views
3

Beginner to Lua (및 프로그래밍). 테이블을 만들고 임의의 정수로 채우려 고 노력하고 있지만 "인덱스 값을 0으로 만드는 시도"오류가 계속 발생합니다. 나는 이전에 테이블 맵을 정의하는 것을 소홀히 했었기 때문에 여기를 검색했을 때 그 해결책을 발견하고 map = { }에 추가했습니다. 불행히도이 문제는 해결되지 않았습니다.nil 값에 대한 인덱스 시도 시도

루프가 임의의 값을 정의되지 않은 테이블에 넣으려고하는 것 같아서 그럴 수 없습니다. 어떻게하면 임의의 양의 난수를 테이블에 넣을 수 있습니까?

map = { } 

for k = 1, 20 do 
    for l = 1, 5 do 
     map[k][l] = math.random(0,3) 
    end 
end 
+0

참고 당신은 또한 그것을 채울 수는 ' map [5 * (k-1) + l]'을 실행하여 'flat'배열을 생성한다. – greatwolf

답변

4

문제는 map[k]이 처음 전무하다는 것이다 :

여기에 지금까지 내 코드입니다. 가 이미하지 않는 경우 원하는 결과를 얻기 위해 그 인덱스 테이블을 만들 존재합니다

map = { } 

for k = 1, 20 do 
    for l = 1, 5 do 
     if not map[k] then 
      map[k] = {} 
     end 
     map[k][l] = math.random(0,3) 
    end 
end 
2

나는 간단한 버전을 제공합니다 :로

map = { } 

for k = 1, 20 do 
    map[k] = {}  
    for l = 1, 5 do 
     map[k][l] = math.random(0,3) 
    end 
end