Page 1 of 1

Bash: "magic" cards

Posted: Sat Dec 02, 2023 4:19 pm
by puppy_apprentice

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]}