Dzień dobry

Piszę prosty program w LUA, dokładnie opieram się o silnik Love2D ale to nie powinno wprowadzać wielkiego zamieszania.
Otóż mój problem polega na tym że gdy wybieram wartość i naciskam klawisz "c" wybrana wartość w tabeli powinna się zmienić, tak też się dzieje ale po tej czynności każda inna wybierana wartośc (np. 3 pole w tabeli map = { 0, 0, 0, } ) też przybiera wartość tej zmienianej, jeśli wartość drugą ustawię na 2 i ją zaakceptuję klawiszem "c" i "przesunę się" na pole 3 wtedy je wyświetli też jako 2, jeśli jej nie zaakceptuję nie pozostanie 2-dwójką aczkolwiek program powinien wyświetlić 0 (wartość która jest w danej chwili w tabeli).
I druga kwestia taka jeśli zmienię wszystkie 3 pola w tabeli na 2, i zacznę zmieniać wartość przypisywaną im, zmienia się wartość wszystkich, a według kodu który napisałem (wydaje mi się że właśnie tak mój program działa) dla każdej pętli powinien osobno definiować wartość. Zresztą zobaczcie sami :)

(Jest to tylko fragment całego kodu, ale myślę że powinien wystarczyć)

function map_draw()


local i = 0
local v = 1

   for y = 1, mapHeight do

for x = 1, mapWidth do
   i = i+1
    value[i] = 1

	for k = 1, k do
	for v = 1, v do

if valuenew == 1 then
value2[v] = selvalue

	value[tilex[k]] = value2[v]

end
end
end
gfx.print(value[i], (x-1)*32 + 32/3, (y-1)*32 + 32/3)
	gfx.setColor(255,0,0) 
	--gfx.print((i), (x-1)*32 + 32/3, (y-1)*32 + 32/3)
	gfx.setColor(255,255,255) 
		 gfx.rectangle("line", (x-1)*32, (y-1)*32, 32, 32 )
		 
end

end



if phase[2] == 1 then
tilex[k] = hor 

gfx.setColor(255,0,0) 
		 gfx.rectangle("line", (tilex[k]-1)*32, (tiley[1]-1)*32, 32, 32 )
gfx.setColor(255,255,255) 

end

end


function map_update(dt)
local clicked = false
 
local p = 1
local v = 1

repeat
p=p+1
v=v+1
if love.keyboard.isDown('c') and clicked == false  then
k = k + 1 
value2[v] = selvalue
tilex[k] = hor 
valuenew = 1
clicked = true
end
if love.keyboard.isDown('c')  and clicked == true  then
clicked = false
end
until p == 999

if mapWidth <= 1 then
mapWidth = 1
end
if mapHeight <= 1 then
mapHeight = 1
end
end

Problem leży gdzieś pomiędzy repeat w update(dt), a funkcją for k = 1, k do, niestety po paru dniach prób do niczego sensownego nie doszedłem, tak też zwracam się tu, może wy powiecie mi gdzie popełniłem błąd.

dodanie znacznika <code class="lua"> - furious programming