Obliczenia brydżowe (Java ME)
Jacek Kowalski
2012-08-07 bf2df04c8c12760206ea1d5be5c7e008123cc695
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
package brydz;
 
import javax.microedition.lcdui.*;
 
public class BrydzMenu extends List implements CommandListener {
    protected BrydzMIDlet midlet;
    protected BrydzForm form;
    protected Form text;
    
    public BrydzMenu(BrydzMIDlet midlet, BrydzForm previous) {
        super("Menu", List.IMPLICIT);
        
        this.midlet = midlet;
        this.form = previous;
        
        this.text = new Form("Obliczenia brydżowe");
        this.text.addCommand(new Command("Powrót", Command.BACK, 1));
        this.text.addCommand(new Command("Menu", Command.OK, 1));
        this.text.setCommandListener(this);
        
        this.append("Pomoc", null);
        this.append("Autor", null);
        this.append("Wyjście", null);
        this.addCommand(new Command("Powrót", Command.BACK, 1));
        this.setSelectCommand(new Command("Wybierz", Command.ITEM, 1));
        this.setCommandListener(this);
        
        this.midlet.display.setCurrent(this);
    }
    
    public void commandAction(Command command, Displayable displayable) {
        switch(command.getCommandType()) {
            case Command.OK:
                this.midlet.display.setCurrent(this);
            break;
            case Command.BACK:
                this.midlet.display.setCurrent(this.form);
            break;
            case Command.ITEM:
                switch(this.getSelectedIndex()) {
                    case 0:
                        this.text.deleteAll();
                        this.text.append(new StringItem("O programie", "MIDlet ten ma za zadanie ułatwić obliczanie zapisu brydżowego przy towarzyskim graniu w brydża sportowego."));
                        this.text.append(new StringItem("Kontrakt", "Należy podać wysokość wylicytowanego kontraktu lub 0 przy czterech pasach"));
                        this.text.append(new StringItem("Kolor", "Trzeba wybrać z listy wylicytowany kolor (młodszy/starszy/bez atu) - w przypadku pasów nie ma to znaczenia."));
                        this.text.append(new StringItem("Kontra", "Jeśli przeciwnicy dawali kontrę lub rozgrywający dodatkowo rekontrował - należy zaznaczyć odpowiednie pole."));
                        this.text.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.text.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.text.append(new StringItem("Lew", "Ilość lew wziętych przez rozgrywającego - w przypadku pasów nie ma znaczenia."));
                        this.text.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 uzyskanych IMP-ów oraz uzyskanym procencie, zgodnie z zapisem maksowym p. Adama Królika."));
                        this.midlet.display.setCurrent(this.text);
                    break;
                    case 1:
                        this.text.deleteAll();
                        this.text.append("Autor: Jacek Kowalski\nhttp://dev.jacekk.net/brydz");
                        this.midlet.display.setCurrent(this.text);
                    break;
                    case 2:
                        this.midlet.destroyApp(true);
                    break;
                }
            break;
        }
    }
}