/* ************************************************************************** AUTORE: Simona Pappalardo MAIL: pacana@libero.it ***************************************************************************** */ import java.lang.*; import java.awt.*; public class Tetrisgame { static Tabella[][] griglia; static boolean rigaPiena; int nr_pezzo,maxX,maxY; Base pezzo; int[] color; boolean gameOver = false,fine = false; static boolean primo=true; Tetrisgame(int maxX,int maxY) { this.maxX = maxX; this.maxY = maxY; primo = true; rigaPiena = false; color = new int[3]; //inizializzazione della griglia tutta vuota griglia = new Tabella[maxX+1][maxY+1]; for (int i=0; i<=maxY;i++) for(int j=0;j<=maxX;j++) griglia[j][i] = new Tabella(); return; } public void paint(Graphics g) { /* if(rigaPiena && !Applet.modifica_livello) { g.setColor(Applet.color); g.fillPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); g.drawPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); } if(Applet.modifica_livello) { g.setColor(Applet.color); g.drawPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); } */ if(!primo) //la prima volta non devo cancellare il pezzo precedentemente disegnato { g.setColor(Applet.color); g.drawPolygon(pezzo.oldCoordX,pezzo.oldCoordY,pezzo.nr_punti); g.fillPolygon(pezzo.oldCoordX,pezzo.oldCoordY,pezzo.nr_punti); } primo=false; if(!Applet.modifica_livello) { g.setColor(Color.black); g.drawPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); g.setColor(new Color(pezzo.color[0],pezzo.color[1],pezzo.color[2])); g.fillPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); } //System.out.println("aggiorna: "+Base.aggiorna); if(Base.aggiorna) //se il quadretto viene disegnato nella griglia gli tolgo il bordino { g.setColor(Applet.color); // g.drawPolygon(pezzo.coordCorrX,pezzo.coordCorrY,pezzo.nr_punti); g.drawPolygon(pezzo.oldCoordX,pezzo.oldCoordY,pezzo.nr_punti); Base.aggiorna = false; } return; } public void creaPezzo() { nr_pezzo = scegliPezzo(); // nr_pezzo = 1; for(int i=0;i<3;i++) color[i]=(int)(Math.random()*255); switch (nr_pezzo) { case 0: pezzo = new Pezzo0(maxX,maxY,color);break; case 1: pezzo = new Pezzo1(maxX,maxY,color);break; case 2: pezzo = new Pezzo2(maxX,maxY,color);break; case 3: pezzo = new Pezzo3(maxX,maxY,color);break; case 4: pezzo = new Pezzo4(maxX,maxY,color);break; case 5: pezzo = new Pezzo5(maxX,maxY,color);break; case 6: pezzo = new Pezzo6(maxX,maxY,color);break; case 7: pezzo = new Pezzo7(maxX,maxY,color);break; case 8: pezzo = new Pezzo8(maxX,maxY,color);break; case 9: pezzo = new Pezzo9(maxX,maxY,color);break; case 10: pezzo = new Pezzo10(maxX,maxY,color);break; case 11: pezzo = new Pezzo11(maxX,maxY,color);break; } Tetrisgame.rigaPiena = false; return; } public boolean avanza() { fine = pezzo.seScendi(); return fine; } public boolean end() { gameOver = pezzo.end(); return gameOver; } public int scegliPezzo() { switch (Applet.livello) { //livello1 scelgo 1 pezzo a caso tra tutti quelli esistenti case 1: return ((int) (Math.random()*12)); //livello2 scelgo 1 pezzo a caso tra tutti quelli con 4 o 3 o 2 quadratini case 2: return ((int) (Math.random()*11)); //livello3 scelgo 1 pezzo a caso tra tutti quelli con 4 o 3 quadratini case 3: return ((int) (Math.random()*10)); //livello4 scelgo 1 pezzo a caso tra tutti quelli con 4 quadratini case 4: return ((int) (Math.random()*7)); } return 0; } }