Die Ausführungen der
vorherigen Seiten über Programmfenster werden hier weitergeführt. Hier gibt es ein Lernspiel das sich auf das Lesen einer analogen Uhr bezieht. Beim Aufruf des script werden zufällige Zahlen für Stunden und Minuten erzeugt und anschließend das Bild einer Uhr gemalt. Die Aufgabenstellung wird angezeigt: |
Es gibt eine Schaltfläche um das Ergebnis anzuzeigen |
Nun kann man entscheiden ob man eine zufällige neue Aufgabe haben will
oder das Spiel beenden will. Das script wird wieder in dem Ordner ~/Bla abgelegt: |
nano ~/Bla/spielUHR.sh |
Eingabe in den Editor |
#!/bin/bash Uu=$(whoami) aA=9 while (( $aA == 9 )) do stN=$(echo $(($RANDOM % 12)) ) miN=$(echo $(($RANDOM % 60)) ) convert ~/Bla/dea64-10.png \( ~/Bla/dea64-11.png -background none -rotate $(( stN*30+miN/2 )) \) -gravity Center -composite \( ~/Bla/dea64-12.png -background none -rotate $(( miN*6 )) \) -gravity Center -composite ~/Bla/tmpUHRtmp.png sleep 0.1s; GTK_THEME=Adwaita-dark yad --title "haq" --geometry=600x300+200+200 --undecorated --image /home/$Uu/Bla/tmpUHRtmp.png --borders=4 --on-top --button='!/home/'"$Uu"'/Bla/dea64-03.png!BEENDEN':6 --button='!/home/'"$Uu"'/Bla/dea64-04.png!ERGEBNIS':9 --justify=center --text-info --back='#76EEC6' --fore=black --fontname=" Monospace bold 20" <<<"$( echo -e "\nZeitraum\n\n0 bis 12 Uhr.\n\nBitte Uhrzeit\n\nablesen." )" Az=$? if (( Az == 6 )) ; then exit fi if (( miN == 15 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\nViertel nach $stN" ) elif (( miN == 30 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\nhalb $(( stN +1 ))" ) elif (( miN == 45 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\nViertel vor $(( stN +1 ))" ) elif (( miN == 0 && stN == 0 )); then inF=$( echo -e "\nEs ist\n\n$stN Uhr $miN\n\nMitternacht\n\noder 12 Uhr" ) elif (( miN == 0 && stN > 0 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$stN Uhr" ) elif (( miN <= 20 && stN == 0 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$miN nach Mitternacht" ) elif (( miN <= 20 && stN > 0 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$miN nach $stN" ) elif (( miN > 20 && miN < 30 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$(( 30 - miN )) vor halb $(( stN +1 ))" ) elif (( miN > 30 && miN < 40 )); then inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$(( miN - 30 )) nach halb $(( stN +1 ))" ) else inF=$( echo -e "\n\nEs ist\n\n$stN Uhr $miN\n\n$(( 60 - miN)) vor $(( stN +1 ))" ) fi GTK_THEME=Adwaita-dark yad --title "haq" --geometry=600x300+200+200 --undecorated --image /home/$Uu/Bla/tmpUHRtmp.png --borders=4 --on-top --button='!/home/'"$Uu"'/Bla/dea64-03.png!BEENDEN':6 --button='!/home/'"$Uu"'/Bla/dea64-02.png!NEU':9 --justify=center --text-info --back='#FF7F50' --fore=black --fontname=" Monospace bold 18" <<<"$inF" aA=$? done |
Nun muß man das script ausführbar machen. |
chmod +x ~/Bla/spielUHR.sh |
Die yad-Fenster verwenden die unten gezeigten Bild-Dateien die Sie auf Ihren Computer kopieren müssen. Diese Bild-Dateien müssen in dem Ordner liegen auf den das script verweist. Hier ist es der Ordner ~/Bla. Ansonsten müssen Sie die Pfade anpassen. |
Es wird in dem Ordner ~/Bla ein temporäres Bild tmpUHRtmp.png erzeugt. Dieses wird bei jedem Klicken auf neue Uhrzeit überschrieben und bleibt am Ende des Spieles noch übrig. Falls es stört kann man im script am Schluß noch eine Zeile anfügen um dieses Bild zu löschen. |