Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,58 +1,58 @@
|
|||
on pickNumber()
|
||||
set theNumber to ""
|
||||
repeat 4 times
|
||||
set theDigit to (random number from 1 to 9) as string
|
||||
repeat while (offset of theDigit in theNumber) > 0
|
||||
set theDigit to (random number from 1 to 9) as string
|
||||
end repeat
|
||||
set theNumber to theNumber & theDigit
|
||||
end repeat
|
||||
set theNumber to ""
|
||||
repeat 4 times
|
||||
set theDigit to (random number from 1 to 9) as string
|
||||
repeat while (offset of theDigit in theNumber) > 0
|
||||
set theDigit to (random number from 1 to 9) as string
|
||||
end repeat
|
||||
set theNumber to theNumber & theDigit
|
||||
end repeat
|
||||
end pickNumber
|
||||
|
||||
to bulls of theGuess given key:theKey
|
||||
set bullCount to 0
|
||||
repeat with theIndex from 1 to 4
|
||||
if text theIndex of theGuess = text theIndex of theKey then
|
||||
set bullCount to bullCount + 1
|
||||
end if
|
||||
end repeat
|
||||
return bullCount
|
||||
set bullCount to 0
|
||||
repeat with theIndex from 1 to 4
|
||||
if text theIndex of theGuess = text theIndex of theKey then
|
||||
set bullCount to bullCount + 1
|
||||
end if
|
||||
end repeat
|
||||
return bullCount
|
||||
end bulls
|
||||
|
||||
to cows of theGuess given key:theKey, bulls:bullCount
|
||||
set cowCount to -bullCount
|
||||
repeat with theIndex from 1 to 4
|
||||
if (offset of (text theIndex of theKey) in theGuess) > 0 then
|
||||
set cowCount to cowCount + 1
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return cowCount
|
||||
set cowCount to -bullCount
|
||||
repeat with theIndex from 1 to 4
|
||||
if (offset of (text theIndex of theKey) in theGuess) > 0 then
|
||||
set cowCount to cowCount + 1
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return cowCount
|
||||
end cows
|
||||
|
||||
to score of theGuess given key:theKey
|
||||
set bullCount to bulls of theGuess given key:theKey
|
||||
set cowCount to cows of theGuess given key:theKey, bulls:bullCount
|
||||
return {bulls:bullCount, cows:cowCount}
|
||||
set bullCount to bulls of theGuess given key:theKey
|
||||
set cowCount to cows of theGuess given key:theKey, bulls:bullCount
|
||||
return {bulls:bullCount, cows:cowCount}
|
||||
end score
|
||||
|
||||
on run
|
||||
set theNumber to pickNumber()
|
||||
set pastGuesses to {}
|
||||
repeat
|
||||
set theMessage to ""
|
||||
repeat with aGuess in pastGuesses
|
||||
set {theGuess, theResult} to aGuess
|
||||
set theMessage to theMessage & theGuess & ":" & bulls of theResult & "B, " & cows of theResult & "C" & linefeed
|
||||
end repeat
|
||||
set theMessage to theMessage & linefeed & "Enter guess:"
|
||||
set theGuess to text returned of (display dialog theMessage with title "Bulls and Cows" default answer "")
|
||||
set theScore to score of theGuess given key:theNumber
|
||||
if bulls of theScore is 4 then
|
||||
display dialog "Correct! Found the secret in " & ((length of pastGuesses) + 1) & " guesses!"
|
||||
exit repeat
|
||||
else
|
||||
set end of pastGuesses to {theGuess, theScore}
|
||||
end if
|
||||
end repeat
|
||||
set theNumber to pickNumber()
|
||||
set pastGuesses to {}
|
||||
repeat
|
||||
set theMessage to ""
|
||||
repeat with aGuess in pastGuesses
|
||||
set {theGuess, theResult} to aGuess
|
||||
set theMessage to theMessage & theGuess & ":" & bulls of theResult & "B, " & cows of theResult & "C" & linefeed
|
||||
end repeat
|
||||
set theMessage to theMessage & linefeed & "Enter guess:"
|
||||
set theGuess to text returned of (display dialog theMessage with title "Bulls and Cows" default answer "")
|
||||
set theScore to score of theGuess given key:theNumber
|
||||
if bulls of theScore is 4 then
|
||||
display dialog "Correct! Found the secret in " & ((length of pastGuesses) + 1) & " guesses!"
|
||||
exit repeat
|
||||
else
|
||||
set end of pastGuesses to {theGuess, theScore}
|
||||
end if
|
||||
end repeat
|
||||
end run
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue