package audiotris;
import java.util.Random;
import musicpachet.Player;
import tastiera.Lettura;
public class Motore {
Giocatore io=new Giocatore(),tu=new Giocatore();
Player base=new Player(),annuncio=new Player(),occupata=new Player(),nonContemplata=new Player(),vincita=new Player(),parita=new Player(),perdita=new Player(),risultato=new Player();
Lettura select=new Lettura();
String[]caselle
={"alto a sinistra",
"alto al centro",
"alto a destra",
"medio a sinistra",
"medio al centro",
"medio a destra",
"basso a sinistra",
"basso al centro",
"basso a destra"}; void opposti()
{
tu.sort=caso.nextInt(2);
if(tu.sort==1) {io.sort=0;}
else {io.sort=1;}
}
{
if(numero==1) {nome="cerchio";}
else {nome="croce";}
return nome;
}
void mossa(Giocatore turno)
{
System.
out.
println(denomina
(turno.
sort,turno.
pedine)+" in "+caselle
[turno.
lancio]); prosegui
=annuncio.
caricamento(denomina
(turno.
sort,turno.
pedine)+" in "+caselle
[turno.
lancio]+".wav"); if(prosegui.equals("Caricamento del brano avvenuto con successo!")){annuncio.riproduzione(1);}
else {System.
out.
println(prosegui
);} caselle[turno.lancio]=denomina(turno.sort,turno.pedine);
}
Giocatore vittoria(Giocatore turno)
{
if(caselle[0].equals(denomina(turno.sort,turno.pedine))&&caselle[1].equals(denomina(turno.sort,turno.pedine))&&caselle[2].equals(denomina(turno.sort,turno.pedine))||caselle[3].equals(denomina(turno.sort,turno.pedine))&&caselle[4].equals(denomina(turno.sort,turno.pedine))&&caselle[5].equals(denomina(turno.sort,turno.pedine))||caselle[6].equals(denomina(turno.sort,turno.pedine))&&caselle[7].equals(denomina(turno.sort,turno.pedine))&&caselle[8].equals(denomina(turno.sort,turno.pedine))) {turno.v=true;}
else if(caselle[0].equals(denomina(turno.sort,turno.pedine))&&caselle[3].equals(denomina(turno.sort,turno.pedine))&&caselle[6].equals(denomina(turno.sort,turno.pedine))||caselle[1].equals(denomina(turno.sort,turno.pedine))&&caselle[4].equals(denomina(turno.sort,turno.pedine))&&caselle[7].equals(denomina(turno.sort,turno.pedine))||caselle[2].equals(denomina(turno.sort,turno.pedine))&&caselle[5].equals(denomina(turno.sort,turno.pedine))&&caselle[8].equals(denomina(turno.sort,turno.pedine))) {turno.v=true;}
else if(caselle[0].equals(denomina(turno.sort,turno.pedine))&&caselle[4].equals(denomina(turno.sort,turno.pedine))&&caselle[8].equals(denomina(turno.sort,turno.pedine))||caselle[2].equals(denomina(turno.sort,turno.pedine))&&caselle[4].equals(denomina(turno.sort,turno.pedine))&&caselle[6].equals(denomina(turno.sort,turno.pedine))) {turno.v=true;}
else {turno.v=false;
}
return turno;
}
void turnoComputer()
{
do
{
io.lancio=caso.nextInt(9);
}
while(caselle[io.lancio].equals("cerchio")||caselle[io.lancio].equals("croce"));
mossa(io);
}
int interazioneUtente()
{
int pulsante;
switch(select.riga("Digita un numero da 1 a 9"))
//Nella versione definitiva intendo sostituire questa riga con switch(select.inputIstantaneo())
{
case"1":{pulsante=1; break;}
case"2":{pulsante=2; break;}
case"3":{pulsante=3; break;}
case"4":{pulsante=4; break;}
case"5":{pulsante=5; break;}
case"6":{pulsante=6; break;}
case"7":{pulsante=7; break;}
case"8":{pulsante=8; break;}
case"9":{pulsante=9; break;}
default:{pulsante=0; break;}
}
return pulsante;
}
void turnoPersona()
{
do
{
tu.lancio=interazioneUtente();
tu.lancio=tu.lancio-1;
if(tu.lancio<0)
{
System.
out.
println("Opzione non contemplata."); prosegui
=nonContemplata.
caricamento("non contemplata.wav"); if(prosegui.equals("Caricamento del brano avvenuto con successo!")){nonContemplata.riproduzione(1);}
else {System.
out.
println(prosegui
);} }
//E con questo ho risolto anche il problema di eventuali immissioni da parte dell'utente di caratteri diversi da numeri da 1 a 9
else if(caselle[tu.lancio].equals("cerchio")||caselle[tu.lancio].equals("croce"))
{
System.
out.
println("Casella già occupata. Provane un'altra"); prosegui
=occupata.
caricamento("occupata.wav"); if(prosegui.equals("Caricamento del brano avvenuto con successo!")){occupata.riproduzione(1);}
else {System.
out.
println(prosegui
);} }
}
while(tu.lancio<0||caselle[tu.lancio].equals("cerchio")||caselle[tu.lancio].equals("croce"));
mossa(tu);
}
void partita()
{
io.v=false;
tu.v=false;
opposti();
int d=9;
while(!vittoria(io).v&&!vittoria(tu).v&&d>0)
{
prosegui=base.caricamento("base.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){base.riproduzione(1000);}
else {System.
out.
println(prosegui
);} if(d<9) {annuncio.ritardo(2);}
turnoComputer();
d--;
if(d>0&&!vittoria(io).v)
{
turnoPersona();
d--;
}
base.chiusura();
}
occupata.chiusura();
nonContemplata.chiusura();
if(vittoria(io).v)
{
prosegui=perdita.caricamento("perdita.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")) {perdita.riproduzione(1);}
else {System.
out.
println(prosegui
);} prosegui=risultato.caricamento("vinto io.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {System.
out.
println(prosegui
);} terminePartita="Ho vinto io!";
}
else if(vittoria(tu).v)
{
prosegui=vincita.caricamento("vittoria.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){vincita.riproduzione(1);}
else {System.
out.
println(prosegui
);} prosegui=risultato.caricamento("vinto tu.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {System.
out.
println(prosegui
);} terminePartita="Hai vinto tu!";
}
else
{
prosegui=parita.caricamento("parità.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")) {parita.riproduzione(1);}
else {System.
out.
println(prosegui
);} prosegui=risultato.caricamento("finisce in pari.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {System.
out.
println(prosegui
);} terminePartita="Sono esaurite le caselle disponibili! Finisce in pari!";
}
prosegui=select.finestra(terminePartita+" Digita \"esci\" per uscire dal Gioco. O qualsiasi altro valore, anche chiudere questa finestra senza scrivere, per iniziare una nuova partita");
if(!prosegui.toLowerCase().equals("esci"))
{
caselle[0]="alto a sinistra";
caselle[1]="alto al centro";
caselle[2]="alto a destra";
caselle[3]="medio a sinistra";
caselle[4]="medio al centro";
caselle[5]="medio a destra";
caselle[6]="basso a sinistra";
caselle[7]="basso al centro";
caselle[8]="basso a destra";
}
vincita.chiusura();
parita.chiusura();
perdita.chiusura();
annuncio.chiusura();
risultato.chiusura();
}
}