home *** CD-ROM | disk | FTP | other *** search
/ Internet 1996 World Exposition / park.org.s3.amazonaws.com.7z / park.org.s3.amazonaws.com / Cdrom / Pavilions / BrainOpera / online / net-music / soundmemory / all.java < prev    next >
Encoding:
Java Source  |  2017-09-21  |  6.5 KB  |  213 lines

  1. /*
  2.  * Copyright (c) 1996 The Brain Opera. 
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software
  5.  * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and
  6.  * without fee is hereby granted. 
  7.  */
  8.  
  9. import java.awt.*;
  10. import java.awt.image.*;
  11. import java.net.*;
  12. import java.applet.*;
  13. import java.util.*;
  14.  
  15. /**
  16.  * SoundMemory 
  17.  *
  18.  * @version     0.1, March 1996
  19.  * @author      Roberto De Prisco     
  20.  */
  21. public class All extends Applet {
  22.  
  23.  
  24.     int cardStatus[][] = {{0,0,0,0,0,0,0,0,0,0},
  25.                           {0,0,0,0,0,0,0,0,0,0},
  26.                           {0,0,0,0,0,0,0,0,0,0},
  27.                           {0,0,0,0,0,0,0,0,0,0},
  28.                           {0,0,0,0,0,0,0,0,0,0},
  29.                           {0,0,0,0,0,0,0,0,0,0},
  30.                           {0,0,0,0,0,0,0,0,0,0},
  31.                           {0,0,0,0,0,0,0,0,0,0},
  32.                           {0,0,0,0,0,0,0,0,0,0},
  33.                           {0,0,0,0,0,0,0,0,0,0}};
  34.     int cardSound[][]  = {{1,2,3,4,5,6,7,8,9,0},
  35.                           {1,2,3,4,5,6,7,8,9,0},
  36.                           {1,2,3,4,5,6,7,6,9,0},
  37.                           {1,2,3,4,5,6,7,8,9,0},
  38.                           {1,2,3,4,5,6,7,8,9,0},
  39.                           {1,2,3,4,5,6,7,8,9,0},
  40.                           {1,2,3,4,5,6,7,8,9,0},
  41.                           {1,2,3,4,5,6,7,8,9,0},
  42.                           {1,2,3,4,5,6,3,8,9,0},
  43.                           {1,2,3,4,5,6,7,8,9,0}};
  44.  
  45.     int firstCardr = 0;
  46.     int firstCardc = 0;
  47.     int firstCard  = 0;
  48.    
  49.     String dir = "4notes";
  50.     int hcards = 4; 
  51.     int vcards = 2; 
  52.     int cards  = 8;
  53.     int cardw  = 60;
  54.     int cardh  = 60;
  55.  
  56.     int score = 0;
  57.     int tried = 0;
  58.  
  59.     Image backCardImage0;
  60.     Image backCardImage1;
  61.     Image backCardImage2;
  62.     Image endImage;
  63.  
  64.  
  65.     int a;
  66.  
  67.     public void init() {
  68.         setBackground(Color.black);
  69.  
  70.         String at = getParameter("hcards");
  71.         hcards = (at != null) ? Integer.valueOf(at).intValue() : 4;
  72.         at = getParameter("vcards");
  73.         vcards = (at != null) ? Integer.valueOf(at).intValue() : 2;
  74.         at = getParameter("dir");
  75.         dir = (at != null) ? at : "04notes";
  76.  
  77.         System.out.println("hcards: "+ hcards);
  78.         System.out.println("vcards: "+ vcards);
  79.         cards=vcards*hcards;
  80.        
  81.     Dimension d = size();
  82.     cardw = d.width / hcards;
  83.     cardh = d.height / vcards;
  84.  
  85.     backCardImage0 = getImage(getCodeBase(), "littlebrain.gif");
  86.     backCardImage1 = getImage(getCodeBase(), "littlebrain2.gif");
  87.     backCardImage2 = getImage(getCodeBase(), "black.gif");
  88.         System.out.println(dir+"/end.gif");
  89.     endImage= getImage(getCodeBase(), dir+"/end.gif");
  90.         shuffle();
  91.     }
  92.  
  93.  
  94.     public void paint(Graphics g) {
  95.     g.setColor(Color.red);
  96.         if (score < hcards*vcards/2) { 
  97.       for (int r = 0 ; r < vcards ; r++) {
  98.         for (int c = 0 ; c < hcards ; c++) {
  99.                 paintcard(r,c,getGraphics());
  100.         }
  101.       }
  102.         } else {
  103.           g.drawImage(endImage,1,1,this);
  104.           System.out.println("drawn end");
  105.           play(getCodeBase(), dir +"/end.au");}
  106.     }
  107.  
  108.  
  109.     public void paintcard(int r, int c, Graphics g) {
  110.         Dimension d = size();
  111.         g.clipRect(c*cardw+1, r*cardh+1, cardw, cardh);
  112.         /*g.drawImage(endImage,1,1,this);*/
  113.         if (cardStatus[r][c] == 0) {
  114.            g.drawImage(backCardImage0, c*cardw+1, r*cardh+1, this);}
  115.         if (cardStatus[r][c] == 1) {
  116.            g.drawImage(backCardImage1, c*cardw+1, r*cardh+1, this);}
  117.         if (cardStatus[r][c] == 2) {
  118.            g.drawImage(endImage,1,1,this);}
  119.         g.clipRect(1,1,d.width,d.height);
  120.     }
  121.  
  122.  
  123.     /**
  124.      * The user has clicked in the applet. Check where
  125.      * and respond accordingly 
  126.      */
  127.     public boolean mouseUp(Event evt, int x, int y) {
  128.       if (score < hcards*vcards/2) {
  129.     Dimension d = size();
  130.     int c = (x * hcards) / d.width;
  131.     int r = (y * vcards) / d.height;
  132.         if (cardStatus[r][c] == 0) {
  133.           cardStatus[r][c] = 1;
  134.           paintcard(r,c,getGraphics());
  135.           /*repaint();*/
  136.           play(getCodeBase(), dir +"/"+ cardSound[r][c] + ".au");
  137.           System.out.println("cardSound is "+ cardSound[r][c]);
  138.           switch (firstCard) {
  139.           case 0:
  140.              firstCard = 1;
  141.              firstCardr = r; 
  142.              firstCardc = c; 
  143.              break;
  144.           case 1:
  145.              tried = tried +1;
  146.              System.out.println("Tried: "+ tried);
  147.              firstCard = 0;
  148.              if (cardSound[r][c] == cardSound[firstCardr][firstCardc]) {
  149.                 cardStatus[r][c] = 2;
  150.                 cardStatus[firstCardr][firstCardc] = 2;
  151.                 paintcard(r,c,getGraphics());
  152.                 paintcard(firstCardr,firstCardc,getGraphics());
  153.                 /*repaint();*/
  154.                 score = score +1;
  155.                 System.out.println("Score: "+ score) ;
  156.                 if (score >= hcards*vcards/2) {
  157.                     System.out.println("You are brainless ...");
  158.                     System.out.println("Tried: " + tried);
  159.                     repaint();
  160.                 }
  161.              } else {
  162.                 cardStatus[r][c] = 0;
  163.                 cardStatus[firstCardr][firstCardc] = 0;
  164.                 paintcard(r,c,getGraphics());
  165.                 paintcard(firstCardr,firstCardc,getGraphics());
  166.                 /*repaint();*/
  167.              }
  168.           }
  169.     } else {
  170.          System.out.println("No card there."); 
  171.     }
  172.       } else { shuffle(); }
  173.       return true;
  174.     }
  175.  
  176.  
  177.     public void shuffle() {
  178.            int rr, rc, tmp;
  179.            int s=0;
  180.            int flag=0;
  181.            for (int r = 0 ; r < vcards ; r++) {
  182.              for (int c = 0 ; c < hcards ; c++) {
  183.                 cardSound[r][c] = s;
  184.                 cardStatus[r][c] = 0;
  185.                 if (flag == 0) { flag=1; }
  186.                           else { flag=0; s = s+1; }
  187.              }
  188.            }
  189.            for (int r = 0 ; r < vcards ; r++) {
  190.              for (int c = 0 ; c < hcards ; c++) {
  191.                rr = (int)(((float)Math.random())*vcards);
  192.                rc = (int)(((float)Math.random())*hcards);
  193.                System.out.println("Random row: "+ rr);
  194.                System.out.println("Random col: "+ rc);
  195.                System.out.println("Status: "+ cardStatus[r][c]);
  196.                tmp = cardSound[r][c];
  197.                cardSound[r][c] = cardSound[rr][rc];
  198.                cardSound[rr][rc] = tmp; 
  199.              }
  200.          }
  201.          score = 0;
  202.          tried = 0;
  203.          System.out.println("Score: "+ score);
  204.          System.out.println("Tried: "+ tried);
  205.          repaint();
  206.     }
  207.  
  208.  
  209.     public String getAppletInfo() {
  210.     return "SoundMemory";
  211.     }
  212. }
  213.