Share Pastebin
Guest
Public paste!

ozus

By: a guest | Mar 21st, 2010 | Syntax: Java | Size: 24.44 KB | Hits: 38 | Expires: Never
Copy text to clipboard
  1. import java.awt.*;
  2. import java.applet.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5.  
  6.  
  7. public class KursaDarbs2 extends Applet implements Runnable,ActionListener, MouseMotionListener  {
  8.        
  9.         Graphics bufferGraphics;
  10.         Image offscreen,Start,Finish, winPic,pXmY,pXpY,mXmY,mXpY,activeTool;
  11.         Dimension dim;
  12.         Thread t;
  13.         Button startPoga,stopPoga,randomPoga;
  14.         AudioClip tuk,yay,pew,weu,tik,pau;
  15.         boolean running=false,notStarted=true,win=false,hit=false,soundHit=false,soundHit2=false;
  16.         Panel winContainer;
  17.        
  18.  
  19.      
  20.  
  21.         //bumba
  22.         int diam = 16;
  23.         int xatrums = 0,yatrums = 0;
  24.         double radius = diam*0.5;
  25.         int radi = (int) radius;
  26.         int bx,by;
  27.         //laukums
  28.         int sizeX = 640,sizeY = 480,fieldX = 64,fieldY = 64;
  29.         int fieldSizeX = sizeX-fieldX-1,fieldSizeY = sizeY-fieldY-1;
  30.         int maxX = sizeX-diam-1,maxY=sizeY-diam-1,minX=fieldX+1,minY=fieldY+1;
  31.         int fieldMiddleY = (int)(fieldSizeY*0.5);
  32.         int fieldCenterY = fieldMiddleY+fieldY;
  33.         int fieldMiddleX = (int) (fieldSizeX*0.5);
  34.         int fieldCenterX = fieldMiddleX+fieldX;
  35.         //šķēršļi
  36.         int obstSizeX=(int)(Math.random()*(fieldMiddleX-(diam*2))+diam);
  37.         int obstX=(int)((Math.random()*(fieldMiddleX-obstSizeX+diam))+fieldX),obstY=fieldCenterY,obstSizeY=diam;
  38.         int obst2SizeY=(int)((Math.random()*(fieldMiddleY-(diam*3))+diam));
  39.         int obst2X=(int)((Math.random()*(fieldSizeX-(diam*7))+fieldX+(diam*3))),obst2Y=(int)((Math.random()*(fieldMiddleY-obst2SizeY-(diam*3))+fieldY)),obst2SizeX=diam;
  40.         int obst3SizeY=(int)((Math.random()*(fieldMiddleY-(diam*3))+diam));
  41.         int obst3X=(int)((Math.random()*(fieldMiddleX)+fieldX+(diam*2))),obst3Y=(int)((Math.random()*(fieldMiddleY-obst3SizeY-(diam*3))+fieldCenterY+diam)),obst3SizeX=diam;
  42.         int obst4SizeY=(int)((Math.random()*(fieldMiddleY-(diam*3))+diam));
  43.         int obst4X=(int)((Math.random()*(fieldMiddleX)+fieldMiddleX)),obst4Y=(int)((Math.random()*(fieldMiddleY-obst4SizeY-(diam*3))+fieldCenterY+diam)),obst4SizeX=diam;
  44.         int obst5SizeX=(int)(Math.random()*(fieldMiddleX-(diam*2))+diam);
  45.         int obst5X=(int)((Math.random()*(fieldMiddleX-obst5SizeX+diam))+fieldMiddleX),obst5Y=fieldCenterY,obst5SizeY=diam;
  46.         //sākums un beigas
  47.         int startPosX = (int)(Math.random()*(fieldSizeX-32)+fieldX);
  48.         int startPosY = fieldY+1;
  49.         int endPosX = (int)(Math.random()*(fieldSizeX-32)+fieldX);
  50.         int endPosY = sizeY-32;
  51.         //kustība
  52.         int dirX,dirY;
  53.         //rīki
  54.         int mouseOffX,mouseOffY;
  55.         int toolNumber = 0,toolCount = 0;
  56.         int[] toolCoordx = new int[21];
  57.         int[] toolCoordy = new int[21];
  58.         int[] toolType = new int[21];                    //t1=pXmY, t2=pXpY, t3=mXpY, t4=mXmY
  59.         boolean[] toolIsInUse = new boolean[21];
  60.         int toolYOffset = 0,toolXOffset = 0,i =0;
  61.         int curX=0,curY=0;
  62.         int inactiveTool,timeOut,timeOut2;
  63.         //Rezultāts
  64.         int score=1000000;
  65.         int penalty=0;
  66.         private Font a_Font;
  67.         boolean yayd=true;
  68.        
  69.         public void init(){
  70.                 while (obst2X+obst2SizeX>=startPosX+8 && obst2X<=startPosX+8+diam ) {
  71.                         obst2X=(int)((Math.random()*(fieldSizeX-(diam*7))+fieldX+(diam*3)));
  72.                 }
  73.                 while (endPosX>=startPosX-40 && endPosX<=startPosX+40){
  74.                         endPosX = (int)(Math.random()*(fieldSizeX-32)+fieldX);
  75.                 }
  76.                 startPoga = new Button("Sākt");
  77.                 stopPoga = new Button("Pārtraukt");
  78.                 randomPoga = new Button("Nejaušs rīks");
  79.                 winContainer = new Panel(new FlowLayout());
  80.                 add(startPoga);
  81.                 add(stopPoga);
  82.                 add(randomPoga);
  83.                 startPoga.addActionListener(this);
  84.                 stopPoga.addActionListener(this);
  85.                 randomPoga.addActionListener(this);
  86.                 startPoga.setEnabled(true);
  87.                 stopPoga.setEnabled(false);
  88.                 winContainer.setLocation(0,220);
  89.                 winContainer.setSize(480,220);
  90.                
  91.                 bx = startPosX+8;
  92.                 by = startPosY+8;
  93.                 addMouseMotionListener(this);
  94.                 for (int i=0; i<toolType.length; i++){
  95.                         toolType[i] = (int)(Math.random()*4);
  96.                 }
  97.                 toolIsInUse[0]=true;
  98.                 toolIsInUse[20]=false;
  99.                 toolType[20]=0;
  100.                 while (i<toolCoordx.length) {
  101.                         toolCoordx[i] = toolXOffset;
  102.                         toolCoordy[i] = fieldY + toolYOffset;
  103.                         toolYOffset += 32;
  104.                         if (toolYOffset>=320){
  105.                                 toolYOffset = 0;
  106.                                 toolXOffset += 32;
  107.  //                             toolCoordy[i] += toolXOffset;
  108.                         }
  109.                         i++;
  110.                  }
  111.                 toolCoordx[20] = 500;
  112.                 toolCoordy[20] = 500;
  113.                
  114.  
  115.  
  116.                 t = new Thread(this);
  117.                 t.start();
  118.                
  119.                 Start = getImage(getCodeBase(), "Start.GIF");
  120.                 Finish = getImage(getCodeBase(), "Finish.GIF");
  121.                 winPic = getImage(getCodeBase(), "win.GIF");
  122.                 pXmY = getImage(getCodeBase(), "pXpY.GIF");
  123.                 pXpY = getImage(getCodeBase(), "pXmY.GIF");
  124.                 mXmY = getImage(getCodeBase(), "mXpY.GIF");
  125.                 mXpY = getImage(getCodeBase(), "mXmY.GIF");    
  126.                 activeTool = getImage(getCodeBase(), "active.GIF");    
  127.                
  128.                 tuk = getAudioClip(getDocumentBase(), "tuk.WAV");
  129.                 yay = getAudioClip(getDocumentBase(), "yay.WAV");
  130.                 pew = getAudioClip(getDocumentBase(), "pew.WAV");
  131.                 weu = getAudioClip(getDocumentBase(), "weu.WAV");
  132.                 tik = getAudioClip(getDocumentBase(), "tik.WAV");
  133.                 pau = getAudioClip(getDocumentBase(), "pau.WAV");
  134.                
  135.                 a_Font = new Font("Helvetica", Font.BOLD, 16);
  136.                 setFont(a_Font);
  137.                                        
  138.                 setSize(sizeX, sizeY);
  139.                 dim = getSize();
  140.                 offscreen = createImage(dim.width,dim.height);
  141.                 bufferGraphics = offscreen.getGraphics();
  142.                
  143.  
  144.                
  145.         }
  146.        
  147. public void run() {
  148.                 while (true){
  149.                         while(running){
  150.                                 if (!win){
  151.                                         score--;
  152.                                 }
  153.                                 by+=dirY;
  154.                                 bx+=dirX;
  155.                                 repaint();
  156.                                 if (bx>maxX || bx<minX ){
  157.                                         if (soundHit2 && soundHit){
  158.                                                 weu.play();
  159.                                                
  160.                                                
  161.                                         }
  162.                                         if (soundHit){
  163.                                                 pew.play();
  164.                                                 soundHit2=true;
  165.                                                 timeOut2=100;
  166.                                                
  167.                                         }
  168.                                 if (!soundHit && !soundHit2){
  169.                                         tuk.play();
  170.                                                 soundHit=true;
  171.                                                 timeOut=150;
  172.                                                
  173.                                 }
  174.                                         score=score-1000*penalty;
  175.                                         penalty++;
  176.                                 dirX=-dirX;
  177.                      
  178.                                
  179.                                 }
  180.                             if (by>maxY || by<minY ){
  181.                                         if (soundHit2 && soundHit){
  182.                                                 weu.play();
  183.                                                
  184.                                         }
  185.                                         if (soundHit && !soundHit2){
  186.                                                 pew.play();
  187.                                                 soundHit2=true;
  188.                                                 timeOut2=100;
  189.                                                
  190.                                         }
  191.                                 if (!soundHit){
  192.                                         tuk.play();
  193.                                                 soundHit=true;
  194.                                                 timeOut=150;
  195.                                                
  196.                                 }
  197.                                         score=score-1000*penalty;
  198.                                         penalty++;
  199.                                 dirY=-dirY;
  200.                                
  201.                             }
  202.                            
  203.                             if (soundHit){
  204.                                 timeOut--;
  205.                                 if (timeOut==0){
  206.                                         soundHit=false;
  207.                                 }
  208.                             }
  209.                                 if (soundHit2){
  210.                                 timeOut2--;
  211.                                 if (timeOut2==0){
  212.                                         soundHit2=false;
  213.                                 }
  214.                             }
  215.                            
  216.                             if (bx+diam>=obstX-1 && bx<=obstX+obstSizeX+1 && by+diam>obstY && by<obstY+obstSizeY ||
  217.                                 bx+diam>obst2X && bx<obst2X+obst2SizeX && by+diam>=obst2Y-1 && by<=obst2Y+obst2SizeY+1 ||
  218.                                 bx+diam>obst3X && bx<obst3X+obst3SizeX && by+diam>=obst3Y-1 && by<=obst3Y+obst3SizeY+1 ||
  219.                                 bx+diam>obst4X && bx<obst4X+obst4SizeX && by+diam>=obst4Y-1 && by<=obst4Y+obst4SizeY+1 ||
  220.                                 bx+diam>=obst5X-1 && bx<=obst5X+obst5SizeX+1 && by+diam>obst5Y && by<obst5Y+obst5SizeY){
  221.                                 tik.play();
  222.                                 dirX=-dirX;    
  223.                                 score=score-1000*penalty;
  224.                                         penalty++;
  225.                             }
  226.                            
  227.                             if (by+diam>=obstY-1 && by<=obstY+obstSizeY+1 && bx+diam>obstX && bx<obstX+obstSizeX ||
  228.                                 by+diam>obst2Y && by<obst2Y+obst2SizeY && bx+diam>obst2X+1 && bx<obst2X+obst2SizeX-1 ||
  229.                                 by+diam>obst3Y && by<obst3Y+obst3SizeY && bx+diam>obst3X+1 && bx<obst3X+obst3SizeX-1 ||
  230.                                 by+diam>obst4Y && by<obst4Y+obst2SizeY && bx+diam>obst4X+1 && bx<obst4X+obst4SizeX-1 ||
  231.                                 by+diam>=obst5Y-1 && by<=obst5Y+obst5SizeY+1 && bx+diam>obst5X && bx<obst5X+obst5SizeX){
  232.                                 pau.play();
  233.                                 dirY=-dirY;    
  234.                                 score=score-1000*penalty;
  235.                                         penalty++;
  236.                             }
  237.                             if (bx > endPosX+3-radi && bx < endPosX+30-diam && by > endPosY-radi) {
  238.                                         win = true;
  239.                                         dirX=0;
  240.                                         dirY=0;
  241.                             }
  242.                             if (hit){
  243.                                 if(!(bx>=toolCoordx[inactiveTool]-diam && bx<=toolCoordx[inactiveTool]+32 && by>=toolCoordy[inactiveTool]-diam && by<=toolCoordy[inactiveTool]+32)) {
  244.                                         toolIsInUse[inactiveTool]=true;
  245.                                         hit=false;
  246.                                 }
  247.                             }
  248.                             for (int i= 0; i<20 ;i++)
  249.                             switch (toolType[i]){
  250.                                         case 0:
  251.                                                         if (bx>toolCoordx[i]-diam && bx<toolCoordx[i]+32 && by>toolCoordy[i]-diam && by<toolCoordy[i]+32 && toolIsInUse[i]){
  252.                                                                 dirX+=1;
  253.                                                                 dirY-=1;
  254.                                                                 hit=true;
  255.                                                                 toolIsInUse[i]=false;
  256.                                                                 inactiveTool=i;
  257.                                                                 score+=2000;
  258.                                                         }
  259.                                                         break;
  260.                                         case 1:
  261.                                                         if (bx>toolCoordx[i]-diam && bx<toolCoordx[i]+32 && by>toolCoordy[i]-diam && by<toolCoordy[i]+32 && toolIsInUse[i]){
  262.                                                                 dirX+=1;
  263.                                                                 dirY+=1;
  264.                                                                 hit=true;
  265.                                                                 toolIsInUse[i]=false;
  266.                                                                 inactiveTool=i;
  267.                                                                 score+=2000;
  268.                                                         }
  269.                                                         break;
  270.                                         case 2:
  271.                                                         if (bx>toolCoordx[i]-diam && bx<toolCoordx[i]+32 && by+diam>toolCoordy[i] && by<toolCoordy[i]+32 && toolIsInUse[i]){
  272.                                                                 dirX-=1;
  273.                                                                 dirY+=1;
  274.                                                                 hit=true;
  275.                                                                 toolIsInUse[i]=false;
  276.                                                                 inactiveTool=i;
  277.                                                                 score+=2000;
  278.                                                         }
  279.                                                         break;
  280.                                         case 3:
  281.                                                         if (bx>toolCoordx[i]-diam && bx<toolCoordx[i]+32 && by+diam>toolCoordy[i] && by<toolCoordy[i]+32 && toolIsInUse[i]){
  282.                                                                 dirX-=1;
  283.                                                                 dirY-=1;
  284.                                                                 hit=true;
  285.                                                                 toolIsInUse[i]=false;
  286.                                                                 inactiveTool=i;
  287.                                                                 score+=2000;
  288.                                                         }
  289.                                                         break;
  290.                                 }
  291.                                                
  292.                                
  293.                                 try {
  294.                                 t.sleep(15);
  295.                         } catch (InterruptedException e) { ; }
  296.                         }
  297.                        
  298.                 }
  299.         }
  300.        
  301.         public void paint(Graphics g){
  302.                 bufferGraphics.clearRect(0,0,dim.width,dim.width);
  303.                 bufferGraphics.drawRect(fieldX, fieldY, fieldSizeX, fieldSizeY);
  304.                 bufferGraphics.drawRect(0, fieldY, fieldX, fieldSizeY);
  305.                 bufferGraphics.drawImage(Start,startPosX,startPosY,this);
  306.                 bufferGraphics.drawImage(Finish,endPosX,endPosY,this);
  307.                 bufferGraphics.fillOval(bx,by,diam,diam);
  308.                 bufferGraphics.fillRect(obstX, obstY, obstSizeX, obstSizeY);
  309.                 bufferGraphics.fillRect(obst2X, obst2Y, obst2SizeX, obst2SizeY);
  310.                 bufferGraphics.fillRect(obst3X, obst3Y, obst3SizeX, obst3SizeY);
  311.                 bufferGraphics.fillRect(obst4X, obst4Y, obst4SizeX, obst4SizeY);
  312.                 bufferGraphics.fillRect(obst5X, obst5Y, obst5SizeX, obst5SizeY);
  313.                 bufferGraphics.drawImage(activeTool,toolCoordx[toolNumber]-4,toolCoordy[toolNumber]-4,this);
  314.                 bufferGraphics.drawString(" Punktu Skaits: "+score, 220, 56 );
  315.  
  316.                 if (toolIsInUse[0]) {
  317.                         switch(toolType[0]){
  318.                                 case 0:
  319.                                         bufferGraphics.drawImage(pXmY,toolCoordx[0],toolCoordy[0],this);
  320.                                         break;
  321.                                 case 1:
  322.                                         bufferGraphics.drawImage(pXpY,toolCoordx[0],toolCoordy[0],this);
  323.                                         break;
  324.                                 case 2:
  325.                                         bufferGraphics.drawImage(mXpY,toolCoordx[0],toolCoordy[0],this);
  326.                                         break;
  327.                                 case 3:
  328.                                         bufferGraphics.drawImage(mXmY,toolCoordx[0],toolCoordy[0],this);
  329.                                         break;
  330.                         }
  331.                 }      
  332.                        
  333.                 if (toolIsInUse[1])  {
  334.                         switch(toolType[1]){
  335.                                 case 0:
  336.                                         bufferGraphics.drawImage(pXmY,toolCoordx[1],toolCoordy[1],this);
  337.                                         break;
  338.                                 case 1:
  339.                                         bufferGraphics.drawImage(pXpY,toolCoordx[1],toolCoordy[1],this);
  340.                                         break;
  341.                                 case 2:
  342.                                         bufferGraphics.drawImage(mXpY,toolCoordx[1],toolCoordy[1],this);
  343.                                         break;
  344.                                 case 3:
  345.                                         bufferGraphics.drawImage(mXmY,toolCoordx[1],toolCoordy[1],this);
  346.                                         break;
  347.                         }
  348.                 }      
  349.                 if (toolIsInUse[2])  {
  350.                         switch(toolType[2]){
  351.                                 case 0:
  352.                                         bufferGraphics.drawImage(pXmY,toolCoordx[2],toolCoordy[2],this);
  353.                                         break;
  354.                                 case 1:
  355.                                         bufferGraphics.drawImage(pXpY,toolCoordx[2],toolCoordy[2],this);
  356.                                         break;
  357.                                 case 2:
  358.                                         bufferGraphics.drawImage(mXpY,toolCoordx[2],toolCoordy[2],this);
  359.                                         break;
  360.                                 case 3:
  361.                                         bufferGraphics.drawImage(mXmY,toolCoordx[2],toolCoordy[2],this);
  362.                                         break;
  363.                         }
  364.                 }      
  365.  
  366.                 if (toolIsInUse[3])  {
  367.                         switch(toolType[3]){
  368.                                 case 0:
  369.                                         bufferGraphics.drawImage(pXmY,toolCoordx[3],toolCoordy[3],this);
  370.                                         break;
  371.                                 case 1:
  372.                                         bufferGraphics.drawImage(pXpY,toolCoordx[3],toolCoordy[3],this);
  373.                                         break;
  374.                                 case 2:
  375.                                         bufferGraphics.drawImage(mXpY,toolCoordx[3],toolCoordy[3],this);
  376.                                         break;
  377.                                 case 3:
  378.                                         bufferGraphics.drawImage(mXmY,toolCoordx[3],toolCoordy[3],this);
  379.                                         break;
  380.                         }
  381.                 }      
  382.                        
  383.                 if (toolIsInUse[4])  {
  384.                         switch(toolType[4]){
  385.                                 case 0:
  386.                                         bufferGraphics.drawImage(pXmY,toolCoordx[4],toolCoordy[4],this);
  387.                                         break;
  388.                                 case 1:
  389.                                         bufferGraphics.drawImage(pXpY,toolCoordx[4],toolCoordy[4],this);
  390.                                         break;
  391.                                 case 2:
  392.                                         bufferGraphics.drawImage(mXpY,toolCoordx[4],toolCoordy[4],this);
  393.                                         break;
  394.                                 case 3:
  395.                                         bufferGraphics.drawImage(mXmY,toolCoordx[4],toolCoordy[4],this);
  396.                                         break;
  397.                         }
  398.                 }      
  399.                        
  400.                 if (toolIsInUse[5])  {
  401.                         switch(toolType[5]){
  402.                                 case 0:
  403.                                         bufferGraphics.drawImage(pXmY,toolCoordx[5],toolCoordy[5],this);
  404.                                         break;
  405.                                 case 1:
  406.                                         bufferGraphics.drawImage(pXpY,toolCoordx[5],toolCoordy[5],this);
  407.                                         break;
  408.                                 case 2:
  409.                                         bufferGraphics.drawImage(mXpY,toolCoordx[5],toolCoordy[5],this);
  410.                                         break;
  411.                                 case 3:
  412.                                         bufferGraphics.drawImage(mXmY,toolCoordx[5],toolCoordy[5],this);
  413.                                         break;
  414.                         }
  415.                 }      
  416.                        
  417.                 if (toolIsInUse[6])  {
  418.                         switch(toolType[6]){
  419.                                 case 0:
  420.                                         bufferGraphics.drawImage(pXmY,toolCoordx[6],toolCoordy[6],this);
  421.                                         break;
  422.                                 case 1:
  423.                                         bufferGraphics.drawImage(pXpY,toolCoordx[6],toolCoordy[6],this);
  424.                                         break;
  425.                                 case 2:
  426.                                         bufferGraphics.drawImage(mXpY,toolCoordx[6],toolCoordy[6],this);
  427.                                         break;
  428.                                 case 3:
  429.                                         bufferGraphics.drawImage(mXmY,toolCoordx[6],toolCoordy[6],this);
  430.                                         break;
  431.                         }
  432.                 }      
  433.                
  434.                 if (toolIsInUse[6])  {
  435.                         switch(toolType[6]){
  436.                                 case 0:
  437.                                         bufferGraphics.drawImage(pXmY,toolCoordx[6],toolCoordy[6],this);
  438.                                         break;
  439.                                 case 1:
  440.                                         bufferGraphics.drawImage(pXpY,toolCoordx[6],toolCoordy[6],this);
  441.                                         break;
  442.                                 case 2:
  443.                                         bufferGraphics.drawImage(mXpY,toolCoordx[6],toolCoordy[6],this);
  444.                                         break;
  445.                                 case 3:
  446.                                         bufferGraphics.drawImage(mXmY,toolCoordx[6],toolCoordy[6],this);
  447.                                         break;
  448.                         }
  449.                 }      
  450.                        
  451.                 if (toolIsInUse[7])  {
  452.                         switch(toolType[7]){
  453.                                 case 0:
  454.                                         bufferGraphics.drawImage(pXmY,toolCoordx[7],toolCoordy[7],this);
  455.                                         break;
  456.                                 case 1:
  457.                                         bufferGraphics.drawImage(pXpY,toolCoordx[7],toolCoordy[7],this);
  458.                                         break;
  459.                                 case 2:
  460.                                         bufferGraphics.drawImage(mXpY,toolCoordx[7],toolCoordy[7],this);
  461.                                         break;
  462.                                 case 3:
  463.                                         bufferGraphics.drawImage(mXmY,toolCoordx[7],toolCoordy[7],this);
  464.                                         break;
  465.                         }
  466.                 }      
  467.                        
  468.                 if (toolIsInUse[8])  {
  469.                         switch(toolType[8]){
  470.                                 case 0:
  471.                                         bufferGraphics.drawImage(pXmY,toolCoordx[8],toolCoordy[8],this);
  472.                                         break;
  473.                                 case 1:
  474.                                         bufferGraphics.drawImage(pXpY,toolCoordx[8],toolCoordy[8],this);
  475.                                         break;
  476.                                 case 2:
  477.                                         bufferGraphics.drawImage(mXpY,toolCoordx[8],toolCoordy[8],this);
  478.                                         break;
  479.                                 case 3:
  480.                                         bufferGraphics.drawImage(mXmY,toolCoordx[8],toolCoordy[8],this);
  481.                                         break;
  482.                         }
  483.                 }      
  484.                        
  485.                 if (toolIsInUse[9])  {
  486.                         switch(toolType[9]){
  487.                                 case 0:
  488.                                         bufferGraphics.drawImage(pXmY,toolCoordx[9],toolCoordy[9],this);
  489.                                         break;
  490.                                 case 1:
  491.                                         bufferGraphics.drawImage(pXpY,toolCoordx[9],toolCoordy[9],this);
  492.                                         break;
  493.                                 case 2:
  494.                                         bufferGraphics.drawImage(mXpY,toolCoordx[9],toolCoordy[9],this);
  495.                                         break;
  496.                                 case 3:
  497.                                         bufferGraphics.drawImage(mXmY,toolCoordx[9],toolCoordy[9],this);
  498.                                         break;
  499.                         }
  500.                 }      
  501.                        
  502.                 if (toolIsInUse[10])  {
  503.                         switch(toolType[10]){
  504.                                 case 0:
  505.                                         bufferGraphics.drawImage(pXmY,toolCoordx[10],toolCoordy[10],this);
  506.                                         break;
  507.                                 case 1:
  508.                                         bufferGraphics.drawImage(pXpY,toolCoordx[10],toolCoordy[10],this);
  509.                                         break;
  510.                                 case 2:
  511.                                         bufferGraphics.drawImage(mXpY,toolCoordx[10],toolCoordy[10],this);
  512.                                         break;
  513.                                 case 3:
  514.                                         bufferGraphics.drawImage(mXmY,toolCoordx[10],toolCoordy[10],this);
  515.                                         break;
  516.                         }
  517.                 }      
  518.                        
  519.                 if (toolIsInUse[11])  {
  520.                         switch(toolType[11]){
  521.                                 case 0:
  522.                                         bufferGraphics.drawImage(pXmY,toolCoordx[11],toolCoordy[11],this);
  523.                                         break;
  524.                                 case 1:
  525.                                         bufferGraphics.drawImage(pXpY,toolCoordx[11],toolCoordy[11],this);
  526.                                         break;
  527.                                 case 2:
  528.                                         bufferGraphics.drawImage(mXpY,toolCoordx[11],toolCoordy[11],this);
  529.                                         break;
  530.                                 case 3:
  531.                                         bufferGraphics.drawImage(mXmY,toolCoordx[11],toolCoordy[11],this);
  532.                                         break;
  533.                         }
  534.                 }      
  535.                        
  536.                 if (toolIsInUse[12])  {
  537.                         switch(toolType[12]){
  538.                                 case 0:
  539.                                         bufferGraphics.drawImage(pXmY,toolCoordx[12],toolCoordy[12],this);
  540.                                         break;
  541.                                 case 1:
  542.                                         bufferGraphics.drawImage(pXpY,toolCoordx[12],toolCoordy[12],this);
  543.                                         break;
  544.                                 case 2:
  545.                                         bufferGraphics.drawImage(mXpY,toolCoordx[12],toolCoordy[12],this);
  546.                                         break;
  547.                                 case 3:
  548.                                         bufferGraphics.drawImage(mXmY,toolCoordx[12],toolCoordy[12],this);
  549.                                         break;
  550.                         }
  551.                 }      
  552.                        
  553.                 if (toolIsInUse[13])  {
  554.                         switch(toolType[13]){
  555.                                 case 0:
  556.                                         bufferGraphics.drawImage(pXmY,toolCoordx[13],toolCoordy[13],this);
  557.                                         break;
  558.                                 case 1:
  559.                                         bufferGraphics.drawImage(pXpY,toolCoordx[13],toolCoordy[13],this);
  560.                                         break;
  561.                                 case 2:
  562.                                         bufferGraphics.drawImage(mXpY,toolCoordx[13],toolCoordy[13],this);
  563.                                         break;
  564.                                 case 3:
  565.                                         bufferGraphics.drawImage(mXmY,toolCoordx[13],toolCoordy[13],this);
  566.                                         break;
  567.                         }
  568.                 }      
  569.                        
  570.                 if (toolIsInUse[14])  {
  571.                         switch(toolType[14]){
  572.                                 case 0:
  573.                                         bufferGraphics.drawImage(pXmY,toolCoordx[14],toolCoordy[14],this);
  574.                                         break;
  575.                                 case 1:
  576.                                         bufferGraphics.drawImage(pXpY,toolCoordx[14],toolCoordy[14],this);
  577.                                         break;
  578.                                 case 2:
  579.                                         bufferGraphics.drawImage(mXpY,toolCoordx[14],toolCoordy[14],this);
  580.                                         break;
  581.                                 case 3:
  582.                                         bufferGraphics.drawImage(mXmY,toolCoordx[14],toolCoordy[14],this);
  583.                                         break;
  584.                         }
  585.                 }
  586.                                
  587.                 if (toolIsInUse[15])  {
  588.                         switch(toolType[15]){
  589.                                 case 0:
  590.                                         bufferGraphics.drawImage(pXmY,toolCoordx[15],toolCoordy[15],this);
  591.                                         break;
  592.                                 case 1:
  593.                                         bufferGraphics.drawImage(pXpY,toolCoordx[15],toolCoordy[15],this);
  594.                                         break;
  595.                                 case 2:
  596.                                         bufferGraphics.drawImage(mXpY,toolCoordx[15],toolCoordy[15],this);
  597.                                         break;
  598.                                 case 3:
  599.                                         bufferGraphics.drawImage(mXmY,toolCoordx[15],toolCoordy[15],this);
  600.                                         break;
  601.                         }
  602.                 }
  603.                                
  604.                 if (toolIsInUse[16])  {
  605.                         switch(toolType[16]){
  606.                                 case 0:
  607.                                         bufferGraphics.drawImage(pXmY,toolCoordx[16],toolCoordy[16],this);
  608.                                         break;
  609.                                 case 1:
  610.                                         bufferGraphics.drawImage(pXpY,toolCoordx[16],toolCoordy[16],this);
  611.                                         break;
  612.                                 case 2:
  613.                                         bufferGraphics.drawImage(mXpY,toolCoordx[16],toolCoordy[16],this);
  614.                                         break;
  615.                                 case 3:
  616.                                         bufferGraphics.drawImage(mXmY,toolCoordx[16],toolCoordy[16],this);
  617.                                         break;
  618.                         }
  619.                 }
  620.                                
  621.                 if (toolIsInUse[17])  {
  622.                         switch(toolType[17]){
  623.                                 case 0:
  624.                                         bufferGraphics.drawImage(pXmY,toolCoordx[17],toolCoordy[17],this);
  625.                                         break;
  626.                                 case 1:
  627.                                         bufferGraphics.drawImage(pXpY,toolCoordx[17],toolCoordy[17],this);
  628.                                         break;
  629.                                 case 2:
  630.                                         bufferGraphics.drawImage(mXpY,toolCoordx[17],toolCoordy[17],this);
  631.                                         break;
  632.                                 case 3:
  633.                                         bufferGraphics.drawImage(mXmY,toolCoordx[17],toolCoordy[17],this);
  634.                                         break;
  635.                         }
  636.                 }      
  637.                        
  638.                 if (toolIsInUse[18])  {
  639.                         switch(toolType[18]){
  640.                                 case 0:
  641.                                         bufferGraphics.drawImage(pXmY,toolCoordx[18],toolCoordy[18],this);
  642.                                         break;
  643.                                 case 1:
  644.                                         bufferGraphics.drawImage(pXpY,toolCoordx[18],toolCoordy[18],this);
  645.                                         break;
  646.                                 case 2:
  647.                                         bufferGraphics.drawImage(mXpY,toolCoordx[18],toolCoordy[18],this);
  648.                                         break;
  649.                                 case 3:
  650.                                         bufferGraphics.drawImage(mXmY,toolCoordx[18],toolCoordy[18],this);
  651.                                         break;
  652.                         }
  653.                 }      
  654.                        
  655.                 if (toolIsInUse[19])  {
  656.                         switch(toolType[19]){
  657.                                 case 0:
  658.                                         bufferGraphics.drawImage(pXmY,toolCoordx[19],toolCoordy[19],this);
  659.                                         break;
  660.                                 case 1:
  661.                                         bufferGraphics.drawImage(pXpY,toolCoordx[19],toolCoordy[19],this);
  662.                                         break;
  663.                                 case 2:
  664.                                         bufferGraphics.drawImage(mXpY,toolCoordx[19],toolCoordy[19],this);
  665.                                         break;
  666.                                 case 3:
  667.                                         bufferGraphics.drawImage(mXmY,toolCoordx[19],toolCoordy[19],this);
  668.                                         break;
  669.                         }
  670.                 }      
  671.                        
  672.                 if (win) {
  673.                         bufferGraphics.drawImage(winPic, fieldX, fieldY, this);
  674.                         if (yayd){
  675.                                 yay.play();
  676.                                 yayd=false;
  677.                         }
  678.                 }
  679.                
  680.                
  681.                 g.drawImage(offscreen,0,0,this);
  682.     }
  683.    
  684.     public void actionPerformed(ActionEvent evt){
  685.                 if (evt.getSource() == startPoga){
  686.                         running = true;
  687.                         if (notStarted) {
  688.                                 dirY=1;
  689.                                 notStarted = false;
  690.                         }
  691.                        
  692.                         startPoga.setEnabled(false);
  693.                         stopPoga.setEnabled(true);
  694.                         randomPoga.setEnabled(false);
  695.                 }
  696.                 if (evt.getSource() == stopPoga){
  697.                         running = false;
  698.                         startPoga.setEnabled(true);
  699.                         stopPoga.setEnabled(false);
  700.                 }
  701.                 else if (evt.getSource() == randomPoga) {                      
  702.                         toolCount++;
  703.                         score-=2000*toolCount;
  704.                         toolIsInUse[toolCount] = true;
  705.                         if (toolCount>toolCoordx.length-3) {
  706.                                 randomPoga.setEnabled(false);  
  707.                         }      
  708.                 repaint();
  709.                 }
  710.     }
  711.    
  712.     public void mouseMoved(MouseEvent evt){
  713.         curX = evt.getX();
  714.                 curY = evt.getY();
  715.                 if(notStarted) {
  716.                         if (curX > toolCoordx[0] && curY > toolCoordy[0] && curX < toolCoordx[0]+32 && curY < toolCoordy[0]+32 && toolIsInUse[0]) {
  717.                                 toolNumber = 0;
  718.                         }
  719.                         if (curX > toolCoordx[1] && curY > toolCoordy[1] && curX < toolCoordx[1]+32 && curY < toolCoordy[1]+32 && toolIsInUse[1]) {
  720.                                 toolNumber = 1;
  721.                         }
  722.                         if (curX > toolCoordx[2] && curY > toolCoordy[2] && curX < toolCoordx[2]+32 && curY < toolCoordy[2]+32 && toolIsInUse[2]) {
  723.                                 toolNumber = 2;
  724.                         }
  725.                         if (curX > toolCoordx[3] && curY > toolCoordy[3] && curX < toolCoordx[3]+32 && curY < toolCoordy[3]+32 && toolIsInUse[3]) {
  726.                                 toolNumber = 3;
  727.                         }
  728.                         if (curX > toolCoordx[4] && curY > toolCoordy[4] && curX < toolCoordx[4]+32 && curY < toolCoordy[4]+32 && toolIsInUse[4]) {
  729.                                 toolNumber = 4;
  730.                         }
  731.                         if (curX > toolCoordx[5] && curY > toolCoordy[5] && curX < toolCoordx[5]+32 && curY < toolCoordy[5]+32 && toolIsInUse[5]) {
  732.                                 toolNumber = 5;
  733.                         }
  734.                         if (curX > toolCoordx[6] && curY > toolCoordy[6] && curX < toolCoordx[6]+32 && curY < toolCoordy[6]+32 && toolIsInUse[6]) {
  735.                                 toolNumber = 6;
  736.                         }
  737.                         if (curX > toolCoordx[7] && curY > toolCoordy[7] && curX < toolCoordx[7]+32 && curY < toolCoordy[7]+32 && toolIsInUse[7]) {
  738.                                 toolNumber = 7;
  739.                         }
  740.                         if (curX > toolCoordx[8] && curY > toolCoordy[8] && curX < toolCoordx[8]+32 && curY < toolCoordy[8]+32 && toolIsInUse[8]) {
  741.                                 toolNumber = 8;
  742.                         }
  743.                         if (curX > toolCoordx[9] && curY > toolCoordy[9] && curX < toolCoordx[9]+32 && curY < toolCoordy[9]+32 && toolIsInUse[9]) {
  744.                                 toolNumber = 9;
  745.                         }
  746.                         if (curX > toolCoordx[10] && curY > toolCoordy[10] && curX < toolCoordx[10]+32 && curY < toolCoordy[10]+32 && toolIsInUse[10]) {
  747.                                 toolNumber = 10;
  748.                         }
  749.                         if (curX > toolCoordx[11] && curY > toolCoordy[11] && curX < toolCoordx[11]+32 && curY < toolCoordy[11]+32 && toolIsInUse[11]) {
  750.                                 toolNumber = 11;
  751.                         }
  752.                         if (curX > toolCoordx[12] && curY > toolCoordy[12] && curX < toolCoordx[12]+32 && curY < toolCoordy[12]+32 && toolIsInUse[12]) {
  753.                                 toolNumber = 12;
  754.                         }
  755.                         if (curX > toolCoordx[13] && curY > toolCoordy[13] && curX < toolCoordx[13]+32 && curY < toolCoordy[13]+32 && toolIsInUse[13]) {
  756.                                 toolNumber = 13;
  757.                         }
  758.                         if (curX > toolCoordx[14] && curY > toolCoordy[14] && curX < toolCoordx[14]+32 && curY < toolCoordy[14]+32 && toolIsInUse[14]) {
  759.                                 toolNumber = 14;
  760.                         }
  761.                         if (curX > toolCoordx[15] && curY > toolCoordy[15] && curX < toolCoordx[15]+32 && curY < toolCoordy[15]+32 && toolIsInUse[15]) {
  762.                                 toolNumber = 15;
  763.                         }
  764.                         if (curX > toolCoordx[16] && curY > toolCoordy[16] && curX < toolCoordx[16]+32 && curY < toolCoordy[16]+32 && toolIsInUse[16]) {
  765.                                 toolNumber = 16;
  766.                         }
  767.                         if (curX > toolCoordx[17] && curY > toolCoordy[17] && curX < toolCoordx[17]+32 && curY < toolCoordy[17]+32 && toolIsInUse[17]) {
  768.                                 toolNumber = 17;
  769.                         }
  770.                         if (curX > toolCoordx[18] && curY > toolCoordy[18] && curX < toolCoordx[18]+32 && curY < toolCoordy[18]+32 && toolIsInUse[18]) {
  771.                                 toolNumber = 18;
  772.                         }
  773.                         if (curX > toolCoordx[19] && curY > toolCoordy[19] && curX < toolCoordx[19]+32 && curY < toolCoordy[19]+32 && toolIsInUse[19]) {
  774.                                 toolNumber = 19;
  775.                         }
  776.                 }
  777.                 else {
  778.                         toolNumber = 20;
  779.                 }
  780.                 repaint();
  781.     }
  782.    
  783.     public void mouseDragged(MouseEvent evt){
  784.         if (notStarted) {
  785.                
  786.                 if(evt.getX()>30 && evt.getX() < fieldSizeX+fieldX){
  787.                         toolCoordx[toolNumber] = evt.getX()-30;
  788.                 }
  789.                 mouseOffY = evt.getY()- toolCoordy[toolNumber];
  790.                 if(evt.getY()> fieldY+32 && evt.getY() < fieldSizeY+fieldY){
  791.                                 toolCoordy[toolNumber] = evt.getY()-30;
  792.                 }
  793.         }
  794.                 repaint();
  795.        
  796.     }
  797.    
  798.         public void update(Graphics g){
  799.                 paint(g);
  800.         }
  801. }