📄 cardoperation.java
字号:
package poker;
/**
* <p>Title: 斗地主</p>
* <p>Description: 牌操作</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 李艳生
* @version 1.0
*/
import java.awt.*;
import java.awt.Graphics2D;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.URL;
import java.net.URLClassLoader;
public class CardOperation {
//所有牌对象集
public static Vector cards = new Vector();
public CardOperation() {
}
/**加载扑克图片
*/
public static void loadCards(Component cmp){
//s--黑桃(spade) h--红桃(hearts) c--梅花(club) d--方块(diamond)
String name[] = {"s","h","c","d"};
String dot[] = {"3","4","5","6","7","8","9","10","j","q","k","a","2"};
//权值
int power[] = {3,4,5,6,7,8,9,10,11,12,13,14,15};
URLClassLoader urlLoader = (URLClassLoader)cmp.getClass().getClassLoader();
URL fileLoc = null;
Card card = null;
//先读52张牌
for(int i=0; i<4;i++){
for(int j=0;j<13;j++){
fileLoc = urlLoader.findResource("cards/"+name[i]+dot[j]+".jpg");
card = new Card(name[i]+dot[j], power[j], cmp.getToolkit().createImage(fileLoc));
cards.addElement(card);
}
}
//再读大小王
fileLoc = urlLoader.findResource("cards/b.jpg");
card = new Card("b",200,cmp.getToolkit().createImage(fileLoc));
cards.addElement(card);
fileLoc = urlLoader.findResource("cards/s.jpg");
card = new Card("s",100,cmp.getToolkit().createImage(fileLoc));
cards.addElement(card);
//牌背景
fileLoc = urlLoader.findResource("cards/bg.jpg");
card = new Card("bg",0,cmp.getToolkit().createImage(fileLoc));
cards.addElement(card);
//初始化
Card c = new Card();
for(int i=0;i<54;i++){
PokerKernal.postCards.addElement(c);
}
for(int i=0;i<20;i++){
PokerKernal.oneCards.addElement(c);
PokerKernal.twoCards.addElement(c);
PokerKernal.threeCards.addElement(c);
PokerKernal.selectCards.addElement(c);
}
PokerKernal.master = "one";
}
//洗牌
public static void shuttle(){
Random r = new Random();
int index = 0;
Card c = null;
for(int i=0;i<54;i++){
index = r.nextInt(54);
while(index==54){
index = r.nextInt(54);
}
c = (Card)cards.elementAt(i);
cards.setElementAt(cards.get(index), i);
cards.setElementAt(c,index);
}
}
//发牌
public static void post(){
shuttle();
int k = 0;
for(int i=0;i<17;i++){
//判断第一个取牌人
if(PokerKernal.master.equalsIgnoreCase("one")){
PokerKernal.oneCards.setElementAt(cards.get(k++), i);
PokerKernal.twoCards.setElementAt(cards.get(k++), i);
PokerKernal.threeCards.setElementAt(cards.get(k++), i);
}
else if(PokerKernal.master.equalsIgnoreCase("two")){
PokerKernal.twoCards.setElementAt(cards.get(k++), i);
PokerKernal.threeCards.setElementAt(cards.get(k++), i);
PokerKernal.oneCards.setElementAt(cards.get(k++), i);
}
else if(PokerKernal.master.equalsIgnoreCase("three")){
PokerKernal.threeCards.setElementAt(cards.get(k++), i);
PokerKernal.oneCards.setElementAt(cards.get(k++), i);
PokerKernal.twoCards.setElementAt(cards.get(k++), i);
}
}
PokerKernal.status = true;
PokerKernal.posted = true;
PokerKernal.take = false;
}
//拿底牌
public static void takeLow(){
int k = 51;
for(int i=17;i<20;i++){
//判断地主
if (PokerKernal.master.equalsIgnoreCase("one")) {
PokerKernal.oneCards.setElementAt(cards.get(k++), i);
}
else if (PokerKernal.master.equalsIgnoreCase("two")) {
PokerKernal.twoCards.setElementAt(cards.get(k++), i);
}
else if (PokerKernal.master.equalsIgnoreCase("three")) {
PokerKernal.threeCards.setElementAt(cards.get(k++), i);
}
}
PokerKernal.takelow = true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -