1. Lua / Говнокод #21601

    −997

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    if closedk>0 then
    	for k=1,closedk do
    		if closedlist[k].x==curbase.x+1 and closedlist[k].y==curbase.y then
    			rightOK=false
    		end
    		if closedlist[k].x==curbase.x-1 and closedlist[k].y==curbase.y then
    			leftOK=false
    		end
    		if closedlist[k].x==curbase.x and closedlist[k].y==curbase.y+1 then
    			downOK=false
    		end
    		if closedlist[k].x==curbase.x and closedlist[k].y==curbase.y-1 then
    			upOK=false
    		end
    	end
    end
    		
    		-- Check if next points are on the map and within moving distance
    if curbase.x+1>xsize then
    	rightOK=false
    end
    if curbase.x-1<1 then
    	leftOK=false
    end
    if curbase.y+1>ysize then
    	downOK=false
    end
    if curbase.y-1<1 then
    	upOK=false
    end
    
    		-- If it IS on the map, check map for obstacles
    		--(Lua returns an error if you try to access a table position that doesn't exist, so you can't combine it with above)
    if curbase.x+1<=xsize and mapmat[curbase.y][curbase.x+1]~=0 then
    	rightOK=false
    end
    if curbase.x-1>=1 and mapmat[curbase.y][curbase.x-1]~=0 then
    	leftOK=false
    end
    if curbase.y+1<=ysize and mapmat[curbase.y+1][curbase.x]~=0 then
    	downOK=false
    end
    if curbase.y-1>=1 and mapmat[curbase.y-1][curbase.x]~=0 then
    	upOK=false
    end

    Кусок кода A* какого-то чувака, который не знает что такое elseif
    К тому же с 19 по 30 строки можно выпилить, просто curbase.x+1<=xsize подобных условий заменить на проверку на существование нужного элемента таблицы.

    Сам код тут: https://github.com/philnelson/A-Star-Pathfinding-For-Lua/blob/master/A-star%20algorithm%20release.lua

    Запостил: _____, 29 Октября 2016

    Комментарии (2) RSS

    Добавить комментарий