Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
70
Task/Penneys-game/UNIX-Shell/penneys-game.sh
Normal file
70
Task/Penneys-game/UNIX-Shell/penneys-game.sh
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#!/bin/bash
|
||||
main() {
|
||||
echo "Penney's Game"
|
||||
echo -n "Flipping to see who goes first ... "
|
||||
|
||||
if [[ $(flip) == H ]]; then
|
||||
echo "I do."
|
||||
p2=$(choose_sequence)
|
||||
echo "I choose: $p2"
|
||||
else
|
||||
echo "You do."
|
||||
fi
|
||||
|
||||
while true; do
|
||||
echo "Enter your three-flip sequence:"
|
||||
read p1
|
||||
case "$p1" in
|
||||
"$p2") echo "Sequence must be different from mine";;
|
||||
[hHTt][hHtT][hHtT]) break;;
|
||||
*) echo "Sequence must be three H's or T's";;
|
||||
esac
|
||||
done
|
||||
p1=$(tr a-z A-Z <<<"$p1")
|
||||
|
||||
if [ -z "$p2" ]; then
|
||||
p2=$(choose_sequence "$p1")
|
||||
echo "I choose: $p2"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Here we go. $p1, you win; $p2, I win."
|
||||
flips=
|
||||
|
||||
while true; do
|
||||
flip=$(flip)
|
||||
echo -n $flip
|
||||
flips+=$flip
|
||||
while (( ${#flips} > 3 )); do
|
||||
flips="${flips#?}"
|
||||
done
|
||||
case "$flips" in
|
||||
*$p1) echo $'\nYou win!'; exit 0;;
|
||||
*$p2) echo $'\nI win!'; exit 1;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
choose_sequence() {
|
||||
local result
|
||||
if (( $# )); then
|
||||
case "$1" in
|
||||
?Hh?) result=T;;
|
||||
*) result=H;;
|
||||
esac
|
||||
result+="${1%?}"
|
||||
else
|
||||
result=$(flip)$(flip)$(flip)
|
||||
fi
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
flip() {
|
||||
if (( RANDOM % 2 )); then
|
||||
echo H
|
||||
else
|
||||
echo T
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue