import mittBibliotek.*;

class Pinne{
int N,K1,K2,K3;


Pinne(int Navn, int Kol1, int Kol2, int Kol3){
N=Navn;
K1=Kol1;			//overfører kolonneverdiene til variabler
K2=Kol2;
K3=Kol3;
}
public void skrivUt(){
	System.out.println(N+"|---->"+K1+K2+K3);	//skriver ut pinnene med sine tillhørende ringstørrelser
}

public int fraPinne(){					//tester hvilken ringstørrelse du tar fra pinnen og fører den over i main()
int fp;
	if(K3>0)fp=K3;
	else if(K2>0)fp=K2;
	else if(K1>0)fp=K1;
	else fp=0;
return fp;
}
		
public int tilPinne(){					//tester hvilken ringstørrelse som ligger ytterst på pinnen og fører den over i main(
int tp=0;
	if(K3>0)tp=K3;
	else if(K2>0)tp=K2;
	else if(K1>0)tp=K1;
	else tp=10;
return tp;
}
public int byttFra(){					//tar vare på ringstørrelsen som fjernes og flytter den over i main()
int bp=0;
	if(K3>0){bp=K3;
		 K3=0;}
	else if(K2>0){bp=K2;
	              K2=0;}	
	else if(K1>0){bp=K1;
		      K1=0;}
return bp;
}
							//legger til verdien som er fjernet fra den forige pinnen ved første mulighet for plassering
public int byttTil(int Verdi){
	if(K2>0)K3=Verdi;
	else if(K1>0)K2=Verdi;
	else if(K1==0)K1=Verdi;
return 0;
}

public int test(){ 					//teller antall gjennomføringer av "totale programmet"
int sum=0;
int ferdig=0;
sum=(K1+K2+K3);
return sum;
}

}

class Spill{
	public static void main (String[]args){

mittBibliotek.JavabokGUI gui = new mittBibliotek.JavabokGUI("KOMANDOER GITT:");
//gui.show();

Pinne A=new Pinne(1,3,2,1);				//definerer pinnenes start verdi.
Pinne B=new Pinne(2,0,0,0);
Pinne C=new Pinne(3,0,0,0);

A.skrivUt();						//skriver ut førsteutkast
B.skrivUt();			
C.skrivUt();
System.out.println("\n");	

int fP=0;						//main's variabler 
int tP=0;
int fra=0;
int til=0;
int slutt;
int bv=0;
int teller=0;
int tester=0;

do{
tester=0;
do{
do{		
fra= gui.lesHeltall("Fra hvilken rekke???","REKKE :");
if(fra==1) fP=A.fraPinne();					//tester om det er pinne å ta i rekka
if(fra==2) fP=B.fraPinne();
if(fra==3) fP=C.fraPinne();
}
while(fP==0);

til= gui.lesHeltall("Til hvilken rekke???","REKKE :");
if(til==1)tP=A.tilPinne();					//tester om det er lovlig plasering
if(til==2)tP=B.tilPinne();
if(til==3)tP=C.tilPinne();
}
while(fP>=tP);							//tester om pinnene er lovlig plassert i synkende rekkeføle

if(fra==1) bv=A.byttFra();					//utfører ta og fjernefunksjonen av pinne du griper ringen fra
if(fra==2) bv=B.byttFra();
if(fra==3) bv=C.byttFra();

if(til==1) A.byttTil(bv);					//utfører leggtilfunksjonen av ringen fjernet i "tå & fjern funksjonen ovenfor
if(til==2) B.byttTil(bv);
if(til==3) C.byttTil(bv);

A.skrivUt();							//skriver ut førsteutkast
B.skrivUt();			
C.skrivUt();	
System.out.println("\n");

tester+=A.test();
tester+=B.test();
tester+=C.test();
if(tester<6){System.out.println("Det er utført en ulovlig operasjon.\n Programmet avsluttes!!!");
	     break;}						//avslutter programmet hvis det er forsvunne ringer pga feil!

teller++;							//antall trekk utført i spiller blir lagret

slutt=C.test();

}
while(slutt<6);							//tester om alle ringene er kommet over i pinne C

if(tester==6)System.out.println("\n\n Grattis du klarte det på " +teller+ " trekk.");	//liten grattulasjon til vinner hvis det ikke er utført feil!

}
}