global points, pootimer, win, tableau, crappo, stock, redeals, basecard, reserve
on checkwin arg
if points = 520 then
win = "yes"
pootimer = timeout("poo").new(150, #gotoit)
else
if (stock.cards.count = 0) and (redeals = 1) then
if not voidp(basecard) then
checklose()
end if
end if
end if
end
on checklose
repeat with shit = 12 to 12
if sprite(shit).member.name = "empty" then
next repeat
end if
repeat with cakes = 17 to 20
if sprite(cakes).member.name = "empty" then
if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
abort()
end if
next repeat
end if
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
end if
end repeat
repeat with raped = 1 to tableau.count
if tableau[raped].getcardcount() = 0 then
if (reserve[1].getcardcount() = 0) and (reserve[2].getcardcount() = 0) and (reserve[3].getcardcount() = 0) and (reserve[4].getcardcount() = 0) then
abort()
end if
next repeat
end if
cakes = tableau[raped].getlastcard().spnum
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) then
abort()
end if
end repeat
end repeat
repeat with it = 1 to reserve.count
if reserve[it].getcardcount() = 0 then
next repeat
end if
shit = reserve[it].getlastcard().spnum
repeat with cakes = 17 to 20
if sprite(cakes).member.name = "empty" then
if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
abort()
end if
next repeat
end if
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
end if
end repeat
repeat with raped = 1 to tableau.count
if tableau[raped].getcardcount() = 0 then
abort()
next repeat
end if
cakes = tableau[raped].getlastcard().spnum
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) then
abort()
end if
end repeat
end repeat
repeat with it = 1 to tableau.count
if tableau[it].getcardcount() = 0 then
next repeat
end if
shit = tableau[it].getlastcard().spnum
repeat with cakes = 17 to 20
if sprite(cakes).member.name = "empty" then
if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
abort()
end if
next repeat
end if
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
abort()
end if
end repeat
repeat with raped = 1 to tableau.count
if tableau[raped].getcardcount() = 0 then
if (reserve[1].getcardcount() = 0) and (reserve[2].getcardcount() = 0) and (reserve[3].getcardcount() = 0) and (reserve[4].getcardcount() = 0) then
abort()
end if
next repeat
end if
cakes = tableau[raped].getlastcard().spnum
if shit = cakes then
next repeat
end if
if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) and not getduplicate(shit - 1, cakes) then
abort()
next repeat
end if
if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) and not getduplicate(shit - 1, cakes) then
abort()
end if
end repeat
if sprite(tableau[it].getlastcard().spnum).backCardEQ() then
abort()
end if
end repeat
win = "no"
pootimer = timeout("THE TIME").new(130, #gotoit)
end
on gotoit
pootimer.forget()
go("gameover")
end
on getValue arg
if (arg contains "hearts") or (arg contains "spades") then
return getOff(chars(arg, 1, arg.length - 7))
else
if arg contains "diamonds" then
return getOff(chars(arg, 1, arg.length - 9))
else
if arg contains "clubs" then
return getOff(chars(arg, 1, arg.length - 6))
end if
end if
end if
end
on getOff numba
if numba = "ace" then
return 1
else
if numba = "two" then
return 2
else
if numba = "three" then
return 3
else
if numba = "four" then
return 4
else
if numba = "five" then
return 5
else
if numba = "six" then
return 6
else
if numba = "seven" then
return 7
else
if numba = "eight" then
return 8
else
if numba = "nine" then
return 9
else
if numba = "ten" then
return 10
else
if numba = "jack" then
return 11
else
if numba = "queen" then
return 12
else
if numba = "king" then
return 13
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
end
on getSuit arg
if arg contains "hearts" then
return #hearts
else
if arg contains "diamonds" then
return #diamonds
else
if arg contains "clubs" then
return #clubs
else
if arg contains "spades" then
return #spades
end if
end if
end if
end if
end
on getSuitCo arg
if arg contains "hearts" then
return #red
else
if arg contains "diamonds" then
return #red
else
if arg contains "clubs" then
return #black
else
if arg contains "spades" then
return #black
end if
end if
end if
end if
end
on getduplicate arch, argu
if (sprite(arch).member.name <> "empty") and (sprite(arch).member.name <> "backofcard") then
if (getValue(sprite(arch).member.name) = getValue(sprite(argu).member.name)) and (getSuitCo(sprite(arch).member.name) = getSuitCo(sprite(argu).member.name)) then