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					
Robisz zakupy w internecie?
Pomagaj ZA DARMO przy okazji
4000 organizacji społecznych i ponad 1000 sklepów