package audiotris;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import musicpachet.Player;
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();
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"}; char digitato=' ';
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)
{
select.append(denomina(turno.sort,turno.pedine)+" in "+caselle[turno.lancio]+"\n"); 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 {select.append(prosegui+"\n");}
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(digitato)
{
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)
{
if(digitato!=' ')
{
select.append("Opzione non contemplata.\n"); prosegui=nonContemplata.caricamento("non contemplata.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){nonContemplata.riproduzione(1);}
else {select.append(prosegui+"\n");}
digitato=' ';
}
}
else if(caselle[tu.lancio].equals("cerchio")||caselle[tu.lancio].equals("croce"))
{
select.append("Casella già occupata. Provane un'altra\n"); prosegui=occupata.caricamento("occupata.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){occupata.riproduzione(1);}
else {select.append(prosegui+"\n");}
digitato=' ';
}
}
while(tu.lancio<0||caselle[tu.lancio].equals("cerchio")||caselle[tu.lancio].equals("croce"));
mossa(tu);
digitato=' ';
//ogni volta torna al valore iniziale che è uno spazio che non prevede nessuna azione. In questo modo rendo un input per sua natura non bloccante bloccante
}
void partita()
{
caselliera.setSize(400, 300);
caselliera.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);select.setEditable(false);
select.append("Digita un numero da 1 a 9\n");
@Override
}
@Override
}
@Override
digitato=e.getKeyChar();
}
});
caselliera.setVisible(true);
for(;;)
{
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 {select.append(prosegui+"\n");}
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 {select.append(prosegui+"\n");}
prosegui=risultato.caricamento("vinto io.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {select.append(prosegui+"\n");}
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 {select.append(prosegui+"\n");}
prosegui=risultato.caricamento("vinto tu.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {select.append(prosegui+"\n");}
terminePartita="Hai vinto tu!";
}
else
{
prosegui=parita.caricamento("parità.wav");
if(prosegui.equals("Caricamento del brano avvenuto con successo!")) {parita.riproduzione(1);}
else {select.append(prosegui+"\n");}
prosegui=risultato.caricamento("finisce in pari.wav");
risultato.ritardo(2);
if(prosegui.equals("Caricamento del brano avvenuto con successo!")){risultato.riproduzione(1);}
else {select.append(prosegui+"\n");}
terminePartita="Sono esaurite le caselle disponibili! Finisce in pari!";
}
JOptionPane.
showMessageDialog(null,terminePartita
+" Chiudi questa finestra e inizia una nuova partita. Oppure chiudi la console di gioco per uscire"); 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();
risultato.chiusura();
annuncio.chiusura();
}
}
}