home *** CD-ROM | disk | FTP | other *** search
Java Source | 2017-09-21 | 6.5 KB | 213 lines |
- /*
- * Copyright (c) 1996 The Brain Opera.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and
- * without fee is hereby granted.
- */
-
- import java.awt.*;
- import java.awt.image.*;
- import java.net.*;
- import java.applet.*;
- import java.util.*;
-
- /**
- * SoundMemory
- *
- * @version 0.1, March 1996
- * @author Roberto De Prisco
- */
- public class All extends Applet {
-
-
- int cardStatus[][] = {{0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0}};
- int cardSound[][] = {{1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,6,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,7,8,9,0},
- {1,2,3,4,5,6,3,8,9,0},
- {1,2,3,4,5,6,7,8,9,0}};
-
- int firstCardr = 0;
- int firstCardc = 0;
- int firstCard = 0;
-
- String dir = "4notes";
- int hcards = 4;
- int vcards = 2;
- int cards = 8;
- int cardw = 60;
- int cardh = 60;
-
- int score = 0;
- int tried = 0;
-
- Image backCardImage0;
- Image backCardImage1;
- Image backCardImage2;
- Image endImage;
-
-
- int a;
-
- public void init() {
- setBackground(Color.black);
-
- String at = getParameter("hcards");
- hcards = (at != null) ? Integer.valueOf(at).intValue() : 4;
- at = getParameter("vcards");
- vcards = (at != null) ? Integer.valueOf(at).intValue() : 2;
- at = getParameter("dir");
- dir = (at != null) ? at : "04notes";
-
- System.out.println("hcards: "+ hcards);
- System.out.println("vcards: "+ vcards);
- cards=vcards*hcards;
-
- Dimension d = size();
- cardw = d.width / hcards;
- cardh = d.height / vcards;
-
- backCardImage0 = getImage(getCodeBase(), "littlebrain.gif");
- backCardImage1 = getImage(getCodeBase(), "littlebrain2.gif");
- backCardImage2 = getImage(getCodeBase(), "black.gif");
- System.out.println(dir+"/end.gif");
- endImage= getImage(getCodeBase(), dir+"/end.gif");
- shuffle();
- }
-
-
- public void paint(Graphics g) {
- g.setColor(Color.red);
- if (score < hcards*vcards/2) {
- for (int r = 0 ; r < vcards ; r++) {
- for (int c = 0 ; c < hcards ; c++) {
- paintcard(r,c,getGraphics());
- }
- }
- } else {
- g.drawImage(endImage,1,1,this);
- System.out.println("drawn end");
- play(getCodeBase(), dir +"/end.au");}
- }
-
-
- public void paintcard(int r, int c, Graphics g) {
- Dimension d = size();
- g.clipRect(c*cardw+1, r*cardh+1, cardw, cardh);
- /*g.drawImage(endImage,1,1,this);*/
- if (cardStatus[r][c] == 0) {
- g.drawImage(backCardImage0, c*cardw+1, r*cardh+1, this);}
- if (cardStatus[r][c] == 1) {
- g.drawImage(backCardImage1, c*cardw+1, r*cardh+1, this);}
- if (cardStatus[r][c] == 2) {
- g.drawImage(endImage,1,1,this);}
- g.clipRect(1,1,d.width,d.height);
- }
-
-
- /**
- * The user has clicked in the applet. Check where
- * and respond accordingly
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (score < hcards*vcards/2) {
- Dimension d = size();
- int c = (x * hcards) / d.width;
- int r = (y * vcards) / d.height;
- if (cardStatus[r][c] == 0) {
- cardStatus[r][c] = 1;
- paintcard(r,c,getGraphics());
- /*repaint();*/
- play(getCodeBase(), dir +"/"+ cardSound[r][c] + ".au");
- System.out.println("cardSound is "+ cardSound[r][c]);
- switch (firstCard) {
- case 0:
- firstCard = 1;
- firstCardr = r;
- firstCardc = c;
- break;
- case 1:
- tried = tried +1;
- System.out.println("Tried: "+ tried);
- firstCard = 0;
- if (cardSound[r][c] == cardSound[firstCardr][firstCardc]) {
- cardStatus[r][c] = 2;
- cardStatus[firstCardr][firstCardc] = 2;
- paintcard(r,c,getGraphics());
- paintcard(firstCardr,firstCardc,getGraphics());
- /*repaint();*/
- score = score +1;
- System.out.println("Score: "+ score) ;
- if (score >= hcards*vcards/2) {
- System.out.println("You are brainless ...");
- System.out.println("Tried: " + tried);
- repaint();
- }
- } else {
- cardStatus[r][c] = 0;
- cardStatus[firstCardr][firstCardc] = 0;
- paintcard(r,c,getGraphics());
- paintcard(firstCardr,firstCardc,getGraphics());
- /*repaint();*/
- }
- }
- } else {
- System.out.println("No card there.");
- }
- } else { shuffle(); }
- return true;
- }
-
-
- public void shuffle() {
- int rr, rc, tmp;
- int s=0;
- int flag=0;
- for (int r = 0 ; r < vcards ; r++) {
- for (int c = 0 ; c < hcards ; c++) {
- cardSound[r][c] = s;
- cardStatus[r][c] = 0;
- if (flag == 0) { flag=1; }
- else { flag=0; s = s+1; }
- }
- }
- for (int r = 0 ; r < vcards ; r++) {
- for (int c = 0 ; c < hcards ; c++) {
- rr = (int)(((float)Math.random())*vcards);
- rc = (int)(((float)Math.random())*hcards);
- System.out.println("Random row: "+ rr);
- System.out.println("Random col: "+ rc);
- System.out.println("Status: "+ cardStatus[r][c]);
- tmp = cardSound[r][c];
- cardSound[r][c] = cardSound[rr][rc];
- cardSound[rr][rc] = tmp;
- }
- }
- score = 0;
- tried = 0;
- System.out.println("Score: "+ score);
- System.out.println("Tried: "+ tried);
- repaint();
- }
-
-
- public String getAppletInfo() {
- return "SoundMemory";
- }
- }
-