Wisielec.java
Poniższe materiały zostały tu kiedyś umieszczone na potrzeby mojej grupy ze studiów. Na 99,9% nie posiadam żadnych dodatkowych materiałów związanych z tym tematem ani nie gwarantuję 100% poprawności.
import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; import java.util.Random; class Wisielec{ static BufferedReader strumien = new BufferedReader(new InputStreamReader(System.in)); static char pobierzlitere() { String s=new String(); // zmienna s bedzie litera pobierana od usera int blad=0; // przyda sie do sprawdzania bledow. olac wyjatki // stare sprawdzone metody sa najlepsze. try{ // popros usera o litere System.out.print("Podaj litere: "); s=strumien.readLine(); // } // zlap wyjatek. Cokolwiek sie stanie, stwierdz, ze byl blad podczas odczytywania litery (oficjalna wersja) // oraz przypisz do zmiennej blad=1 (sprawdzony sposob sprawdzania bledow). catch(IOException e){ System.out.println("Błąd podczas pobierania litery"); blad=1; } if(blad==1) // jesli juz wystapil jakis blad wczesniej... { return 0; //..to zwroc wartosc 0 i nie rob nic dalej. } else // jesli nie bylo bledu, to lecimy dalej. { if(s.length()>1 || s.length()==0) // jeśli user wklepał więcej niż jeden znak { System.out.println("Miałeś podać JEDNĄ literę. Nie mniej, nie wiecej. JEDNA. Are you stupid or something?"); return 0; // znowu przypiszmy blad=1 - bedziemy wiedzieli, ze szkodnik popelnil jakis blad. } else { // udało się userowi wpisać jedne znak. char litera[]=s.toCharArray(); // zamieńmy w końcu tego stringa na chara if(Character.isLetter(litera[0])){ // czy ten znak wprowadzony przez usera na pewno jest litera? return litera[0]; // tak! tak! udało się! Zwróćmy w końcu ten znak do głównego programu. } else // nie, sierotka wpisała jakąś cyfrę, kropkę czy coś innego. Napiszmy mu, że jest głupi. { System.out.println("Miałeś podać LITERĘ. Nie cyfrę, nie inny znak. LITERĘ. Are you stupid or something?"); return 0; } } } } public static void main(String args[]) throws IOException { Random generator = new Random(); // inicjalizacja generatora - można zastąpić Math.random() // tablica z naszymi słowami do zgadywania. Skoro mamy 10 prób, to wypadałoby, żeby słowa były krótsze niż 10 liter. String slowa[]={"java","jest","glupia"}; int los=generator.nextInt(slowa.length); // losujemy slowko z naszej tablicy char litery[]=slowa[los].toCharArray(); // zamieniamy wylosowane slowo na tablice znakow char litery2[] = new char[litery.length]; // robimy druga tablice, gdzie bedziemy wpisywać podawane przez usera literki int zgadl=0; // przyda się później System.out.println("Szukasz słowa na "+litery.length+" liter."); for(int i=1;i<=10;i++) { System.out.println("Próba numer "+i); char litera = pobierzlitere(); // każemy userowi podać jakiś znak. // pobierzlitere() zwraca "0" jeśli user popełnił jakiś błąd. // Sprawdźmy, czy udało mu się poprawnie podać literę, czy sierota coś skopała if(litera==0) { // Błąd. Strata szansy. Sorry System.out.println("Podałeś niewłaściwy znak zamiast litery, strata szansy Winnetou"); System.out.println(); } else { // Udało mu się podać prawidłową literkę. Super. int trafil=0; // zmienna pomocnicza. Tu bedziemy liczyc, czy trafil literke for(int j=0;j0) { System.out.println("Udało Ci się Winnetou, trafiłeś."); } else { System.out.println("Nie udało Ci się Winnetou, sorry."); } // litery.equals(litery2) za cholerę nie chce działać... trudno, zrobimy to po swojemu int bingo=0; for(int j=0;j
Najnowsze posty:
- Unboxing: Topowy/TomTomowy Prezent
- Rozpakuj Topowy Prezent - konkurs świąteczny
- Tajemnicze zmiany rozkładu SKM
- #Apple World Problems: co zrobić z iPadem "3"?
- Zakaz palenia papierosów elektronicznych?