import java.util.*; import java.awt.*; // // MEMORY GAME // // Don't put hte object on board1 // // floats on water // walkable on hole // public class object11 extends object{ // calculate the random cards private static Random random = new Random(); int state=0; long oldtime=0; Image oldimage; // When card is turned it should be put back int x,y; public object11(){ objnumber=11; methods[0]="hit"; methods[1]="resetevent"; methods[2]="event"; } public void init(Global glbl){ global=glbl; //System.out.println("object 11 init!"); if(image == null){ image=global.loadImage(global.Server, global.Directory+"11"+global.Extention, global.show); } sound=global.loadSound(global.Server, global.Directory+"11.au"); Date d=new Date(); oldtime=(long)d.getTime(); } public void execute(){ if(method.compareTo("event")==0) event(); if(method.compareTo("resetevent")==0) resetevent(); if(method.compareTo("hit")==0){ hit(); return; } } // Hit the crate/wood public void hit(){ x=global.player.getX(); y=global.player.getY(); if(global.dir == -global.STEPP){ x-=global.STEPP; } // Right if(global.dir == global.STEPP){ x+=global.STEPP; } // down if(global.dir == global.STEPP*global.WIDTH){ y+=global.STEPP; } // up if(global.dir == -global.STEPP*global.WIDTH){ y-=global.STEPP; } //System.out.println("Hit image:"+x+","+y); Integer imagenr; try{ imagenr=(Integer)global.cards.get((String)(""+x+","+y)); if(imagenr==null) imagenr=new Integer(1); }catch(Exception eg){imagenr=new Integer(1);} //System.out.println("imagenr: "+imagenr.toString()); // Show card int s=((y+global.STEPP)*global.WIDTH)+x; global.grid.setxy(x,y,1); //System.out.println("Image : "+global.memory_img[imagenr.intValue()]); global.show.changeBackground(global.memory_img[imagenr.intValue()], s); if(global.selected > 0){ if(global.selectedimage==imagenr.intValue()){ // Match!!! //System.out.println("Match"); global.grid.setxy(global.selectedx, global.selectedy, 1); global.grid.setxy(x,y,1); display(); global.selected=0; }else{ //System.out.println(" No Match "); global.freeze=true; Date d=new Date(); oldtime=(long)d.getTime(); state=1; } }else{ global.selected=s; global.selectedx=x; global.selectedy=y; global.selectedimage=imagenr.intValue(); } display(); } public void event(){ switch(state){ case 1: event1(); break; case 2: break; } } public void event1(){ Date d=new Date(); if((long)(d.getTime()) < oldtime+1000)return; //System.out.println("Turn cards over .. no match1"); // make invisible global.grid.setxy(x,y,11); global.grid.setxy(global.selectedx, global.selectedy, 11); global.freeze=false; state=2; global.selected=0; display(); } public void resetevent(){ System.out.println("Resetevent on object11"); } // Display public void display(){ global.boardrow=-1; global.boardcol=-1; global.doboard=true; } public int rnd(int rr){ return rand(rr); } public int rand(int seed){ int retval=random.nextInt(seed)+1; return retval; } }