zur Übersicht nächste Seite

Lernspiel Gleichung
(funktioniert unter Xorg aber nicht unter Wayland)

Die Ausführungen der vorherigen Seiten über Programmfenster werden hier weitergeführt.
Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. 
Oder man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein.  
Dann drückt man zum Abspeichern gleichzeitig Strg und O 
dann drückt man die Eingabetaste um den Dateinamen zu bestätigen 
dann drückt man zum Verlassen des Editors gleichzeitig Strg und X.


Das folgende Lernspiel bezieht sich auf lineare Gleichungen mit einer Unbekannten x. Eine bestimmte Form wird als Aufgabentyp zugrundegelegt. Dazu werden 6 zufällige ganzen Zahlen zwischen -12 und +12 erzeugt. Beim Aufruf des script wird die Aufgabenstellung angezeigt.

Da zum Lösen der Aufgabe ein klein wenig Zeit gebraucht wird gibt es kein Zeitfenster zum Ausrechnen. Es gibt eine Schaltfläche um die Lösung anzuzeigen

Nun kann man entscheiden ob man eine zufällige neue Aufgabe des gleichen Typs haben will oder das Spiel beenden will. 
In der Regel gibt es natürlich eine Lösung.

Das script wird wieder in dem Ordner ~/Bla abgelegt:
nano ~/Bla/lineareGLEICHUNG.sh
Eingabe in den Editor
#!/bin/bash

Uu=$(whoami)

aA=9
while (( $aA == 9 ))
do

aXa=$(echo $(($RANDOM % 25 - 12)) )
aXb=$(echo $(($RANDOM % 25 - 12)) )
aAa=$(echo $(($RANDOM % 25 - 12)) )
aAb=$(echo $(($RANDOM % 25 - 12)) )
aAc=$(echo $(($RANDOM % 25 - 12)) )
aAd=$(echo $(($RANDOM % 25 - 12)) )
aGa=$( echo "${aAa}(${aXa}x+$aAb)=${aAc}(${aXb}x+$aAd)" | sed 's/+-/-/g' )

yad --title "ony" --picture --geometry=778x378+161+161 --no-focus --no-buttons --undecorated --borders=0 --filename=/home/$Uu/Bla/dea60-66.gif & sleep 0.1s; GTK_THEME=Adwaita-dark yad --title "faq" --geometry=700x140+200+199 --undecorated --no-buttons --borders=0 --on-top --justify=center --text-info --back='#CA628B' --fore=black --fontname="Monospace bold 30" <<<$(echo -e "\n $aGa") & yad --title "prt" --geometry=778x26+161+539 --on-top --undecorated --button="Spiel beenden":5 --button="Lösung anzeigen":9 --buttons-layout=spread

Az=$?
wmctrl -F -c prt
sleep 0.1s; wmctrl -F -c faq
sleep 0.1s; wmctrl -F -c ony
if (( Az == 5 )) ; then
exit
fi

xS=$(( aAa*aXa-aAc*aXb ))
zS=$(( aAc*aAd-aAa*aAb ))

if (( xS == 0 )); then
if (( zS == 0 )); then
aIa=$( echo -e "\n$aGa\n\nx läßt sich nicht berechnen \njede Zahl ist Lösung")
else
aIa=$( echo -e "\n$aGa\n\nx läßt sich nicht berechnen \nes gibt keine Lösungen ")
fi
else

gcd() { ! (( $1 % $2 )) && echo $2 || gcd $2 $(( $1 % $2 )); }

ggT=$(gcd $(echo $zS | sed 's/-//') $(echo $xS | sed 's/-//'))

Z/N () { if (( $1%$2==0 )); then echo $1/$2 = $(( $1/$2 )); else echo $1/$2 = $(( $1/$2 )) + $(( $1%$2 ))/$2 ; fi; }

if (( xS < 0 )); then
aIa=$( echo -e "\n$aGa\n\nx=$(Z/N $(( -zS/ggT )) $(( -xS/ggT )) | sed s'#+ -#-#g')")
else
aIa=$( echo -e "\n$aGa\n\nx=$(Z/N $(( zS/ggT )) $(( xS/ggT )) | sed s'#+ -#-#g')")
fi
fi

yad --title "any" --picture --geometry=778x378+161+161 --no-focus --no-buttons --undecorated --borders=0 --filename=/home/$Uu/Bla/dea60-69.gif & sleep 0.2s; GTK_THEME=Adwaita-dark yad --title "haq" --geometry=700x300+200+199 --undecorated --no-buttons --borders=0 --on-top --justify=center --text-info --back='#CA628B' --fore=black --fontname=" Monospace bold 30" <<<"$aIa" & yad --title "krt" --geometry=778x26+161+539 --on-top --undecorated --button="Spiel beenden":5 --button="Neue Aufgabe":9 --buttons-layout=spread

aA=$?
wmctrl -F -c krt
sleep 0.1s; wmctrl -F -c any
sleep 0.1s; wmctrl -F -c haq

done
Nun muß man das script ausführbar machen.
chmod +x ~/Bla/lineareGLEICHUNG.sh
Die yad-Fenster verwenden die zwei 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.



 

Sollte ein Info-Bild wie unten angezeigt werden so bedeuted dies daß die CPU zuviel zu tun hat. Man kann auf das Info-Fenster klicken und das Yad-Fenster sichtbar machen. Sollte dies öfters vorkommen so kann man die sleep-Zeiten im script vergrößern damit die CPU etwas durchschnaufen kann.



zur Übersicht nächste Seite

Datenschutzerklärung
Impressum