Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local colors = {"Red", "Blue", "Green", "Purple", "Orange", "Pink", "Black"}
- for i = 1, 7 do
- colors[colors[i]] = i
- end
- local possibilities = {}
- local number = {1, 1, 1, 1}
- for i = 1, 2401 do
- possibilities[#possibilities+1] = {number[1], number[2], number[3], number[4]}
- if i == 7^4 then break end
- number[1] = number[1] + 1
- for i = 1, 4 do
- if number[i] == 8 then
- number[i] = 1
- number[i+1] = number[i+1] + 1
- end
- end
- end
- local function getScore(answer, guess)
- local right, offset = 0, 0
- local balance = {0, 0, 0, 0, 0, 0, 0}
- for n = 4, 1, -1 do
- local x, y = guess[n], answer[n]
- if x == y then
- right = right + 1
- else
- if balance[x] > 0 then offset = offset + 1 end
- if balance[y] < 0 then offset = offset + 1 end
- balance[x] = balance[x] - 1
- balance[y] = balance[y] + 1
- end
- end
- return right, offset
- end
- local guesses = {
- {"Red", "Blue", "Green", "Purple", 2, 1};
- }
- for _, guess in pairs(guesses) do
- local newPossibilities = {}
- for i = 1, 4 do
- guess[i] = colors[guess[i]]
- end
- for _, answer in pairs(possibilities) do
- local right, offset = getScore(guess, answer)
- if right == guess[5] and offset == guess[6] then
- newPossibilities[#newPossibilities+1] = answer
- end
- end
- possibilities = newPossibilities
- end
- for i = 1, #possibilities do
- for j = 1, 4 do
- possibilities[i][j] = colors[possibilities[i][j]]
- end
- print(table.concat(possibilities[i], ", "))
- end
- print("Possibilities: "..#possibilities)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement