0
我試圖做一個遊戲,我有一個二維數組檢查二維數組相同的價值觀
因此,它是這樣的:
Grid[x][y]
讓假裝這些值都在上面:
Column 1 Column 2 Column 3 Column 4 Column 5
1 2 5 2 5
2 2 3 1 1
1 4 3 4 5
1 3 3 3 5 <-- match this row
3 5 3 4 5
2 4 3 4 5
2 4 4 4 5
在中間(索引4),我想檢查是否至少有3次相同的數字,如果有4次相同或甚至是5的話。
你如何檢查這個?這將是一個很好的方式找到相同的,並刪除那些都是一樣的......我堅持要弄清楚邏輯做出這樣的事情
這是我的嘗試:
grid = {}
for x = 1, 5 do
grid[x] = {finish = false}
for y = 1, 7 do
grid[x][y] = {key= math.random(1,4)}
end
end
function check(t)
local tmpArray = {}
local object
for i = 1,5 do
object = t[i][1].key
if object == t[i+1][1].key then
table.insert(tmpArray, object)
else
break
end
end
end
print_r(grid)
check(grid)
print_r(grid)
其中print_r
打印電網:
function print_r (t)
local print_r_cache={}
local function sub_print_r(t,indent)
if (print_r_cache[tostring(t)]) then
print(indent.."*"..tostring(t))
else
print_r_cache[tostring(t)]=true
if (type(t)=="table") then
for pos,val in pairs(t) do
if (type(val)=="table") then
print(indent.."["..pos.."] => "..tostring(t).." {")
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
print(indent..string.rep(" ",string.len(pos)+6).."}")
else
print(indent.."["..pos.."] => "..tostring(val))
end
end
else
print(indent..tostring(t))
end
end
end
sub_print_r(t," ")
end
它不工作是偉大的,因爲我是一個後用食指檢查,如果是心不是同它不添加最後一個.. 我不知道這是否是最好的走的路...
如果我「刪除」匹配索引我的計劃是將上述或其下方到4索引行索引行......但首先第一件事情
你的意思是你想刪除至少有兩個字段行相同的價值?此外,你應該嘗試*東西*併發布你的嘗試,否則你冒險讓這個問題關閉。 – Schollii
@Schollii我太尷尬了,在這裏粘貼我的解決方案。我試着用if語句來分配它。 – MichaelAngelo
你只對上/下和左/右匹配感興趣嗎?還是對角線匹配? –