Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #13011
| From | "Christian H. Kuhn" <qno-news@qno.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: Countdown Timer Design |
| Date | 2016-07-17 17:03 +0200 |
| Message-ID | <dv1l37Fkc9eU1@mid.individual.net> (permalink) |
| References | (6 earlier) <duvo7iF6tgdU1@mid.individual.net> <Schachuhr-20160717014148@ram.dialup.fu-berlin.de> <chess-clock-20160717112841@ram.dialup.fu-berlin.de> <dv1go6Fjau2U1@mid.individual.net> <Schachuhr-20160717150751@ram.dialup.fu-berlin.de> |
Am 17.07.2016 um 16:09 schrieb Stefan Ram:
> Ich wußte nicht, daß Schachuhren abwärts zählen, aber werde
> das dann zukünftig berücksichtigen.
Früher taten sie es nicht. In der analogen Welt waren das zwei ganz
normale Uhrenwerke. Die Uhr lief vorwärts. Ein paar Minuten vor der
vollen Stunde begann der Minutenzeiger (bei ein paar speziellen Modellen
auch ein anderer Mechanismus), das Fallblättchen anzuheben. Bei
Erreichen der vollen Stunde verlor das Blättchen seinen Halt auf dem
Zeiger und fiel wieder in die Ruhestellung. Eine Konvention, die mäßig
eingehalten wurde, verlangte, dass die Uhr so zu stellen sei, dass um
06:00:00 Uhr Partieende ist. Also wird für Blitzschach (5min pro Spieler
und Partie) die Uhr auf 05:55:00 gestellt. Für die übliche Bedenkzeit
bei Amateur-Turnierpartien (2h für die ersten 40 Züge, 1h für den Rest)
dann auf 03:00:00).
Interessant war aber nie die Uhrenstellung, sondern die verbleibende
Zeit. Dem Blitzspieler war es egal, ob da jetzt 5:58:32 oder 10:58:32
angezeigt wird. Wichtig war die Info: 1:28 min verbleiben. Mit dem
Aufkommen digitaler Schachuhren (die auch erst moderne Bedenkzeiten mit
Zeitzuschlägen pro Zug ermöglichten) ging man dann dazu über, die
verbleibende Bedenkzeit anzuzeigen und folglich rückwärts zu zählen.
Da Displays offensichtlich teuer sind, ist es zur Zeit bei den
handelsüblichen Modellen üblich, dass die Zeit zunächst in hh:mm
angezeigt wird. Sobald eine Restzeit von (je nach Modell) 10 oder 20
Minuten unterschritten wird, wechselt die Anzeige auf mm.ss. So spart
man zwei Stellen ein.
Das Fallblättchen wird durch ein Sonderzeichen, z.B. durch einen
führenden Unterstrich oder einen Apostroph, angezeigt. Bei
Bedenkzeitregelungen mit mehreren Zeitperioden kann es für jede Periode
ein eigenes Blättchen geben. Es kann aber auch kurz vor der nächsten
Zeitkontrolle das alte gelöscht und wiederverwertet werden.
Manche Uhren zeigen an, in der wievielten Bedenkzeitperiode man sich
befindet. Manche Uhren zeigen an, auf welcher Seite Weiß sitzt. Alle
Uhren zeigen an, welche Seite am Zug befindlich ist; entweder durch das
Blinken des Trennzeichens zwischen den hh und mm bzw. zwischen mm und
ss, das dann auch das Laufen der Uhr anzeigt, oder durch ein
zusätzliches Zeichen im Display, z.B. einen Pfeil, oder auch durch eine
Leuchte am Gehäuse.
> Da kenne ich mich eben nicht aus, also kann ich so etwas
> auch nicht implementieren. Ich habe lediglich eine Pause
> beider Uhrenwerke vorgesehen, falls beide Spiele mit dem
> Schiedsrichter diskutieren wollen, da ich davon im Web
> gelesen hatte.
Ein durchaus realistisches Szenario. Und damit weisst du in dem Punkt
mehr als 80% der Schachspieler, die die Uhr für Diskussionen nicht
anhalten und sich danach über die abgelaufene Bedenkzeit beschweren :-)
Du hast also den durchaus richtigen Ansatz verfolgt, dass man erstmal
die aktuellen Anforderungen implementiert und sein Design nicht an
möglichen zukünftigen Anforderungen orientiert. Ich habe es hier nicht
kommuniziert, weiss aber, dass da noch mehr kommt. Und bevor ich schon
wieder alles umschreibe, behalte ich das von Anfang an im Kopf.
> Bei einer reinen Standard-Java-Konsolenoberfläche, die nur
> einfache Methoden in der Art wie »println« vorsieht, müßte
> man dann in einer Schleife immer wieder die neuen Zeiten
> ausgeben. Außerdem benötigt man noch die Möglichkeit
> /nichtblockierend/ zu testen, ob der Bediener eine Taste
> gedrückt hat.
Geht wohl nicht in einem Thread. Scheint aber kein Problem zu sein, wenn
ein Thread ausgibt und ein Thread blockierend wartet:
public class Threadspiel {
public static void main(final String[] _args) {
Thread thread1 = new Thread(() -> {
while (true) {
System.out.print("a");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
});
Thread thread2 = new Thread(() -> {
while (true) {
try {
if (0 < System.in.available()) {
System.out.println(System.in.read());
}
} catch (IOException e) {
}
}
});
thread1.start();
thread2.start();
}
}
lg
QNo
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 01:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 18:26 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-14 19:47 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 00:08 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:04 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 22:53 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 23:44 +0200
Countdown Timer Design (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 12:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 15:49 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 17:03 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 15:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 14:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 16:06 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-19 18:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 22:35 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-20 13:00 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 20:36 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 23:15 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Wanja Gayk <brixomatic@yahoo.com> - 2016-07-19 23:02 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-20 12:33 +0200
GUI-Update über Swing-EDT (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 12:03 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:43 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:18 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 15:24 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-16 16:42 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:05 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 16:02 +0200
csiph-web