Obliczenia brydżowe (Java ME)
Jacek Kowalski
2015-08-16 67d931ba96c0e37f439940809813c5179b139bb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * Copyright (c) 2012, Jacek Kowalski (http://jacekk.info)
 * Wszystkie prawa zastrzeżone
 * 
 * Licencja w pliku BSD-3.txt
 */
 
package brydz;
 
import javax.microedition.lcdui.*;
 
public class BrydzPomocForm extends Form implements CommandListener {
    protected BrydzMIDlet midlet;
    protected BrydzForm form;
    
    public BrydzPomocForm(BrydzMIDlet midlet, BrydzForm previous, boolean about) {
        super("");
        
        this.midlet = midlet;
        this.form = previous;
        
        if(about) {
            this.setTitle("O programie");
            this.append(new StringItem("Program:", "Obliczenia brydżowe"));
            this.append(new StringItem("Wersja:", this.midlet.version));
            this.append(new StringItem("Licencja:", "BSD 3-Clause License\n(zobacz niżej)"));
            this.append(new StringItem("Autor:", "Jacek Kowalski"));
            this.append(new StringItem("Strona WWW:", "http://dev.jacekk.net/brydz", StringItem.HYPERLINK));
            
            this.append(new StringItem("Pełny tekst licencji:", "Copyright (c) 2012, Jacek Kowalski (http://jacekk.info)\n"
                + "Wszystkie prawa zastrzeżone\n"
                + "\n"
                + "Rozpowszechnianie i używanie oprogramowania, czy to w formie kodu źródłowego, czy w formie kodu wykonywalnego, są dozwolone pod warunkiem spełnienia poniższych warunków:\n"
                + "1. Rozpowszechniany kod źródłowy musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności.\n"
                + "2. Rozpowszechniany kod wykonywalny musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności w dokumentacji i/lub w innych materiałach dostarczanych wraz z kopią oprogramowania.\n"
                + "3. Ani nazwa Jacekk.info, ani nazwa Jacekk.net, ani nazwiska twórców i współpracowników nie mogą być użyte dla ukazania ich aprobaty dla prac pochodnych od tego oprogramowania lub ich promowania bez szczególnego, wyrażonego na piśmie zezwolenia danej osoby lub organizacji.\n"
                + "\n"
                + "To oprogramowanie jest dostarczone przez właścicieli praw autorskich \"takim, jakie jest\". Wszelkie dorozumiane lub bezpośrednio wyrażone gwarancje, nie wyłączając gwarancji przydatności handlowej i przydatności do określonego zastosowania, są wyłączone."
                + " W żadnym wypadku posiadacze praw autorskich oraz współtwórcy nie mogą być odpowiedzialni za jakiekolwiek bezpośrednie, pośrednie, przypadkowe, specjalne, uboczne lub wtórne szkody (w tym obowiązek dostarczenia produktu zastępczego lub serwisu, utratę danych lub korzyści,"
                + " a także przerwę w pracy przedsiębiorstwa) spowodowane w jakikolwiek sposób i niezależnie od przyczyn odpowiedzialności, takich jak: teoretyczna odpowiedzialność kontraktowa lub deliktowa (wynikła zarówno z niedbalstwa, jak i z innych przyczyn), powstałe w jakikolwiek sposób"
                + " w wyniku używania lub mające związek z używaniem oprogramowania, nawet jeśli o możliwości powstania takich szkód ostrzeżono."));
        }
        else
        {
            this.setTitle("Pomoc");
            
            this.append(new StringItem("Informacje:", "MIDlet ten ma za zadanie"
                    + " ułatwić obliczanie zapisu brydżowego przy towarzyskim"
                    + " graniu w brydża sportowego."));
            this.append(new StringItem("Kontrakt:", "Należy podać wysokość"
                    + " wylicytowanego kontraktu lub 0 przy czterech pasach"));
            this.append(new StringItem("Kolor:", "Trzeba wybrać z listy"
                    + " wylicytowany kolor (młodszy/starszy/bez atu) - w przypadku"
                    + " czterech pasów nie ma to znaczenia."));
            this.append(new StringItem("Kontra:", "Jeśli przeciwnicy dawali kontrę"
                    + " lub rozgrywający dodatkowo rekontrował - należy zaznaczyć"
                    + " odpowiednie pole."));
            this.append(new StringItem("Przed/po partii:", "Część przed znakiem"
                    + " \"/\" dotyczy rozgrywających, zaś część druga -"
                    + " przeciwników. W przypadku czterech pasów - pierwsza dotyczy"
                    + " pary z większą liczbą punktów."));
            this.append(new StringItem("PC:", "Liczba punktów honorowych (punktów"
                    + " Miltona Worka) pary, która wylicytowała kontrakt."
                    + " W przypadku pasów - suma punktów pary z większą ich ilością."));
            this.append(new StringItem("Lew:", "Ilość lew wziętych przez"
                    + " rozgrywającego - w przypadku pasów nie ma znaczenia."));
            this.append(new StringItem("Wynik:", "Przekazywana jest informacja"
                    + " o stronie, która uzyskała zapis, liczbie punktów bez i z"
                    + " uwzględnieniem ilości PC, ilości IMP-ów oraz uzyskanym"
                    + " procencie, zgodnie z zapisem maksowym p. Adama Królika."));
        }
        
        this.addCommand(new Command("Powrót", Command.BACK, 2));
        this.setCommandListener(this);
    }
    
    public void commandAction(Command command, Displayable displayable) {
        if(command.getCommandType() == Command.BACK) {
            this.midlet.display.setCurrent(this.form);
        }
    }
}