# Shkenca > Informatikë dhe Internet > Arti i programimit >  Java - Lojë me zare

## Nocturnal

Me falni po te jete hapur njehere kjo teme! 
Kam nje detyre te vogel ne Java qe ka te beje me klasat.  Duhet te ndertoj vete nje klase te thjeshte.  Tani programi eshte nje simulim zarash.  Nese e dini lojen Craps.  Per logjiken se kam problem po puna eshte te ndertoj klasen.
p.sh.

  public class Zar {

	public int roll (int roll1, int roll2){
		 roll1=Math.random()*6;
		 roll2=Math.random()*6;
		 return roll1;
		 return roll2;
	}
}

Duhet te ngjaje pak a shume si kjo.  Te tregoje dy numra sikur jane hedhur 2 zara.  Pastaj keto numra te perdoren ne programin kryesor ku eshte gjithe logjika. Programin duhet ta shkruaj ne Java 1.5 po s'po gjej as ndonje material dhe ai libri qe kam i kalon shume perciptash keto gjerat.
Nese ndonje ka ndonje ide, le ta hedhe.
Shendet

----------


## edspace

Më poshtë ke një shëmbull që i hedh zaret 5 herë dhe printon rezultatin e tyre. 
Përmirësoje vetë kodin sipas rregullave të Javas se dhe unë nuk e kam përdorur shumë. 

*Loja.java*


```

public class Loja {
    
    private Zare zare1 = new Zare();
    private Zare zare2 = new Zare();
    
    public static void main(String[] args) throws Exception {
        Loja loja = new Loja();
        loja.hidhZaret();
        loja.hidhZaret();
        loja.hidhZaret();
        loja.hidhZaret();
        loja.hidhZaret();
    }
        
    public void hidhZaret() {
        zare1.hidh();
        zare2.hidh();
        System.out.print(zare1.merr() + ", " + zare2.merr() + "\n");
    }
    
} 



```


*Zare.java*


```

public class Zare {
    
    public void hidh() {
        numri = (int)(6*Math.random() + 1);  // nga 1 deri ne 6
    }
    
    public int merr() {
        return numri;
    }

    private int numri;
    
} 



```

*Rezultati*
6, 2
4, 3
3, 6
1, 1
2, 3

----------


## Nocturnal

Faleminderit.  Vetem pak modifikime do t'i bej dhe eshte e mbaruar.

----------


## edspace

Tek main() hiqe "throws exception" se nuk duhet. Po përdorja një funksion që kishte exceptions por pastaj e fshiva dhe harrova të ndryshoja main.

----------


## Nocturnal

Pershendetje. Po u bie edhe njehere me qafe.  Loja eshte me zara po tani pak me e komplikuar sepse duhet te llogaritesh nje probabilitet. Po e postoj pyetjen sic ma kane dhene.  Do me merrte ca kohe ta perktheja ne shqip, keshtu qe po e le ne anglisht:

WeightedDie.

Part A. Create a new class named WeightedDie.

Add two methods to the class Die to form a new
WeightedDie class.

The signatures and descriptions of the two new methods
are given below.

// Input: an int in the range 1-6 and a double in the
// range [0-1)
// Set a probability in the range [0-1) that a roll
// of the die that results in a value _n_ will trigger
// a 'do over.' For example, if the rejectProbability
// of the number 3 is 0.05, then approximately 5% of
// 3's result in a 'do over.' A 'do over' is second fair
// roll of the die, resulting in a number in the range
// 1-6. The rejectProbability may be set separately for
// each value in the range 1-6 for each Die object.

void setRejectProbability(int side, double rejectProb)



// Input: an int in the range 1-6
// Output: the rejectProbability of the given input
// value for the given object
double getRejectProbability(int side)



Part B. Revise the playGame() method of Craps so that it has the following
signature:

public static boolean playGame(WeightedDie a,
WeightedDie b)

That is, playGame() is passed as parameters two
WeightedDie's that it uses to play a game of Craps.
playGame() returns the outcome of the game: true for a
user win; false for a user loss.



 A sample output is below.

100,000 games with fair dice a and b
Side  a rejectProb  b rejectProb    
1              0.0          0.0               //kuptohet qe 0.0 jane nen a rejectProb dhe 
2              0.0          0.0                  b rejectProb
3              0.0          0.0
4              0.0          0.0
5              0.0          0.0
6              0.0          0.0

Won 49174   Lost 50826

100,000 games with biased dice x and y
Side  x rejectProb  y rejectProb
1              0.0          0.0
2              0.0          0.0
3              0.0          0.0
4              0.0          0.0
5              0.0          0.0
6              0.5          0.5

Won 49079   Lost 50921


Po mbashkangjis edhe 80% te codit qe e kam bere nje detyre me pare.  Po ketij codi duhet t'i behen modifikimet.



```
 

public class Die {
    
    // simulate the roll of a fair six-sided die (1-6)
    public int roll(){ 
        return (int)( (Math.random()* 6) + 1);
    }
    
    /* 
     * Simulate the roll of a biased six-sided die (1-6).
     * Reduce probability of a 6 from 10/60 to 9/60, with
     * equal probability of values from 1-5
     */
    public int rollWeighted(){
        // pick a number, 1-6 with equal probability
        int rtnVal = roll();
        
        // but with probability 1/10 reject a 6 for a value 
        // in range 1-5
        if (rtnVal == 6){
             if (Math.random() < 0.1){
                 rtnVal = (int)((Math.random()* 5) + 1);
            }
        }
        return rtnVal;
    }
}
```



```
import java.util.*;
//import java.io.*;

public class Craps {

    public static void main(String[] args){
        final int MAX_GAMES = 25;

        boolean[] wonLostRecord = new boolean[MAX_GAMES]; // t = won; f = lost
        int game = 0;    // count the games played, beginning with 0
        Scanner sc = new Scanner(System.in);
        
        // play up to MAX_GAMES rounds of Craps, at user discretion
        for (String answer = "y"; answer.equals("y") && game < MAX_GAMES; game++){
            wonLostRecord[game] = playGame();    // play game and store the outcome
            System.out.print("Play again (y/n)? "); 
            answer = sc.next();
            answer = answer.substring(0,1).toLowerCase();
            System.out.println();
        }
        
        // print out the won/lost record
        System.out.println("Won/Lost Record:");
        for (int i = 0; i < game; ++i){
            if (wonLostRecord[i]){
                System.out.print("W");
            }
            else {
                System.out.print("L");
            }
        }
    }
    
    public static boolean playGame() {
        Die a = new Die();
        Die b = new Die();
        int c= b.rollWeighted();
// first roll of the dice
        int rollA = a.roll();
        int rollB = b.roll();
        int rollAB = rollA + rollB;
        System.out.println("You rolled " + rollA + " + " + rollB + " = " + rollAB);
        System.out.println(c);
        // first roll -- game over on 2,3,7,11,12
        switch(rollAB){
            case 2:
            case 3:
            case 12: {
                System.out.println("Craps. You lose!");
                System.out.println();
                return false;
            }
            case 7:
            case 11:{
                System.out.println("Natural. You win!");
                return true;
            }
            
            // first roll cases 4,5,6,8,9,10 -- keep rollin' til point or 7
            default:{
                int point = rollAB;
                System.out.println("Your point is " + point);
                // second and subsequent rolls of the dice
                do {
                    rollA = a.roll();
                    rollB = b.roll();
                    rollAB = rollA + rollB;
                    System.out.println("You rolled " + rollA + " + " + rollB + " = " + rollAB);
                    
                    if (rollAB == point){
                        System.out.println("Got your point. You win!");
                        System.out.println();
                        return true;
                    }
                    else if (rollAB == 7){
                        System.out.println("You lose.");
                        System.out.println();
                        return false;
                    }
                } while (true);
            }
        }
    }
}
```

Gjithashtu na thane qe si udhezim mund te jete public int rollWeighted() tek klasa Die.  
Po te kete mundesi ndonje udhezim se nuk e kam idene cfare kerkon dhe per te na e shpjeguar harruan fare ne shkolle. 
Flm

----------


## edspace

Me aq sa kuptova, profesori të kërkon që probabiliteti i numrave 1-6 të zareve të mos jetë i barabartë por të mund të kontrollohet duke caktuar probabilitetin e përjashtimit (rejectProbability). Pra, zar me hile.

Psh: E zëmë se kemi një zare pa hile dhe një zare me hile. Probabiliteti që të bier numri 1 në zaren pa hile është 1/6 ose 0.167. Për zaren me hile vendosim që probaliteti i përjashtimit është 1.0 ose 100%.

Do hedhim në fillim zarin me hile. Nëse bie 1, e përjashtojmë atë zare dhe hedhim zarin pa hile. Sa është probabiliteti që rezultati është 1?

Probaliteti(rezultati=1) = Probabilitetin(Zari1 = 1) * Probabliteti(Zari2 = 1)
Probaliteti(rezultati=1) = (1/6) * (1/6)
Probaliteti(rezultati=1) = 1/36 = 0.028

Kjo ishte kërkesa. Më poshtë gjen edhe programin e modifikuar që të lejon të caktosh probalitetin e përjashtimit për çdo numër të zares. Krijojmë një matricë me 6 elementë për të ruajtur probabilitetin e përjashtimit dhe si fillim i caktojmë probalitetin 0, dmth nuk përjashtojmë asnjë numër. 

Pastaj duke përdorur metodën setRejectProbabality(N, P), caktojmë probalitetin e përjashtimit P për numrin N të zarit. Duke vazhduar me shembullin më lart, për të përjashtuar numrin 1, thërrasim metodën setRejectProbability(1, 1.0). Për të përjashtuar vetëm 50% të hedhjeve të numrit 5: setRejectProbability(5, 0.5). 

Kur hedhim zaren, marrim një numër të rastësishëm nga kompjuteri (math.random()) dhe nqs ky numër është më i vogël ose i barabartë me probabilitetin që kemi në matricë, atëherë hedhim zaren pa hile. 

Ja kodi në Java që bën këto që shpjegova më lart:



```

public class WeightedDie {
    
    private double[] rejectProb = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

    // simulate the roll of a fair six-sided die (1-6)
    public int rollFair(){ 
        return (int)( (Math.random()* 6) + 1);
    }
    
    /* 
     * Simulate the roll of a biased six-sided die (1-6).
     * Reduce probability of a 6 from 10/60 to 9/60, with
     * equal probability of values from 1-5
     */
    public int rollWeighted(){
        // pick a number, 1-6 with equal probability
        int rtnVal = rollFair();
        
        // but with probability 1/10 reject a 6 for a value 
        // in range 1-5

        if (Math.random() <= this.rejectProb[rtnVal - 1]){
             rtnVal = rollFair();
        }

        return rtnVal;
    }

    // Input: an int in the range 1-6 and a double in the
    // range [0-1)

    void setRejectProbability(int side, double rejectProb){
        if( rejectProb >= 0.0f && rejectProb <= 1.0f )
            this.rejectProb[side - 1] = rejectProb;
    }

    // Input: an int in the range 1-6
    // Output: the rejectProbability of the given input
    // value for the given object
    double getRejectProbability(int side){
        return this.rejectProb[side - 1];
    }

} 



```


Për të parë nëse zari me hile punon siç duhet, e hedhim atë 100.000 herë, në fillim me probabilitetin e përjashtimeve (0, 0, 0, 0, 0, 0) dhe pastaj me probabilitetin e përjashtimeve (1.0, 0.7, 0.4, 0, 0, 0). Dmth përjashtojmë 100% të njëshave, 70% të dyshave dhe 40% të treshave. 

Ja kodi në Java që e bën këtë gjë. 



```

public class Prova {

    public static void main(String[] args){
        
        WeightedDie zare = new WeightedDie();
        int[] statistikat = {0, 0, 0, 0, 0, 0};

        System.out.println("Zare te paanshme (100.000 hedhje)");

        for (int i = 0; i < 100000; ++i){   // hedhim zaret
            statistikat[zare.rollWeighted() - 1]++;  // ruajme numrin
        }

        for (int i = 0; i < 6; ++i){  // nxjerrim probabilitetin
            System.out.println("P(" + (i + 1) + ") = " + (statistikat[i] / 100000.0f) );
        }

        for (int i = 0; i < 6; ++i){  // shuajme statistikat e zareve te paanshme
            statistikat[i] = 0;
        }

        System.out.println("Zare te anshme (100.000 hedhje)");
        zare.setRejectProbability(1, 1.0); // ndryshojme probalitetin e perjashtimeve
        zare.setRejectProbability(2, 0.7); // per 1, 2, 3
        zare.setRejectProbability(3, 0.4);

        for (int i = 0; i < 100000; ++i){ // hedhim zaret
            statistikat[zare.rollWeighted() - 1]++;
        }

        for (int i = 0; i < 6; ++i){ // nxjerrim probabilitetin
            System.out.println("P(" + (i + 1) + ") = " + (statistikat[i] / 100000.0f) );
        }
    }
} 



```


Rezultati në ekran:



```
C:\>java Prova
Zare pa hile (100.000 hedhje)
P(1) = 0.16753
P(2) = 0.16355
P(3) = 0.16756
P(4) = 0.16679
P(5) = 0.16682
P(6) = 0.16775
Zare me hile (100.000 hedhje)
P(1) = 0.05874
P(2) = 0.10703
P(3) = 0.15818
P(4) = 0.22656
P(5) = 0.22412
P(6) = 0.22537
```

Rezultatet tregojnë se probabiliteti i përjashtimit ka patur efekt në probabilitetin e 1, 2, 3. 

P(rezultati=1) = P(1 perjashtuar)*P(zari1=1)*P(zari2=1) + P(2 perjashtuar)*P(zari1=2)*P(zari2=1) + P(perjashtuar 3)*P(zari1=3)*P(zari2=1)
P(rezultati=1) = (1)*(1/6)*(1/6) + (0.7)*(1/6)*(1/6) + (0.4)*(1/6)*(1/6)
P(rezultati=1) = (1/36)*(1 + 0.7 + 0.4)
P(rezultati=1) = (0.278)*(2.1)
P(rezultati=1) = 0.5838

0.5838 ~= 0.5874

Pra, programi punon siç duhet. Në të njëjtën mënyrë mund të llogaritësh edhe P(2), P(3), P(...), P(6).

Kodin më lart e gjen edhe në skedarët e bashkëngjitur më poshtë.

----------


## Nocturnal

Shume flm per kohen Ed.
Edhe mua po me merr shume kohe ta kuptoj si problem prandaj edhe po has veshtiresi.  Ne ushtrim jepet nje shembull si output (postuar me pare).  Dmth per fair die,per hedhjet pa hile, ne duhet te marrim prob. 0.0 sepse nuk ka reject probability eshte gjithmone fair ose nuk ka 'do over', e vetmja gje eshte numerimi qe ne duhet te bejme i won dhe lost ne 100000 loja.  Ndersa Kur hasim reject Prob. atehere duhet te bejme roll again dhe kjo do ta ndryshoje numrin e won dhe lost. Outputi e tregon me mire.  Te pakten keshtu e kuptoj une. Nese e kupton me mire nga output atehere po pati mundesi hidh ndonje ide.
Flm

----------


## edspace

Më poshtë ke kodin për pjesën B të detyrës. 

Supozohet se PlayGame() jep rezultatin e saktë për fitoret dhe humbjet. Unë nuk i di rregullat e lojës, prandaj shikoje nqs punon siç duhet. 

Përdora të njëjtat probabilitete që ka përdorur edhe profesori yt në shembullin e dhënë dhe rezultatet janë të përafërta. Nuk besoj të kesh paqartësira por nqs ke, këtu e kemi forumin. 

Herën tjetër shkruaj kërkesën në anglisht por përktheje edhe në shqip. Nuk është e thënë ta përkthesh fjalë për fjalë, por një përshkrim të përgjithshëm që ta kuptojnë edhe ata që nuk dinë anglisht. 



```

// Craps.java

public class Craps {

    public static void main(String[] args){

        final int NUM_LOJRAVE = 100000;
        int fitore = 0;
        int humbje = 0;

        WeightedDie zareA = new WeightedDie(); // pa hile
        WeightedDie zareB = new WeightedDie(); // pa hile
        
        // =================== Loja me zare pa hile =========================

        System.out.println("100.000 lojra me zaret pa hile A dhe B");
        System.out.println("Numri\tZari A\tZari B");

        for (int i = 1; i <= 6; i++)
            System.out.println(i + "\t" + zareA.getRejectProbability(i) 
                    + "\t" + zareB.getRejectProbability(i));

        for (int i = 0; i < NUM_LOJRAVE; i++)
            if (playGame(zareA, zareB))
                fitore++;
            else
                humbje++;
        
        System.out.println("Fitore: " + fitore + "\tHumbje: " + humbje);
        System.out.println();


        // =================== Loja me zare me hile =========================

        System.out.println("100.000 lojra me zaret me hile X dhe Y");
        System.out.println("Numri\tZari X\tZari Y");

        // ndryshojme probabilitetin e perjashtimit per numrin 6 
        zareA.setRejectProbability(6, 0.5);     // ne zarin A
        zareB.setRejectProbability(6, 0.5);     // ne zarin B

        fitore = 0;
        humbje = 0;

        for (int i = 1; i <= 6 ; i++)
            System.out.println(i + "\t" + zareA.getRejectProbability(i) 
                    + "\t" + zareB.getRejectProbability(i));

        for (int i = 0; i < NUM_LOJRAVE; i++)
            if (playGame(zareA, zareB))
                fitore++;
            else
                humbje++;
        
        System.out.println("Fitore: " + fitore + "\tHumbje: " + humbje);
        System.out.println();

    }
    
    public static boolean playGame(WeightedDie a, WeightedDie b) {
        int c= b.rollWeighted();
        // first roll of the dice
        int rollA = a.rollWeighted();
        int rollB = b.rollWeighted();
        int rollAB = rollA + rollB;

        // first roll -- game over on 2,3,7,11,12
        switch(rollAB){
            case 2:
            case 3:
            case 12:
                return false;
            case 7:
            case 11:
                return true;

            // first roll cases 4,5,6,8,9,10 -- keep rollin' til point or 7
            default:{
                int point = rollAB;

                // second and subsequent rolls of the dice
                do {
                    rollA = a.rollWeighted();
                    rollB = b.rollWeighted();
                    rollAB = rollA + rollB;
                    
                    if (rollAB == point)
                        return true;
                    else if (rollAB == 7)
                        return false;

                } while (true);
            }
        }
    }
} 



```

Ja dhe rezultati në ekran:



```
C:\>java Craps
100.000 lojra me zaret pa hile A dhe B
Numri   Zari A  Zari B
1       0.0     0.0
2       0.0     0.0
3       0.0     0.0
4       0.0     0.0
5       0.0     0.0
6       0.0     0.0
Fitore: 49423   Humbje: 50577

100.000 lojra me zaret me hile X dhe Y
Numri   Zari X  Zari Y
1       0.0     0.0
2       0.0     0.0
3       0.0     0.0
4       0.0     0.0
5       0.0     0.0
6       0.5     0.5
Fitore: 49053   Humbje: 50947
```


Në skedarin e bashkëngjitur gjen kodin për pjesën e parë (WeightedDie) dhe për pjesën e dytë (Craps).

----------


## Nocturnal

Edspace, ti duhet te marresh urdherin Naim Frasheri i klasit te pare nga forumi   :Lulja3:    Me bere shume pune. C'eshte e verteta programi duhet te ishte me i thelle po ai profesori na e pranoi.  Keshtu qe flm shume.  Per sa i perket te shkrojtures anglisht s'eshte problem do mundohem t'i sqaroj ne shqip ato problemat.  Tani ne fakt edhe nje detyre kam dhe mbaron puna.  Po se bera dot do hedh nje anonime ketej   :buzeqeshje:  
Shendet dhe $

----------


## Nocturnal

Nje gje e vogel fare:

Tek programi i mesiperm (dmth ai qe ka shkruar Edspace) duhet te vendos nje 
int games=stdin.nextInt();
Try{

}
Catch(Exceptions e)
System.err.println("Numer shume i madh!");
System.exit(0);
}

Dmth kur perdoruesi te jape nje numer shume te madh (sa loja do te luaje dmth games do jete ai numri), programi te nxjerre : Numer shume i madh!
Problemi eshte cfare duhet te vendos tek try block?  int games=stdin.nextInt();
se vendos dot se variabla games nuk njihet nga programi me poshte!
Shendet

----------


## edspace

Më poshtë ke kodin që hedh dhe kap përjashtimin (exception) për numrin e gabuar. Vër re ndryshimet në kod: 

1. Krijojmë një klasë të re për përjashtimin. Klasa është bosh sepse trashëgon nga përjashtimi standard i Java-s. 

2. Ndryshojmë metodën ku do hidhet/kapet përjashtimi duke shtuar "throws emri_i_përjashtimit" në krye të metodës. 

3. Hedhim përjashtimin në bllokun e provës (try) me kodin:
throw new emri_i_perjashtimit();

4. Në bllokun e kapjes (catch) marrim masat për zbutjen e përjashtimit. 




```

// Krijojme nje perjashtim te ri
public class NumerGabuar extends Exception {}

public class Craps { 

    // ndryshojme main qe te hedhe perjashtimin
    // throws NumerGabuar
    public static void main(String[] args) throws NumerGabuar { 

        //...

        int nrLejuar = 5000;
        int games=stdin.nextInt();

        try{
            if(games > nrLejuar){
                // hedhim perjashtimin
                throw new NumerGabuar();
            }
        }        
        catch(NumerGabuar e) // kapim perjashtimin 
            System.err.println("Numer shume i madh!");
            System.exit(0);
        }

        //... 



```

----------


## Nocturnal

Faleminderit Edspace; e provova te kodi po nuk e di sepse me jepte probleme.
Po e sqaroj kerkesen e detyres.  Detyra bazohet te kodi qe ke shkruar pervec ndryshimeve te meposhtme:

1) Numri i lojave te specifikohet nga perdoruesi (Gje qe nuk e kam problem)
2) Nese perdoruesi te jape numer negativ lojash, atehere te sqarohet qe lojat nuk mund te jene negative (s'eshte problem se perdor nje if....else bllok)
3) Nese numri eshte i madh, te kapet gabimi dhe te dale ne ekran nje shenim , psh "Numer shume i madh" (Nuk ka rendesi te krijosh nje klase tjeter, supozohet sikur perdoruesi do jape nje numer psh, 1000000000000, gje qe vete Java e ka si gabim, por ne duhet te shtojme ate mesazhin [kete e kam problem])
4) Math.random()* 7) + 1; (qellimisht e vura 7 qe ndonjehere te gjenerohet numri 7) Ne kete moment Java do e kape Gabimin dhe ne do japim nje shenim, psh "Zar me 7 faqe nuk ka!"  

Perdor try....catch po me jepen gabime ose ekzekutohet gjysma e kodit.....ose gjithmone gjenerohet 7 dhe del mesazhi....
Rrofsh per ndihmen

----------


## edspace

Shiko kodin më poshtë si shembull për ato që kërkove. 



```

import java.util.*;

// Krijojme nje perjashtim te ri 
class NumerMadh extends Exception {} 
class NumerNegativ extends Exception {} 

public class Craps { 

    // ndryshojme main qe te hedhe perjashtimin 
    // throws NumerGabuar 
    public static void main(String[] args) throws NumerGabuar { 

        final int NUM_LOJRAVE = 100000;
        Scanner stdin = new Scanner(System.in); 

        System.out.println("Sa lojra do te luash?");
        int lojrat = stdin.nextInt(); 

        try{ 
            if(lojrat > NUM_LOJRAVE){ 
                // hedhim perjashtimin 
                throw new NumerMadh(); 
            }
            else if(lojrat <= 0){
                throw new NumerNegativ();
            }
        }         
        catch(NumerMadh e){ // kapim perjashtimin 
            System.err.println("Numer shume i madh!"); 
            System.exit(0); 
        } 
        catch(NumerNegativ e){
            System.err.println("Numri i lojrave duhet te jete pozitiv."); 
            System.exit(0); 
        }
    }
} 



```

----------


## edspace

Nuk e kuptoj ku është problemi. Gabimet mund t'i kapësh me kushtet IF njësoj siç i përdor edhe për gjërat e tjera. Mënyra që rekomandohet është duke përdorur përjashtimet(exceptions). Në këtë mënyrë mund të përdorësh blloqet provo-kap (try-catch). 

Në bllokun e provës vendosim kod që mund të ketë gabime dhe që hedh përjashtimet ndërsa në bllokun e kapjes i kapim këto përjashtime dhe ndjekim hapat e duhur. 

Në shembullin më lart, në bllokun e provës kontrollojmë nëse numri i përdoruesit është më i madh se numri i lejuar i lojrave, ose më i vogël apo i barabartë me zero. Nëse kushtet janë të sakta, hedhim përjashtimin përkatës. Blloku i kapjes e kupton që kodi i provës pati gabime dhe ekzekuton hapat përkatëse për çdo gabim.

----------


## Nocturnal

Faleminderit Edspace.
Nuk kishte nevoje per aq nderlikime, e mbarova punen duke perdorur nja dy if...else dhe try...catch dhe e zgjidha problemin.  Megjithate flm per mundin.

----------

