Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Tarok
- {
- public static void main(String[] args)
- {
- System.out.print("Maksimalno stevilo partij: ");
- int n = BranjePodatkov.preberiInt();
- while(n<=0)
- {
- System.out.print("Stevilo partij mora biti pozitivno celo stevilo. Ponovi vnos: ");
- n = BranjePodatkov.preberiInt();
- }
- System.out.print("Zgornja meja stevila tock: ");
- int maxTocke = BranjePodatkov.preberiInt();
- while(maxTocke<=0)
- {
- System.out.print("Stevilo tock mora biti pozitivno celo stevilo. Ponovi vnos: ");
- maxTocke = BranjePodatkov.preberiInt();
- }
- System.out.print("Verjetnost zmage v posamezni partiji: ");
- double verjetnostZmage = BranjePodatkov.preberiDouble();
- while((verjetnostZmage<0.0) || (verjetnostZmage>1.0))
- {
- System.out.print("Verjetnost zmage mora biti med 0.0 in 1.0. Ponovi vnos: ");
- verjetnostZmage = BranjePodatkov.preberiDouble();
- }
- char[] akterji = new char[2];
- int[] tockeIgralca = new int[4];
- for(int i=0;i<4;i++) tockeIgralca[i] = 0; //A=0,B=1,C=2,D=3
- boolean tockePresezene = false; //Za tocke v zanki, da program ve, da ne izpise nic izven zanke ce je prislo do presezka tock pred koncem partij
- for(int stPartij = 1; stPartij <= n; stPartij++)
- {
- System.out.print("["+stPartij+"]");
- int igra = nakljucnaIgra(); //Prvo dolocimo igro
- if((igra==1)||(igra==2)||(igra==3)) //Nato dolocimo akterje glede na nakljucno izbrano igro
- {
- akterji[0] = nakljucniAkter(akterji[0]);
- akterji[1] = nakljucniAkter(akterji[1]);
- while(akterji[1] == akterji[0]) akterji[1] = nakljucniAkter(akterji[1]); //Za vsak slucaj, ce sta akterja enaka
- System.out.print(akterji[0]+""+akterji[1]+", ");
- }
- else
- {
- akterji[0] = nakljucniAkter(akterji[0]);
- System.out.print(akterji[0]+", ");
- }
- boolean rezultat = nakljucenRezultat(verjetnostZmage); //Nakljucno dolocimo, ali je bila igra dobljena ali izgubljena
- int razlika = nakljucnaRazlika(); //Nakljucno dolocimo razliko
- int vrednostIgre = dolociVrednostIgre(igra);
- if(rezultat==true)
- {
- if((igra==1)||(igra==2)||(igra==3))
- {
- switch(akterji[0])
- {
- case 'A':
- tockeIgralca[0] += razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] += razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] += razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] += razlika+vrednostIgre;
- break;
- }
- switch(akterji[1])
- {
- case 'A':
- tockeIgralca[0] += razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] += razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] += razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] += razlika+vrednostIgre;
- break;
- }
- }
- else
- {
- switch(akterji[0])
- {
- case 'A':
- tockeIgralca[0] += razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] += razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] += razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] += razlika+vrednostIgre;
- break;
- }
- }
- }
- else
- {
- if((igra==1)||(igra==2)||(igra==3))
- {
- switch(akterji[0])
- {
- case 'A':
- tockeIgralca[0] -= razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] -= razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] -= razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] -= razlika+vrednostIgre;
- break;
- }
- switch(akterji[1])
- {
- case 'A':
- tockeIgralca[0] -= razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] -= razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] -= razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] -= razlika+vrednostIgre;
- break;
- }
- }
- else
- {
- switch(akterji[0])
- {
- case 'A':
- tockeIgralca[0] -= razlika+vrednostIgre;
- break;
- case 'B':
- tockeIgralca[1] -= razlika+vrednostIgre;
- break;
- case 'C':
- tockeIgralca[2] -= razlika+vrednostIgre;
- break;
- case 'D':
- tockeIgralca[3] -= razlika+vrednostIgre;
- break;
- }
- }
- }
- System.out.println(" Rez: "+tockeIgralca[0]+" "+tockeIgralca[1]+" "+tockeIgralca[2]+" "+tockeIgralca[3]+" ");
- System.out.println();
- if((tockeIgralca[0]>=maxTocke) || (tockeIgralca[1]>=maxTocke) || (tockeIgralca[2]>=maxTocke) || (tockeIgralca[3]>=maxTocke)) break;
- }
- int tockeZmagovalca = 0;
- for(int i=0;i<4;i++)
- {
- if((tockeZmagovalca<=tockeIgralca[i]) && (tockeIgralca[i]>=0)) tockeZmagovalca = tockeIgralca[i]; //IMPORTANT NOTE: Za zdaj dela samo za pozitivna stevila!
- }
- char zmagovalec = '/';
- if(tockeZmagovalca==tockeIgralca[0]) zmagovalec = 'A';
- else if(tockeZmagovalca==tockeIgralca[1]) zmagovalec = 'B';
- else if(tockeZmagovalca==tockeIgralca[2]) zmagovalec = 'C';
- else if(tockeZmagovalca==tockeIgralca[3]) zmagovalec = 'D';
- System.out.println("Zmagal je igralec "+zmagovalec+", ki je zbral "+tockeZmagovalca+" tock.");
- }
- private static int nakljucnaIgra()
- {
- int r = (int)(Math.random()*6)+1;
- switch(r)
- {
- case 1:
- System.out.print(" Ena, ");
- break;
- case 2:
- System.out.print(" Dve, ");
- break;
- case 3:
- System.out.print(" Tri, ");
- break;
- case 4:
- System.out.print(" Solo Ena, ");
- break;
- case 5:
- System.out.print(" Solo Dve, ");
- break;
- case 6:
- System.out.print(" Solo Tri, ");
- break;
- }
- return r;
- }
- private static char nakljucniAkter(char akter)
- {
- int r = (int)(Math.random()*4)+1;
- switch(r)
- {
- case 1:
- akter = 'A';
- break;
- case 2:
- akter = 'B';
- break;
- case 3:
- akter = 'C';
- break;
- case 4:
- akter = 'D';
- break;
- }
- return akter;
- }
- private static boolean nakljucenRezultat(double verjetnost)
- {
- double r = Math.random();
- if(r<=verjetnost)
- {
- System.out.print("+");
- return true;
- }
- else
- {
- System.out.print("-");
- return false;
- }
- }
- private static int nakljucnaRazlika()
- {
- int r = (int)(Math.random()*8);
- int razlika = r*5;
- System.out.println(razlika);
- return razlika;
- }
- private static int dolociVrednostIgre(int tipIgre)
- {
- int vrednost=0;
- switch(tipIgre)
- {
- case 1:
- vrednost = 30;
- break;
- case 2:
- vrednost = 20;
- break;
- case 3:
- vrednost = 10;
- break;
- case 4:
- vrednost = 60;
- break;
- case 5:
- vrednost = 50;
- break;
- case 6:
- vrednost = 40;
- break;
- }
- return vrednost;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement