Lernspiel Kopfrechnen (funktioniert unter Xorg aber nicht
unter Wayland)
Die Ausführungen der
vorherigen Seiten über Programmfenster werden hier weitergeführt. Bei diesem Spiel geht es um die Prüfung ob eine Zahl größer oder kleiner als eine andere Zahl ist. Dazu kann man Regeln verwenden der Art: Eine negative Zahl ist kleiner als eine positive Zahl. Die Multiplikation zweier negativer Zahlen ergibt eine positive Zahl. Das Ausrechnen der Zahlen ist optional und macht das Spiel schwieriger. Es gibt natürlich die Möglichkeit daß zwei Zahlen gleich sind und dann zeigt sich ob einfach nur geraten wird. Bei diesem Spiel werden zufällige Zahlen zwischen -4 und +4 erzeugt. Dadurch ist das Spiel einfacher als bei zufälligen Zahlen zwischen -9 und +9, denn es entfallen Multiplikationen zweistelliger Zahlen. Die Aufgabe wird angezeigt |
Nach einigen Sekunden erscheint die Lösung der Aufgabe |
Nun kann man entscheiden ob man eine zufällige neue Aufgabe haben will oder das Spiel beenden will. Das Aufgabenfenster hat keine Schaltflächen aber nach wenigen Sekunden erscheint das Lösungsfenster. Wenn man es trotzdem vorher verschwinden lassen will kann man die ESC-Taste drücken. Die Farben der yad-Fenster wechseln zufällig in 7 verschiedenen Farben, z.B. |
Nach dem Aufruf des script kann man festlegen nach wieviel Sekunden die Lösung erscheint. Möglich sind 2 Sekunde bis 10 Sekunden. Es sind 4 Sekunden voreingestellt |
Nach dem Drücken der Schaltfläche Spiel beginnen erscheint die erste Aufgabe. Das script wird wieder in dem Ordner ~/Bla abgelegt: |
nano ~/Bla/ZahlenVERGLEICH.sh |
Eingabe in den Editor |
#!/bin/bash sS=$(zenity --scale --text "Es ist zu entscheiden ob \n linke Zahl kleiner rechte Zahl \n linke Zahl größer rechte Zahl \n Ausrechnen der Zahlen ist optional \n \n Sekunden bis Ergebnis gezeigt wird" --value=4 --min-value=2 --max-value=10 --step=1 --title "Größenvergleich von zwei Zahlen" --ok-label "Spiel beginnen" --cancel-label "ABBRECHEN") sF=$? if (( sF == 1 )); then exit; fi aA=9 while (( $aA == 9 )) do Zea=$(echo $(($RANDOM % 5)) ) Zeb=$(echo $(($RANDOM % 5)) ) Zec=$(echo $(($RANDOM % 5)) ) Zua=$(echo $(($RANDOM % 5)) ) Zub=$(echo $(($RANDOM % 5)) ) Zuc=$(echo $(($RANDOM % 5)) ) Nea=$(echo $(($RANDOM % 2 + 21)) ) Neb=$(echo $(($RANDOM % 2 + 21)) ) Nec=$(echo $(($RANDOM % 2 + 21)) ) Nua=$(echo $(($RANDOM % 2 + 21)) ) Nub=$(echo $(($RANDOM % 2 + 21)) ) Nuc=$(echo $(($RANDOM % 2 + 21)) ) Zru=$(echo "$Nua${Zua}x($Nub$Zub+$Nuc$Zuc)" | sed 's/21//g' | sed 's/22/-/g' | sed 's/+-/-/g' | sed 's/+0//g') Zle=$(echo "$Nea${Zea}x($Neb$Zeb+$Nec$Zec)" | sed 's/21//g' | sed 's/22/-/g' | sed 's/+-/-/g' | sed 's/+0//g') if (( (( $(echo $Zle | sed 's/x/*/g') )) < $(( $(echo $Zru | sed 's/x/*/g') )) )); then Vz="<"; fi if (( (( $(echo $Zle | sed 's/x/*/g') )) > $(( $(echo $Zru | sed 's/x/*/g') )) )); then Vz=">"; fi if (( (( $(echo $Zle | sed 's/x/*/g') )) == $(( $(echo $Zru | sed 's/x/*/g') )) )); then Vz="="; fi Fy=$(echo $(($RANDOM % 7 + 1)) ) if (( $Fy == 1 )); then Fh='#EAC5C9' ; Fs='#330A1F' ; fi if (( $Fy == 2 )); then Fh='#CFF6F0' ; Fs='#000434' ; fi if (( $Fy == 3 )); then Fh='#FFD29F' ; Fs='#2F0000' ; fi if (( $Fy == 4 )); then Fh='#DEC2D2' ; Fs='#1F233B' ; fi if (( $Fy == 5 )); then Fh='#F7E9FF' ; Fs='#4D002C' ; fi if (( $Fy == 6 )); then Fh='#BFFBCB' ; Fs='#051432' ; fi if (( $Fy == 7 )); then Fh='#FFECA7' ; Fs='#291B02' ; fi yad --title "fan" --geometry=800x180+100+200 --justify=center --undecorated --no-buttons --borders=0 --text-info --back=$Fh --fore=$Fs --fontname=" Monospace bold 40" <<<$(echo -e "\n $Zle ??? $Zru") & sleep $sS\s ; yad --title "oon" --geometry=380x200+310+400 --justify=center --undecorated --button="Spiel beenden":5 --button="Neue Aufgabe":9 --borders=0 --text-info --back=$Fh --fore=$Fs --fontname=" Monospace bold 40" <<<$(echo -e "\n $(( $(echo $Zle | sed 's/x/*/g') )) $Vz $(( $(echo $Zru | sed 's/x/*/g') ))") aA=$(echo $?) wmctrl -F -c 'oon' wmctrl -F -c 'fan' done |
Nun muß man das script ausführbar machen. |
chmod +x ~/Bla/ZahlenVERGLEICH.sh |