Bash: "magic" cards
Posted: Sat Dec 02, 2023 4:19 pm
Old trick from my childhood.
Code: Select all
figures=(9 10 J Q K A)
colors=(♥ ♦ ♣ ♠)
numberofcards=$((${#figures[@]}*${#colors[@]}))
c=1
groups=4
echo Choose one of cards...
while [ $c -le $numberofcards ]
do
card=${figures[$RANDOM%(6)]}${colors[$RANDOM%(4)]}
if [[ $sequence != *$card* ]]; then
sequence+=$card" "
((c+=1))
fi
done
echo $sequence
read -rsp "Press any key to continue..." -n 1
sequence=($sequence)
for (( i=0;i<=$numberofcards / $groups;i++ ))
do
group1+=${sequence[i*$groups]}" "
group2+=${sequence[i*$groups+1]}" "
group3+=${sequence[i*$groups+2]}" "
group4+=${sequence[i*$groups+3]}" "
done
echo -e "\n"
echo 1. $group1
echo 2. $group2
echo 3. $group3
echo 4. $group4
read -n 1 -p "To which group this card belong?: " group
echo -e "\n"
if [[ $group == 1 ]]
then
sequence=($group1$group2$group3$group4)
fi
if [[ $group == 2 ]]
then
sequence=($group2$group3$group4$group1)
fi
if [[ $group == 3 ]]
then
sequence=($group3$group4$group1$group2)
fi
if [[ $group == 4 ]]
then
sequence=($group4$group1$group2$group3)
fi
((groups+=-1))
group1=""
group2=""
group3=""
group4=""
for (( i=0;i<=$numberofcards / $groups;i++ ))
do
group1+=${sequence[i*$groups]}" "
group2+=${sequence[i*$groups+1]}" "
group3+=${sequence[i*$groups+2]}" "
done
echo 1. $group1
echo 2. $group2
echo 3. $group3
read -n 1 -p "To which group this card belong now?: " group
echo -e "\n"
if [[ $group == 1 ]]
then
sequence=($group1$group2$group3)
fi
if [[ $group == 2 ]]
then
sequence=($group2$group3$group1)
fi
if [[ $group == 3 ]]
then
sequence=($group3$group1$group2)
fi
((groups+=-1))
group1=""
group2=""
group3=""
for (( i=0;i<=$numberofcards / $groups;i++ ))
do
group1+=${sequence[i*$groups]}" "
group2+=${sequence[i*$groups+1]}" "
done
echo 1. $group1
echo 2. $group2
read -n 1 -p "To which group this card belong now?: " group
echo -e "\n"
if [[ $group == 1 ]]
then
sequence=($group1$group2)
fi
if [[ $group == 2 ]]
then
sequence=($group2$group1)
fi
echo Your card is ${sequence[0]}