Well it’s difficult to say exactly why that could be, my guess would be that this in statement:
if userDot1 == patternDot1 and alreadyChecked == false then userSelectCorrect1 = true end
the userDot1 == patternDot1 part is returning false, and the alreadyChecked == false part is returning true. Because both statements are not returning true, the userSelectCorrect1 = true is not triggered. Then, because alreadyChecked gets set to false, the next time you reach this function even if userDot1 == patternDot1 is true, the second clause is false so userSelectCorrect1 will never get set to true.
Try moving the alreadyChecked = true line up into the if statement like so:
if userDot1 == patternDot1 and alreadyChecked == false then userSelectCorrect1 = true alreadyChecked = true end