java代码打印扑克牌 纸牌游戏java实现( 二 )


}
public boolean equals(Object o){
if(!(o instanceof Cards))return false;
Cards c=(Cards)o;
if(this.num==c.getNum()this.type.equals(c.getType()))return true;
return false;
}
public int compareTo(Object o) {
if(!(o instanceof Cards))return 1;
Cards c=(Cards)o;
int bjjg;
if((bjjg=CardsType.com(this.type,c.getType()))!=0)return bjjg;
return c.getNum()-this.num;
}
public String toString(){
return type+" : "+Num.getN(num);
}
}
package justforjoke.pkGame;
//一副新扑克
public class PkC {
public static Cards[] getNewCards(){
Cards[] nc=new Cards[52];
int k=0;
for(int i=0;i4;i++){
String t=CardsType.getType(i);
for(int j=1;j14;j++){
nc[k++]=new Cards(t,j);
}
}
return nc;
}
}
package justforjoke.pkGame;
import java.util.Arrays;
import java.util.Random;
//游戏,包含两幅扑克
public class Game {
private Cards[]gc=new Cards[104];
private int[] num=new int[104];
private int length=103;
public Game(){
int i=0;
for(Cards c:PkC.getNewCards()){
gc[i++]=c;
}
for(Cards c:PkC.getNewCards()){
gc[i++]=c;
}
for(int j=0;j104;j++)num[j]=j;
}
//发牌
public Cards[] fp(){
Cards[] pf=new Cards[5];
Random r=new Random();
for(int i=0;i5;i++){
if(length1)break;
int t=r.nextInt(length);
int tem=num[t];
num[t]=num[length];
num[length--]=tem;
pf[i]=gc[tem];
}
return pf;
}
//去掉函数中的注释会打印游戏的中间过程
public static String cp(Cards[] c){
String result1="同花";
String result2="顺子";
String result3="";
for(int i=0;i4;i++){
if(!c[i].getType().equals(c[i+1].getType()))result1="";
if(c[i+1].getNum()-c[i].getNum()!=1)result2="";
if(c[i].equals(c[i+1]))result3="对子";
//System.out.print(c[i]+" ||");
}
//System.out.println(c[4]);
return result1+result2+result3;
}
public static void main(String []args){
Game g=new Game();
while(true){
Cards[] pf=g.fp();
if(pf[4]==null){
System.out.println("游戏失败?。?);
break;
}
Arrays.sort(pf);
String r=Game.cp(pf);
if(!r.equals("")){
System.out.println(r);
for(Cards cs:pf)System.out.print(cs+"||");
break;
}
}
}
}
····上面有5个类 。Came类就是用来游戏的 。它会打印游戏结果 。
题目所要求的都解决了,不过有一点,那就是排序时又大到小排的 。
这个在写代码的时候没有注意到 。
代码只会打印游戏的结果,如果你想打印其他的可以在代码中添加 。也可以去掉一些注释查看中间过程
java的问题(扑克牌)代码仅供参考java代码打印扑克牌,如有疑问java代码打印扑克牌,欢迎追问java代码打印扑克牌:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 随机扑克牌
* @author STONE
* @version 2015-10-28
*/
public class Poker {
//用于记录丢失java代码打印扑克牌的手牌数
private static Integer lostTotal = 0;
//用于存放已下发的扑克
private static Integer[] its1 = new Integer[54];
//用于存放当前的扑克
private static Integer[] its2 = new Integer[54];
private static ListInteger lostList = new ArrayListInteger();
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
for(int i=0;i54;i++){
its1[i] = 0;
its2[i] = 0;
}
System.out.println("系统开始发牌...");
givePoker(5);
System.out.println("发牌完毕,当前手牌为:");

推荐阅读