1   import java.util.Scanner;
2   
3   /**
4    * Ohj2
5    * Harjoitustyö
6    * 4.2.2008
7    * 
8    * Snooker pelin pistelaskuohjelma.
9    * Laskee pelaajien pisteet pelin aikana ja pitää yllä tilastoa pelatuista
10   * peleistä ja pelaajien tekemistä breikeistä (lyöntisarjoista). 
11   * 
12   * @author Ilkka Helenius
13   * @version 0.1
14   */
15  public class Paavalikko {
16      /**
17       * Luodaan kaikille metodeille näkyvä Scanner-olio 'lukija', ettei joka
18       * kerta tarvitse luoda uutta Scanneria.
19       */
20      public static Scanner lukija = new Scanner(System.in);
21  
22      /**
23       * Tulostaa annetun rivin standardiulostuloon
24       * @param rivi tulostettava rivi
25       */
26      public static void tulosta(String rivi) {
27      System.out.println(rivi);
28      }
29  
30      /**
31       * Tulostaa ohjelma logon
32       */
33      public static void logo() {
34      tulosta("");
35      tulosta("       #####################################");
36      tulosta("       #          S N O O K E R            #");
37      tulosta("       #      -pistelaskujärjestelmä       #");
38      tulosta("       #           versio 0.1              #");
39      tulosta("       #         Ilkka Helenius            #");
40      tulosta("       #####################################");
41      tulosta("");
42      tulosta("");
43      }
44  
45      /**
46       * Tulostaa ohjelman päävalikon
47       */
48      public static void mainMenu() {
49      tulosta("       Tämä ohjelma laskee snooker-pelin pisteet ja");
50      tulosta("       ylläpitää tilastoa pelatuista peleistä.");
51      tulosta("");
52      tulosta("       Päävalikko");
53      tulosta("       ==========");
54      tulosta("");
55      tulosta("       valitse:");
56      tulosta("         0 = lopeta");
57      tulosta("         1 = aloita peli");
58      tulosta("         2 = lisää pelaaja");
59      tulosta("         3 = poista pelaaja");
60      tulosta("         4 = kovimmat breikit");
61      tulosta("         5 = hae pelaajan pelit");
62      System.out.print("         :");
63  
64      }
65  
66      /**
67       * Kysyy käyttäjältä kokonaislukua niin kauan että saa kelvollisen
68       * vastauksen.
69       * @return Käyttäjän antama kokonaisluku
70       */
71      public static int kyssari() {
72  
73      int luku = 0;
74      String rivi = null;
75      boolean huonoLuku = false;
76      do {
77          try {
78          rivi = lukija.nextLine();
79          luku = Integer.parseInt(rivi);
80          huonoLuku = true;
81          } catch (NumberFormatException poikkeus2) {
82          System.out.println("Virhe: Anna kokonaisluku!");
83          }
84      } while (!huonoLuku && rivi != null);
85      return luku;
86      }
87  
88      /**
89       * Menee pelin aloitus valikkoon
90       */
91      public static void aloitus() {
92      tulosta("    1. Pelin aloitus");
93      tulosta("    ================");
94      tulosta("      Ei vielä toteutettu!");
95      }
96  
97      /**
98       * Menee lisää pelaajaa valikkooon
99       */
100     public static void lisaaPelaaja() {
101     tulosta("    2. Lisää pelaaja");
102     tulosta("    ================");
103     tulosta("      Ei vielä toteutettu!");
104 
105     }
106 
107     /**
108      * Menee poista pelaaja valikkoon
109      */
110     public static void poistaPelaaja() {
111     tulosta("    3. Poista pelaaja");
112     tulosta("    =================");
113     tulosta("      Ei vielä toteutettu!");
114     }
115 
116     /**
117      * Tulostaa parhaat lyöntisarjat
118      */
119     public static void naytaBreikit() {
120     tulosta("    4. Parhaat breikit");
121     tulosta("    ==================");
122     tulosta("      Ei vielä toteutettu!");
123     }
124 
125     /**
126      * Näyttää listan tallennetuista pelaajista joiden pelejä voidaan
127      * tarkastella.
128      */
129     public static void haePelit() {
130     tulosta("    5. Hae pelaajan pelit");
131     tulosta("    =====================");
132     tulosta("      Ei vielä toteutettu!");
133     }
134 
135     /**
136      * Päävalikko ohjelma. Tulostaa vaihtoehdot ja kysyy jatkon.    
137      */
138     public static void paamenu() {
139     while (true) {
140         logo();
141         mainMenu();
142         int vastaus = kyssari();
143 
144         switch (vastaus) {
145         case 0:
146         return;
147         case 1:
148         aloitus(); break;
149         case 2:
150         lisaaPelaaja(); break;
151         case 3:
152         poistaPelaaja(); break;
153         case 4:
154         naytaBreikit(); break;
155         case 5:
156         haePelit(); break;
157         default:
158         tulosta("Huono valinta! Tee parempi");
159         }
160     }
161     }
162     public static void lopetus(){
163     tulosta("     ---lopetetaan ohjelma---");
164     
165     }
166     public static void main(String[] args) {
167     paamenu();
168         lopetus();
169     }
170 }