Punktezählprogramm (Sport)
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Punktezählprogramm (Sport)
Hallo,
gibt es ein Programm, welches ausgelöst mit einem Tastendruck die Punkte eines (Tischtennis-)spiels aufzeichnet? Also sprich, Spieler 1 hat einen Punkt und drückt auf dem Notebook Taste(n) xyz damit ihm ein Punkt angerechnet wird. Das Display zeigt an: Punktestand : Punktestand.
Sowas hier:
http://www.sport-rundum.de/Tischtennis/ ... CORER.html
nur für den PC? Gibt es sowas?
gibt es ein Programm, welches ausgelöst mit einem Tastendruck die Punkte eines (Tischtennis-)spiels aufzeichnet? Also sprich, Spieler 1 hat einen Punkt und drückt auf dem Notebook Taste(n) xyz damit ihm ein Punkt angerechnet wird. Das Display zeigt an: Punktestand : Punktestand.
Sowas hier:
http://www.sport-rundum.de/Tischtennis/ ... CORER.html
nur für den PC? Gibt es sowas?
Re: Punktezählprogramm (Sport)
Code: Alles auswählen
#!/bin/zsh
a=0; b=0;
while read -s -k 1 char; do
case "$char" in
j) ((a++)); ;;
k) ((b++)); ;;
d) ((a--)); ;;
f) ((b--)); ;;
*) continue 2; ;;
esac
clear; echo -e '\n\n\n';
figlet -tc -- "$a : $b";
done
Bedienung: Mit j und k werden Spieler A (links) und B (rechts) inkrementiert, falls falsch getippt wurde, kann man mit d für A und f für B wieder dekrementieren.
Gruß Cae
--Edit: figlet bekommt -t (mittig im Terminal) und -- (nachfolgender negativer A-Wert ist kein Syntaxfehler mehr)
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Punktezählprogramm (Sport)
In bash einfach nur "-n 1" anstatt "-k 1" bei read. Dass es sowas wie figlet gibt hätte ich gar nicht erwartet.Cae hat geschrieben:Das Skript benötigt die Zsh (bis mir jemand sagt, wie man ein einzelnes Zeichen einlesen kann).
Da kommt mir gerade eine Idee. Es gibt doch auch diverse Programme die Text in eine Grafikdatei umwandeln können. Damit ließe sich sowas doch auch recht einfach realisieren.
Re: Punktezählprogramm (Sport)
Okay, dann hier die Bash-VersionDamit braucht man nur noch figlet zusätzlich.
Gruß Cae
Code: Alles auswählen
#!/bin/bash
a=0; b=0;
while read -sn 1 char; do
case "$char" in
j) a=$((a+1)); ;;
k) b=$((b+1)); ;;
d) a=$((a-1)); ;;
f) b=$((b-1)); ;;
*) continue 2; ;;
esac
clear; echo -e '\n\n\n';
figlet -tc -- "$a : $b";
done
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Re: Punktezählprogramm (Sport)
Ist ja genial, genau sowas habe ich gesucht, das läuft sogar auf dem ältesten Notebook, danke!
Edit: habe die Schriftart "doh" gefunden, mit der sind die Zahlen deutlich größer. Das sollte reichen. Danke nochmal
Heißt das, es geht definitiv nicht größer? Ich habe schon die manpage durchgelesen und einiges probiert, zB. -f big für die Schriftart "big", aber ich bekomme die Schrift nicht größer. Gibt es eine Möglichkeit, dass die Schrift so groß ist wie das Terminal?Cae hat geschrieben:figlet kann unter Umständen zu klein sein.
Edit: habe die Schriftart "doh" gefunden, mit der sind die Zahlen deutlich größer. Das sollte reichen. Danke nochmal
Zuletzt geändert von Exxter am 09.10.2012 10:08:32, insgesamt 1-mal geändert.
Re: Punktezählprogramm (Sport)
Man müsste FIGlet eine andere Font vorsetzen, die halt größer ist. Eine Auswahl findet man unter [1], such' dir eine passende aus und lade sie herunter. Wobei die Kombination von groß und lesbar wohl nicht so verbreitet ist, aber "doh" ist zumindest etwas größer. Das sieht dann so aus:
Im Zweifel lässt du die Standardfont und stellst die Schriftgröße im Terminal hoch (xterm kann das on the fly über Strg+Rechtsklick). Falls du Framebuffer verwendest, geht das wohl nicht so einfach.
Gruß Cae
[1] http://www.jave.de/figlet/fonts/overview.html
Code: Alles auswählen
figlet -tcf doh.flf -- "$a : $b";
Gruß Cae
[1] http://www.jave.de/figlet/fonts/overview.html
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Re: Punktezählprogramm (Sport)
Hehe, danke, genau die nutze ich und ich denke, das reicht zu so.
Re: Punktezählprogramm (Sport)
Wenn Du übrigens Farbe willst, ginge auch toilet
Dann wäre das beispielsweise so zu ändern, figlet statt toilet:
Dann wäre das beispielsweise so zu ändern, figlet statt toilet:
Code: Alles auswählen
toilet -f smmono9 -t --filter gay -- "$a : $b";
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Re: Punktezählprogramm (Sport)
Wow, sieht ja fetzig aus! Danke dir.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Punktezählprogramm (Sport)
Noch eine andere Lösung.. so manchmal sieht man doch den Wald vor lauter Bäumen nicht. conky-all läuft bestimmt bei vielen als Systemmonitor auf dem Desktop. Mit dem lässt sich das auch realisieren.
Das Skript schreibt dann den aktuellen Punktestand in eine Datei und conky zeigt den Inhalt (die letzte Zeile) an. Das sieht dann z.B. so aus (lässt sich natürlich noch verschönern):
Skript:
und .conkyrc_scores
Wichtig ist dass man nach dem Starten des Skripts das Terminal anklickt, damit es wieder den Fokus bekommt. Sonst landen die Tastatureingaben bei conky und der kann damit nichts anfangen. Conky bleibt aber im Vordergrund da "own_window_hints above" gesetzt ist.
Das Skript schreibt dann den aktuellen Punktestand in eine Datei und conky zeigt den Inhalt (die letzte Zeile) an. Das sieht dann z.B. so aus (lässt sich natürlich noch verschönern):
Skript:
Code: Alles auswählen
#!/bin/bash
configfile=$HOME/.conkyrc_scores
scores=$HOME/scores.txt
a=0; b=0;
echo "$a : $b" >> "$scores"
conky -c "$configfile" -q &
pid=$!
while read -s -n 1 char; do
case "$char" in
j) ((a++)); ;;
k) ((b++)); ;;
d) ((a--)); ;;
f) ((b--)); ;;
R) a=0; b=0; ;;
Q) kill $pid; exit; ;;
*) continue; ;;
esac
echo "$a : $b" >> "$scores"
done
Code: Alles auswählen
use_xft yes
xftfont Sans:size=40
update_interval 0.2
own_window yes
minimum_size 1200
own_window_hints above
own_window_colour black
double_buffer yes
alignment top_middle
default_color white
TEXT
${alignc}Spieler 1 Spieler 2
${font Sans:size=240}${alignc}${tail $HOME/scores.txt 1}$font
Zuletzt geändert von r900 am 09.10.2012 14:58:29, insgesamt 1-mal geändert.
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Re: Punktezählprogramm (Sport)
krass! Gleich mal ausprobiert, funktioniert einwandfrei, in allen Größen und Farben. Da kann man ein Fenster öffnen das den ganzen TFT komplett ausfüllt, genial, danke!
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Punktezählprogramm (Sport)
Hab da noch ein alignc beim Punktestand gesetzt und minimum_size eingefügt. Wie man Schriftart und -größe verändert ist denke ich offensichtlich. Alles weitere ist im conky manual zu finden ..
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Punktezählprogramm (Sport)
So ganz gefiel es mir doch noch nicht, hier die fertige Version:
Fragt jetzt auch nach Namen der Spieler und zählt die gewonnenen Spiele. Die passende .conkyrc_scores:
Sieht bei mir dann so aus:
Viel Spaß damit.
Code: Alles auswählen
#!/bin/bash
configfile=$HOME/.conkyrc_scores
scores=$HOME/scores.txt
a=0; b=0; am=0; bm=0
# Hier kann man am Ausgabeformat basteln. Wenn es stört dass die scores.txt
# immer größer wird, beim ersten echo die Umleitung von ">>" auf ">" ändern.
printscore(){
echo "\${alignc}$player1 (j) $player2 (k)" >> "$scores"
echo "\$color1\${alignc}$am $bm\$color" >> "$scores"
echo "\${font Sans:size=240}\${alignc}$a : $b\$font" >> "$scores"
}
read -p 'Spieler 1: ' player1; [ -n "$player1" ] || player1='Spieler 1'
read -p 'Spieler 2: ' player2; [ -n "$player2" ] || player2='Spieler 2'
printscore
conky -c "$configfile" -q &
pid=$!
while read -s -n 1 char; do
case "$char" in
j) ((a++)) ;;
k) ((b++)) ;;
J) ((a--)) ;;
K) ((b--)) ;;
r) a=0; b=0 ;;
N) ((a > b)) && ((am++)); ((a < b)) && ((bm++)); a=0; b=0 ;;
R) a=0; b=0; am=0; bm=0 ;;
Q) kill $pid; exit ;;
*) continue ;;
esac
printscore
done
Code: Alles auswählen
use_xft yes
xftfont Sans:size=40
update_interval 0.2
own_window yes
minimum_size 1200
own_window_hints above
own_window_colour black
double_buffer yes
alignment top_middle
default_color white
color1 red
color2 grey
TEXT
${execp tail -3 $HOME/scores.txt}
$color2${font Sans:size=20}${alignc}Next game (N) Reset game (r) Reset match (R) Quit (Q)
$alignc${time %a, %d.%m.%Y %H:%M}$font$color
Viel Spaß damit.
-
- Beiträge: 385
- Registriert: 10.01.2003 00:15:15
- Lizenz eigener Beiträge: GNU General Public License
Re: Punktezählprogramm (Sport)
cool! Danke dir!
Re: Punktezählprogramm (Sport)
Nett, und auch danke fuer's zur Verfuegung stellen.r900 hat geschrieben: Sieht bei mir dann so aus:
[OT]
Nur frage ich mich was da fuer ein Spiel gespielt wird bei dem rms am verlieren ist. Go wird es kaum sein denn da wuerde er sicher gegen Linux gewinnen. Kannst du uns da vielleicht aufklaeren? Oder weiss sonst jemand mehr?
Use ed once in a while!
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Punktezählprogramm (Sport)
Endlich bemerkt jemand meine subtile Stichelei!Meillo hat geschrieben:Nur frage ich mich was da fuer ein Spiel gespielt wird bei dem rms am verlieren ist. Go wird es kaum sein denn da wuerde er sicher gegen Linux gewinnen. Kannst du uns da vielleicht aufklaeren? Oder weiss sonst jemand mehr?
Keine Sorge, das Spiel ist ja noch nicht vorbei und rms holt auf. Vielleicht benutzen wir bald alle den Hurd. Das wäre doch mal eine Aktion, mit dem Release von Wheezy steigen die Benutzer des df geschlossen auf Debian GNU/Hurd um.