SubKorea > CYBER JAVA GAME > ±â¾ï·ÂÅ×½ºÆ®1 (Mnemonic) ¼Ò½ººÐ¼® #1, 2 |
/*
* @author Francois Chouinard
* 97-11-15
* All rights reserved
import java.awt.*;
import java.awt.image.*;
import java.applet.AudioClip;
interface Game_Interface
{
public final int HIDE = 0;
public final int SHOW = 1;
public final int GONE = 2;
}
class Card implements Game_Interface
{
private int ID;
private Image image;
private int status;
Card(Image my_image, int my_ID) {
image
= my_image;
ID
= my_ID;
status
= HIDE;
}
public Image getImage() {return
image;}
public void setImage(Image
my_image) {image = my_image;}
public int getID() {return
ID;}
public void setID(int my_ID)
{ID = my_ID;}
public int getStatus() {return
status;}
public void setStatus(int
my_Status) {status = my_Status;}
} // À§·Î
public final class memory extends java.applet.Applet
implements Runnable, Game_Interface {
// PRIVATE FIELD
private final int CARDS =
20;
private final int CARD_WIDTH
= 40;
private final int CARD_HEIGHT
= 50;
private final int H_GAP = 20;
private final int V_GAP =
10;
private final int ROW = 5;
private final int COLUMN =
8;
private Card Board[][];
private final Color BGCOLOR = new Color(51,102,0);
private int WIDTH = 500;
private int HEIGHT = 390;
private Thread runner = null;
private String message;
private String message1 = "Player
1, pick a card";
private String message2 =
"Player 1, pick another card";
private String message3 = "Player
2, pick a card";
private String message4 =
"Player 2, pick another card";
private String message5 = "Player
1, you win !";
private String message6 =
"Player 2, you win !";
private String message7 = "Â¥¹è±âÀ¯¸Ó¿Í
ÇÔ²²...";
private Image ImageSet[];
private Image Hide_Card, Mnemonic;
private AudioClip beep, yahoo;
private Integer Score1, Score2;
private final int PLAYER1 =
1;
private final int PLAYER2
= 2;
private int turn;
private int pick;
private int matchCard;
private Card lastCard,lastCard2;
// À§·Î
/**
* public void init()
* Initialize the applet.
*
*/
public void init()
{
super.init();
initBoard();
setMessage("Player 1, pick a card");
setBackground(BGCOLOR);
setLayout(null);
resize(WIDTH,
HEIGHT);
} //
À§·Î
/**
* public void initBoard()
* Initialize the game board.
*/
public void initBoard()
{
Score1
= new Integer(0);
Score2
= new Integer(0);
turn = PLAYER1;
pick
= 0;
matchCard
= 0;
int
ID = 0;
Board
= new Card[ROW][COLUMN];
for(int i = 0; i < CARDS; i++) {
Card card1 = new Card(ImageSet[ID], ID);
putCard(card1);
Card card2 = new Card(ImageSet[ID], ID);
putCard(card2);
ID++;
}
} //
À§·Î
/**
* public void putCard(Card card)
* Puts randomly a card on the board.
*
*/
public void putCard(Card
card) {
int
x = (int)(Math.random()*COLUMN);
int
y = (int)(Math.random()*ROW);
boolean
place = false;
while(place
!= true) {
if(Board[y][x] == null) {
Board[y][x] = card;
place = true;
} else {
x = (int)(Math.random()*COLUMN);
y = (int)(Math.random()*ROW);
}
}
} //
À§·Î
/**
* public void getImageAndSound()
* Get the differents images and
sounds.
*
*/
public void getImageAndSound()
{
MediaTracker
tracker;
tracker=new
MediaTracker(this);
beep
= getAudioClip(getCodeBase(), "ding.au");
yahoo
= getAudioClip(getCodeBase(), "yahoo.au");
Image
collection = getImage(getCodeBase(), "Cards.gif");
tracker.addImage(collection, 0);
try {
tracker.waitForID(0);
} catch(InterruptedException
e) {}
Hide_Card
= createImage(new FilteredImageSource(
collection.getSource(), new CropImageFilter(0, 0, 40, 50)));
tracker.addImage(Hide_Card,
1);
ImageSet
= new Image[CARDS];
for(int
i = 0; i < CARDS; i++) {
ImageSet[i] = createImage(new FilteredImageSource(
collection.getSource(), new CropImageFilter(40*(i+1), 0, 40, 50)));
tracker.addImage(ImageSet[i], 1);
}
try {
tracker.waitForID(1);
} catch(InterruptedException
e) { }
Mnemonic
= getImage(getCodeBase(), "Mnemonic.gif");
tracker.addImage(Mnemonic,
3);
try
{
tracker.waitForID(3);
} catch(InterruptedException
e) { }
} //
À§·Î
/**
* public void start()
* Starts the main thread of this
applet.
*
*/
public void start()
{
if(runner != null && runner.isAlive()) {
runner = new Thread(this);
runner.start();
} else if(runner == null) {
runner = new Thread(this);
runner.start();
}
} //
À§·Î
/**
* public void stop()
* Stops the main thread of this
applet.
*
*
*/
public void stop()
{
if(runner != null && runner.isAlive()) {
runner.suspend();
}
} //
À§·Î