Czesc potrzebuje pomocnej dłoni do uruchomienia programu a raczej gierki, która staram sie stwozyc na zaliczenie semestru (czyli na najblizsza niedziele). Do napisania mam wisielca. Program jest niby juz caly ale niechce mi dzialac tak jak powinien. Na razie wyswietla mi sie okienko z polem tekstowym i z przyciskami alfabetu. W polu tekstowym wyswietla sie losowane z tablicy string haslo, ale nie bardzo moge poradzic sobie
z zastapieniem wylosowanego hasla gwiazdka '*'. No i z dalszym odslanianiem zgadywanych liter.

Wiec jesli jest tu jakas osoba potrafiaca i mogaca mi pomuc to bylbym ogromnie wdzieczny. [green]

Ponizej wstawiam kod programu.

import java.awt.;
import java.awt.event.
;

public class gra_wisielec implements ActionListener
{
final int liter = 26;
final int dop_blad = 11;
final int l_has = 20;

char zgadnij[];          //tablica z gwiazdkami
int stan_gry;            //stan gry (w trakcie, przegrales, wygrales)
int blad=1;                //liczba bledow
int wybrany;             //numer wybranego wyrazu w tablicy stringow
int dlugosc_wybr_wyraz;  //dlugosc wybranego wyrazu
int l_poprawnych;        //liczba poprawnie zgadnietych liter

String hasla []= new String [l_has];//liczba hasel do zgadniecia    
TextField text = new TextField("",20);//pole textowe
Button start = new Button("Nowa Gra");//przycisk rozpoczecia nowej gry
Button alfabet[] = new Button[liter];//przyciski z literami alfabetu
String literki = new String("ABCDEFGHIJKLŁMNOPRSTUWYZŻŹ");//tablica liter alfabetu

public gra_wisielec()//////////////////////////////////////////////////////////////////////////
{
    Frame f = new Frame("wisielec");//ramka
    f.setSize(600,400);//rozmiar ramki
    f.setLayout(new FlowLayout());//rozmieszczenie przyciskow
    f.setBackground(new Color(90, 120, 170));//tło ramki
    Panel p = new Panel();//panel
    text.setEnabled(false);
    *text.setBackground(new Color (252,190,17));*tło pola textowego
    p.add(text);
    f.add(p);

//=========================================================================================
f.add(start);
start.addActionListener(this);
//==========================================================================================
int i=0;
for( i=1; i<=liter; i++)
{
alfabet[i-1] = new Button( literki.substring(i-1,i));//wczytanie przycisków liter alfabetu
f.add(alfabet[i-1]);
alfabet[i-1].addActionListener(this);//nasłuch przuciskow
alfabet[i-1].setEnabled(false);
}
//tablicy stringów - haseł ======================================================================
stan_gry = 0;
hasla[0] = new String ("ARLEKIN"); hasla[1] = new String ("AFRYKA");
hasla[2] = new String ("BAKŁAŻAN"); hasla[3] = new String ("BIZANCJUM");
hasla[4] = new String ("CIASTKO"); hasla[5] = new String ("CESARSTWO");
hasla[6] = new String ("DROGERIA"); hasla[7] = new String ("DYLEMAT");
hasla[8] = new String ("EPISKOPAT"); hasla[9] = new String ("FUNDACJA");
hasla[10] = new String ("HIEROGLIFY"); hasla[11] = new String ("INTERESANT");
hasla[12] = new String ("KORSARZ"); hasla[13] = new String ("KASZTANOWIEC");
hasla[14] = new String ("MOZAJKA"); hasla[15] = new String ("MAMAŁYGA");
hasla[16] = new String ("POŁUDNIE"); hasla[17] = new String ("SITOWIE");
hasla[18] = new String ("WYSYPISKO"); hasla[19] = new String ("ŹDŹBEŁKO");
//=============================================================================================
MyListener lst = new MyListener();
f.addWindowListener(lst);
f.setVisible(true);
}
/METODA PAINT////////////////////////////////////////////////////////////////////////////
public void paint(Graphics g)
{
g.setColor(new Color(55,120,244)); //kolor szubienicy==============
if (blad == 1){
g.fillRect(150,380,160,15);//1
}
if (blad == 2){
g.fillRect(220,100,15,280);//2
}
if (blad == 3){
g.fillRect(220,85,160,15);//3
}
if (blad == 4){
g.drawLine(375,100,375,150);//sznur
}
g.setColor(Color.orange);//kolor ludzika===========================
if (blad == 5){
g.fillOval(350, 150, 50, 50);//głowa
}
if (blad == 6){
g.fillRect(367,200,15,15);//szyja
}
if (blad == 7){
g.fillRoundRect(350,210, 50, 100, 5, 5);//tułów
}
if (blad == 8){
g.fillRect(350,310,15,50);//lewa noga
}
if (blad == 9){
g.fillRect(385,310,15,50);//prawa noga
}
if (blad == 10){
g.fillRect(300,210,50,15);//lewa reka
}
if (blad == 11){
g.fillRect(400,210,50,15);//prawa reka
}
}
/METODA ACTION///////////////////////////////////////////////////////////////////////////
public void actionPerformed(ActionEvent e)
{
int i;
int dop_blad = 0 ;
boolean znaleziona;

    if(e.getSource() == start) //akcja na przycisk Nowa Gra
    {
        Reset();
    }

    for( i=1; i<=liter; i++)//akcja na przyciski alfabetu
        if (e.getSource() == alfabet[i-1]) 
        {
            znaleziona = false;
            //sprawdzanie czy jest w wyrazie i jesli jest to
            znaleziona = Szukanie(literki.toCharArray()[i-1]);

            if (!znaleziona) 
            {
                blad++;
            } 
            alfabet[i-1].setEnabled(false);
        }   

    if(blad >= dop_blad) //sprawdzenie czy przegrana lub wygrana
    {
        for( i=1; i<=liter; i++)
            alfabet[i-1].setEnabled(false);
            stan_gry = 2;
            text.setText(hasla[wybrany]);// pokaż cały niezgadniety wyraz   
    }

    if (l_poprawnych >= dlugosc_wybr_wyraz) 
    {
        for( i=1; i<=liter; i++)
            alfabet[i-1].setEnabled(false);
            stan_gry = 3;
    }
    repaint();
} 
public void repaint() 
{   }

/Metoda Reset() rozpoczyna nowa gre. Kasuje wynik poprzedniej gry i ustawia wartosci poczatkowe,
losuje nowy wyraz do odgadywania i zapisuje go w tablicy zgadnij, w wyrazie odgadywanym zamienia
wszystkie litery na '
' i wykonuje metode Odswierz_pole().*/
public void Reset ()
{
int i;

    for( i=1; i<=liter; i++)//resetowanie wyniku poprzediej gry i wlanczanie przycisków
    {
        alfabet[i-1].setEnabled(true);
        blad = 0;
        l_poprawnych = 0;
        stan_gry = 1;
        wybrany = (int)(Math.random()*l_has);//losowanie wyrazu z tablicy stringow
        dlugosc_wybr_wyraz = hasla[wybrany].length();//zapisywanie do zmiennej dlugosci wyrazu
        //text.setText(hasla[wybrany]);

        //przygotowanie tablicy o dlugosci wybranego wyrazu wypelnionej gwiazdkami
        zgadnij = new char[dlugosc_wybr_wyraz]; 
    }

    for( i=1; i<=dlugosc_wybr_wyraz; i++)
    {   
        zgadnij[i-1]='*';
        Odswierz_pole();
    }
}

//Metoda Szukanie szuka w wyrazie kliknietej przez uzytkownika litery alfabetu.===============
public boolean Szukanie (char litera)
{
boolean wynik = false;
int i;

    for(i=1; i<= dlugosc_wybr_wyraz; i++)
        if (hasla[wybrany].toCharArray()[i-1] == litera) 
        {
            wynik = true;
            zgadnij[i-1] = litera;
            l_poprawnych++;
        }

    Odswierz_pole();
    return wynik;
}

/METODA ODŚWIERZ ////////////////////////////////////////////////////////////////////////
public void Odswierz_pole ()
{
text.setText(new String(zgadnij));
}

public static void main(String[] args)
{
    gra_wisielec g_w = new gra_wisielec();
}

}
//=========================================================================================
class MyListener extends WindowAdapter
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
}