Black类(黑桃)
package com.pick;
import java.util.ArrayList;
import java.util.List;
public class Black {
public List<Black> black;
String Id;
String Name = "黑桃";
public Black(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
public void balcktest(){
this.black = new ArrayList<>();
for(int i =1; i <= 13;i++){
if(i == 1){
System.out.print(Name+"A ");
Black cr1 = new Black("A",Name);
black.add(cr1);
}else if(i == 11){
System.out.print(Name+"J ");
Black cr2 = new Black("J",Name);
black.add(cr2);
}
else if(i == 12){
System.out.print(Name+"Q ");
Black cr3 = new Black("Q",Name);
black.add(cr3);
}
else if(i == 13){
System.out.print(Name+"K");
Black cr4 = new Black("K",Name);
black.add(cr4);
}else{
String temp;
temp = String.valueOf(i);
System.out.print(Name+i+" ");
Black cr5 = new Black(temp,Name);
black.add(cr5);
}
}
// for (Black obj : black) {
// Black bl = (Black)obj;
// System.out.println("完成添加" + bl.Id + ":" + bl.Name);
// }
}
}
Fang类(方片)
package com.pick;
import java.util.ArrayList;
import java.util.List;
public class fang {
public List<Black> fang;
String Name = "方片";
String Id;
public fang(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
public void balcktest(){
this.fang = new ArrayList<>();
for(int i =1; i <= 13;i++){
if(i == 1){
System.out.print(Name+"A ");
Black cr1 = new Black("A",Name);
fang.add(cr1);
}else if(i == 11){
System.out.print(Name+"J ");
Black cr2 = new Black("J",Name);
fang.add(cr2);
}
else if(i == 12){
System.out.print(Name+"Q ");
Black cr3 = new Black("Q",Name);
fang.add(cr3);
}
else if(i == 13){
System.out.print(Name+"K");
Black cr4 = new Black("K",Name);
fang.add(cr4);
}else{
String temp;
temp = String.valueOf(i);
System.out.print(Name+i+" ");
Black cr5 = new Black(temp,Name);
fang.add(cr5);
}
}
// for (Object obj : black) {
// Black bl = (Black)obj;
// System.out.println("完成添加" + bl.Id + ":" + bl.Name);
// }
}
}
Gamer(玩家)
package com.pick;
import java.util.List;
public class Gamer {
public List<Black> gamer;
String Id;
String Name;
public Gamer(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
}
LastList(最终比较存储List)
package com.pick;
import java.util.ArrayList;
import java.util.List;
public class LastList {
String Id;
String Name;
public List<Black> lastlist;
public void lastlist(String Id,String Name){
this.Id=Id;
this.Name = Name;
}
}
mei(梅花)
package com.pick;
import java.util.ArrayList;
import java.util.List;
public class mei {
public List<Black> mei;
String Name = "梅花";
String Id;
public mei(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
public void balcktest(){
this.mei = new ArrayList<>();
for(int i =1; i <= 13;i++){
if(i == 1){
System.out.print(Name+"A ");
Black cr1 = new Black("A",Name);
mei.add(cr1);
}else if(i == 11){
System.out.print(Name+"J ");
Black cr2 = new Black("J",Name);
mei.add(cr2);
}
else if(i == 12){
System.out.print(Name+"Q ");
Black cr3 = new Black("Q",Name);
mei.add(cr3);
}
else if(i == 13){
System.out.print(Name+"K");
Black cr4 = new Black("K",Name);
mei.add(cr4);
}else{
String temp;
temp = String.valueOf(i);
System.out.print(Name+i+" ");
Black cr5 = new Black(temp,Name);
mei.add(cr5);
}
}
}
}
Pai(牌组)
package com.pick;
import java.util.List;
public class Pai {
public List<Black>paiku;
String Id;
String Name;
public void paiku(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
}
Red(红心)
package com.pick;
import java.util.ArrayList;
import java.util.List;
public class Red {
public List<Black> red;
String Name = "红桃";
String Id;
public Red(String Id,String Name){
this.Id=Id;
this.Name=Name;
}
public void balcktest(){
this.red = new ArrayList<>();
for(int i =1; i <= 13;i++){
if(i == 1){
System.out.print(Name+"A ");
Black cr1 = new Black("A",Name);
red.add(cr1);
}else if(i == 11){
System.out.print(Name+"J ");
Black cr2 = new Black("J",Name);
red.add(cr2);
}
else if(i == 12){
System.out.print(Name+"Q ");
Black cr3 = new Black("Q",Name);
red.add(cr3);
}
else if(i == 13){
System.out.print(Name+"K");
Black cr4 = new Black("K",Name);
red.add(cr4);
}else{
String temp;
temp = String.valueOf(i);
System.out.print(Name+i+" ");
Black cr5 = new Black(temp,Name);
red.add(cr5);
}
}
// for (Object obj : black) {
// Black bl = (Black)obj;
// System.out.println("完成添加" + bl.Id + ":" + bl.Name);
// }
}
}
Main(主函数类)
package com.pick;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;
public class TestMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Black tm = new Black(null, "黑桃");
Red tm2 = new Red(null, "红桃");
fang tm3 = new fang(null, "方片");
mei tm4 = new mei(null, "梅花");
Gamer gamer = new Gamer(null, null);
System.out.println(" ---------创建扑克牌--------");
System.out.println(" --------扑克牌创建成功------");
//黑桃
System.out.print("[");
tm.balcktest();
System.out.print("]");
//红桃
System.out.println("\t");
System.out.print("[");
tm2.balcktest();
System.out.print("]");
//方片
System.out.println("\t");
System.out.print("[");
tm3.balcktest();
System.out.print("]");
//梅花
System.out.println("\t");
System.out.print("[");
tm4.balcktest();
System.out.print("]");
System.out.println("\t");
/**
* 组合牌组
*/
for(int i=0;i<tm2.red.size();i++){
tm.black.add((Black) tm2.red.get(i));
}
for(int i=0;i<tm2.red.size();i++){
tm.black.add((Black) tm4.mei.get(i));
}
for(int i=0;i<tm2.red.size();i++){
tm.black.add((Black) tm3.fang.get(i));
}
/**
*
* 开始洗牌
*/
System.out.println(" ---------开始洗牌--------");
System.out.println(" ---------洗牌完成--------");
Collections.shuffle(tm.black); //排序打乱
Collections.shuffle(tm.black); //排序打乱
// 测试牌库
// for (Black obj : tm.black) {
// Black bl = (Black)obj;
// if(((tm.black.indexOf(obj)+1)%13==1)&&(tm.black.indexOf(obj)!=0)){
// System.out.print("\n");
// }
// System.out.print(bl.Name+bl.Id+" ");
// }
// System.out.println();
/**
* 创建玩家
*/
System.out.println(" ---------创建玩家--------");
System.out.println(" 请输入第一位游戏玩家的ID和姓名");
System.out.println("请输入ID:");
Scanner console = new Scanner(System.in);
String Id1 = console.next();
// System.out.println(Id); //测试ID输入
System.out.println("请输入姓名:");
String Name1 = console.next();
gamer.gamer = new ArrayList<>();
Black gm = new Black(Id1, Name1);
gamer.gamer.add(gm);
// System.out.println(gamer.gamer.get(0).Id+gamer.gamer.get(0).Name);
// System.out.println(Name); //测试姓名输入
System.out.println(" ---------创建玩家--------");
System.out.println(" 请输入第二位游戏玩家的ID和姓名");
System.out.println("请输入ID:");
String Id2 = console.next();
// System.out.println(Id); //测试ID输入
System.out.println("请输入姓名:");
String Name2 = console.next();
Black gm1 = new Black(Id2, Name2);
gamer.gamer.add(gm1);
// System.out.println(gamer.gamer.get(1).Id+gamer.gamer.get(1).Name);
// System.out.println(Name); //测试姓名输入
System.out.println(" 欢迎玩家 ("+gamer.gamer.get(0).Name+")");
System.out.println(" 欢迎玩家 ("+gamer.gamer.get(1).Name+")");
System.out.println(" ---------开始发牌--------");
System.out.println(" 玩家抓牌 ("+gamer.gamer.get(0).Name+")");
System.out.println(" 玩家抓牌 ("+gamer.gamer.get(1).Name+")");
System.out.println(" 玩家抓牌 ("+gamer.gamer.get(0).Name+")");
System.out.println(" 玩家抓牌 ("+gamer.gamer.get(1).Name+")");
System.out.println(" ---------发牌结束--------");
System.out.println(" ---------开始游戏--------");
int max=52;
int min=0;
Random random = new Random();
int j = random.nextInt(max)%(max-min+1) + min;
Pai paiku = new Pai();
paiku.paiku = new ArrayList<>();
for(int i=1;i<=4;i++){
Black pai = tm.black.get(j);
paiku.paiku.add(pai);
tm.black.remove(j);
j = random.nextInt(max)%(max-min+1-i) + min;
}
System.out.println(" 玩家 ("+gamer.gamer.get(0).Name+")的手牌("+paiku.paiku.get(0).Name+paiku.paiku.get(0).Id+","+paiku.paiku.get(2).Name+paiku.paiku.get(2).Id+")");
System.out.println(" 玩家 ("+gamer.gamer.get(1).Name+")的手牌("+paiku.paiku.get(1).Name+paiku.paiku.get(1).Id+","+paiku.paiku.get(3).Name+paiku.paiku.get(3).Id+")");
System.out.println(" ---------发牌结束--------");
System.out.println(" ---------大小比对--------");
LastList la = new LastList();
la.lastlist = new ArrayList<>(); //取出双方最大牌并保存
/**
*
* 比较大小
*
*/
int index = 0;
int index1 = 0;
int shuMax = 0;
int shuMax1 = 0;
int huaMax = 0;
// int last[] = new int[2];
int p[] = new int[4];
int s[] = new int [4];
for(int i=0;i<=3;i++){
if(paiku.paiku.get(i).Name =="黑桃"){
p[i] = 4;
}else if(paiku.paiku.get(i).Name =="红桃"){
p[i] = 3;
}else if(paiku.paiku.get(i).Name =="梅花"){
p[i] = 2;
}else if(paiku.paiku.get(i).Name =="方片"){
p[i] = 1;
}
}
for(int i=0;i<4;i++){
switch (paiku.paiku.get(i).Id){
case "3":s[i] =3;break;
case "4":s[i] =4;break;
case "5":s[i] =5;break;
case "6":s[i] =6;break;
case "7":s[i] =7;break;
case "8":s[i] =8;break;
case "9":s[i] =9;break;
case "10":s[i] =10;break;
case "J":s[i] =11;break;
case "Q":s[i] =12;break;
case "K":s[i] =13;break;
case "A":s[i] =14;break;
case "2":s[i] =15;break;
}
}
// System.out.println(s[0] + " "+s[1]+ " "+s[2]+" "+s[3]);
// 玩家二
if(s[0]!=s[2]){
if(s[0]<s[2]){
shuMax = s[2];
index = 2;
Black in = new Black(paiku.paiku.get(index).Id, paiku.paiku.get(index).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(0).Name+")最大的手牌 是"+paiku.paiku.get(index).Name+paiku.paiku.get(index).Id);
}else{
shuMax = s[0];
index = 0;
Black in = new Black(paiku.paiku.get(index).Id, paiku.paiku.get(index).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(0).Name+")最大的手牌 是"+paiku.paiku.get(index).Name+paiku.paiku.get(index).Id);
}
}else{
if(p[0]<p[2]){
huaMax = 2;
Black in = new Black(paiku.paiku.get(huaMax).Id, paiku.paiku.get(huaMax).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(0).Name+")最大的手牌 是"+paiku.paiku.get(huaMax).Name+paiku.paiku.get(huaMax).Id);
}else{
huaMax = 0;
Black in = new Black(paiku.paiku.get(huaMax).Id, paiku.paiku.get(huaMax).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(0).Name+")最大的手牌 是"+paiku.paiku.get(huaMax).Name+paiku.paiku.get(huaMax).Id);
}
}
// 玩家二
if(s[1]!=s[3]){
if(s[1]<s[3]){
shuMax1 = s[3];
index1 = 3;
Black in = new Black(paiku.paiku.get(index1).Id, paiku.paiku.get(index1).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(1).Name+")最大的手牌 是"+paiku.paiku.get(index1).Name+paiku.paiku.get(index1).Id);
}else{
shuMax1 = s[1];
index1 = 1;
Black in = new Black(paiku.paiku.get(index1).Id, paiku.paiku.get(index1).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(1).Name+")最大的手牌 是"+paiku.paiku.get(index1).Name+paiku.paiku.get(index1).Id);
}
}else{
if(p[1]<p[3]){
huaMax = 3;
Black in = new Black(paiku.paiku.get(huaMax).Id, paiku.paiku.get(huaMax).Name);
la.lastlist.add(in);
System.out.println(" 玩家 ("+gamer.gamer.get(1).Name+")最大的手牌 是"+paiku.paiku.get(huaMax).Name+paiku.paiku.get(huaMax).Id);
}else{
Black in = new Black(paiku.paiku.get(huaMax).Id, paiku.paiku.get(huaMax).Name);
la.lastlist.add(in);
huaMax = 1;
System.out.println(" 玩家 ("+gamer.gamer.get(1).Name+")最大的手牌 是"+paiku.paiku.get(huaMax).Name+paiku.paiku.get(huaMax).Id);
}
}
for (Black obj : la.lastlist) {
Black cr = obj;
System.out.println(cr.Name+cr.Id);
}
//取出双方最大牌
for(int i=0;i<2;i++){
if(la.lastlist.get(i).Name =="黑桃"){
p[i] = 4;
}else if(la.lastlist.get(i).Name =="红桃"){
p[i] = 3;
}else if(la.lastlist.get(i).Name =="梅花"){
p[i] = 2;
}else if(la.lastlist.get(i).Name =="方片"){
p[i] = 1;
}
}
//System.out.println(p[0]+" " +p[1]);
for(int i=0;i<2;i++){
switch (la.lastlist.get(i).Id){
case "3":s[i] =3;break;
case "4":s[i] =4;break;
case "5":s[i] =5;break;
case "6":s[i] =6;break;
case "7":s[i] =7;break;
case "8":s[i] =8;break;
case "9":s[i] =9;break;
case "10":s[i] =10;break;
case "J":s[i] =11;break;
case "Q":s[i] =12;break;
case "K":s[i] =13;break;
case "A":s[i] =14;break;
case "2":s[i] =15;break;
}
}
//System.out.println(s[0]+" " +s[1]);
int over = 0;
int over1 = 0;
if(s[0]!=s[1]){
if(s[0]<s[1]){
over = 1;
System.out.println(" 赢家 ("+gamer.gamer.get(1).Name+")的手牌 是"+la.lastlist.get(over).Name+la.lastlist.get(over).Id);
}else{
over = 0;
System.out.println(" 赢家 ("+gamer.gamer.get(0).Name+")的手牌 是"+la.lastlist.get(over).Name+la.lastlist.get(over).Id);
}
}else{
if(p[0]<p[1]){
over1 = 1;
System.out.println(" 赢家 ("+gamer.gamer.get(1).Name+")的手牌 是"+la.lastlist.get(over1).Name+la.lastlist.get(over1).Id);
}else{
over1 = 0;
System.out.println(" 赢家 ("+gamer.gamer.get(0).Name+")的手牌 是"+la.lastlist.get(over1).Name+la.lastlist.get(over1).Id);
}
}
}
public void timer(){
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//毫秒
}
}