Ugh, this is a real headache tbh. >.<
What I'm doing is I'm trying to get the predictions function, of the code below, to return a value for which to counter the player, but it doesn't, and only returns nil. I am not sure as to why this is happening, and I've looked it over, but I didn't notice anything wrong.
Although, from investigation, it seems the BlockedPath function is the cause, but I can't see any way how why, and how to fix it.
What counter-measures do you mean? Well, as an example, I have it set up, in a table, so that the compiler constructs a string, then the string compare to a prediction; say the compiler says '14,' and the win is '7,' but the code doesn't pick this up, and goes for a random space (value) instead.
This is the code I'm using:
local Predictions = { -- This is the predictions table; not very efficient, but hopefully it does the job
{'12', '3'}, -- The first value is the warning value, and the second value is the number to prevent the match
{'13', '2'},
{'14', '7'},
{'15', '9'},
{'17', '4'},
{'23', '1'},
{'25', '8'},
{'28', '5'},
{'35', '7'},
{'45', '6'},
{'46', '5'},
{'56', '4'},
{'59', '1'},
{'57', '3'},
{'78', '9'},
{'79', '8'},
{'89', '7'}
}
local Blocked = {}
function BlockedPath(value)
print('Check for blocked path') -- Prints
for i, v in pairs(Blocked) do
print(v, 'blocked') -- Prints
if value == v then
print('Path blocked') -- Prints
return true
end
end
print('No block') -- Doesn't print
return false
end
function CompareValueToPredictions(value)
print('Compare values')
for i, v in pairs(Predictions) do
print('Predictions:', v[1], v[2]) -- Prints
if value == v[1] then
print('Prediction') -- Prints
if BlockedPath(v[1]) then print('Blocked') return end -- Prints
table.insert(Blocked, v[1])
print(value, v[1], BlockedPath(v[1]), v[2]) -- Doesn't print
return v[2] -- Doesn't return
end
end
print('No comparison') -- Prints
return nil -- Returns
end
function PreventPlayerFromWinning()
print('Check for danger')
table.sort(player1) -- Sort the spaces the player has ahold of
local compile = '' -- To compile the names
for i, v in pairs(player1) do
compile = compile .. v -- Add to the compiler
end
for x = 1, 3 do -- If the first time fails, then try again another 2 lol
local compareValuesToPredictions = CompareValueToPredictions(compile) -- Return the value
print(compareValuesToPredictions, 'thing') -- nil thing
if compareValuesToPredictions then -- Found match
print('Prediction found') -- Doesn't print
for i, v in pairs(script.Parent.Frame:GetChildren()) do
if v == compareValuesToPredictions then
print('Prevent')
return v -- Return counter
end
end
end
end
print('Failed')
return nil -- Returns nil
end
This is apart of the code that I'm submitting to the Snack Break #22; however, the code isn't working as I wanted it to, and I can't figure out why. ;-;
