📄 card.java
字号:
import java.awt.geom.*;
import java.awt.*;
import java.awt.image.*;
/**
* Card Class
*
* @author Sam Cavenagh
* @version 5/11/02
*
* Website: http://home.pacific.net.au/~cavenagh/SH/ Email:
* cavenaghweb@hotmail.com
*/
public class Card {
// Reference at bottom of class
int cardSuit;
int cardValue;
int cardNumber;
BufferedImage cardPic;
Image cardSideWays;
int picX;
int picY;
// for drawing card
SHinterface sh;
Graphics g;
public Card(int cardNumber, Image cardspic, SHinterface sh, Graphics g) {
this.cardNumber = cardNumber;
this.sh = sh;
this.g = g;
cardPic = new BufferedImage(71, 96, Transparency.BITMASK);
Graphics tempg = cardPic.getGraphics();
cardSideWays = new BufferedImage(96, 71, Transparency.BITMASK);
getCardDetails(cardspic, tempg);
}
public void drawCard(Point p) {
g.drawImage(cardPic, (int) p.getX(), (int) p.getY(), sh);
}
public void drawCard2(int x, int y) {
g.drawImage(cardPic, x, y, sh);
}
public void drawSideWays(Point p) {
g.drawImage(cardSideWays, (int) p.getX(), (int) p.getY(), sh);
}
public void drawSideWays2(int x, int y) {
g.drawImage(cardSideWays, x, y, sh);
}
public int getSuit() {
return cardSuit;
}
public int getValue() {
return cardValue;
}
public int getNumber() {
return cardNumber;
}
/*--------------------------------
* Card Code Index
*
* SUIT:
* 1 = hearts
* 2 = spades
* 3 = diamonds
* 4 = clubs
*
* VALUE:
* 2 - 10 = as numbers
* 11 = jack
* 12 = queen
* 13 = king
* 14 = ace
*
*-------------------------------*/
private void getCardDetails(Image cardpic, Graphics tempg) {
int cardWidth = 73;
int cardHeight = 99;
// Finding Suit
if (cardNumber < 14)
cardSuit = 1;
else if (cardNumber >= 14 && cardNumber < 27)
cardSuit = 2;
else if (cardNumber >= 27 && cardNumber < 40)
cardSuit = 3;
else if (cardNumber >= 40 && cardNumber < 53)
cardSuit = 4;
// Finding Value
if (cardSuit == 1)
cardValue = cardNumber + 1;
else if (cardSuit == 2)
cardValue = cardNumber - 12;
else if (cardSuit == 3)
cardValue = cardNumber - 25;
else if (cardSuit == 4)
cardValue = cardNumber - 38;
// seperating card image from other card images
tempg.drawImage(cardpic, -(cardValue - 2) * cardWidth, -(cardSuit - 1)
* cardHeight, sh);
// rotating card image to create sideways card image
Graphics tempg2 = cardSideWays.getGraphics();
Graphics2D g2d = (Graphics2D) tempg2;
AffineTransform origXform = g2d.getTransform();
AffineTransform newXform = (AffineTransform) (origXform.clone());
newXform.rotate(Math.toRadians(-90), 50, 50);
g2d.setTransform(newXform);
// draw image
g2d.drawImage(cardPic, 29, 0, sh);
g2d.setTransform(origXform);
}
public String getStringValue() {
switch (cardValue) {
case 2:
return "Two";
case 3:
return "Three";
case 4:
return "Four";
case 5:
return "Five";
case 6:
return "Six";
case 7:
return "Seven";
case 8:
return "Eight";
case 9:
return "Nine";
case 10:
return "Ten";
case 11:
return "Jack";
case 12:
return "Queen";
case 13:
return "King";
case 14:
return "Ace";
default:
return "Unknown";
}
}
public static String getCardStringValue(int cardNumber) {
int cardSuit = 0;
int cardValue = 0;
// Finding Suit
if (cardNumber < 14)
cardSuit = 1;
else if (cardNumber >= 14 && cardNumber < 27)
cardSuit = 2;
else if (cardNumber >= 27 && cardNumber < 40)
cardSuit = 3;
else if (cardNumber >= 40 && cardNumber < 53)
cardSuit = 4;
// Finding Value
if (cardSuit == 1)
cardValue = cardNumber + 1;
else if (cardSuit == 2)
cardValue = cardNumber - 12;
else if (cardSuit == 3)
cardValue = cardNumber - 25;
else if (cardSuit == 4)
cardValue = cardNumber - 38;
switch (cardValue) {
case 2:
return "Two";
case 3:
return "Three";
case 4:
return "Four";
case 5:
return "Five";
case 6:
return "Six";
case 7:
return "Seven";
case 8:
return "Eight";
case 9:
return "Nine";
case 10:
return "Ten";
case 11:
return "Jack";
case 12:
return "Queen";
case 13:
return "King";
case 14:
return "Ace";
default:
return "Unknown";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -