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?
