package test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ConsolePPTest extends JFrame implements ActionListener{
private static final String COLOR_WAN = "wan";
private static final String COLOR_TIAO = "tiao";
private static final String COLOR_TONG = "tong";
private static final String DONG = "dong";
private static final String NAN = "nan";
private static final String XI = "xi";
private static final String BEI = "bei";
private static final String ZHONG = "zhong";
private static final String FA = "fa";
private static final String BAI = "bai";
private static final String PATH = "D:\\wzq\\majiang\\picture\\";
private static String[] shouOfEast = new String[13];
private static String[] shouOfSouth = new String[13];
private static String[] shouOfWest = new String[13];
private static String[] shouOfNorth = new String[13];
every mj[]=new every[137];// 有137麻将,every[0]没有用
int currentmj;// 没有被摸的牌的第一张
int currentPlayer;// 当前玩家
int jbDown=-1;// 用户已经点击的按钮
every nowMj=null;// 各位玩家打出来的牌
JLabel nowMajiang= new JLabel("");// 用于显示当前玩家打出来的牌
JLabel nowMajiang1=new JLabel("");//
JLabel nowMajiang2=new JLabel("");//
JLabel nowMajiang3=new JLabel("");//
JLabel no =new JLabel("");
JLabel winned =new JLabel("");
boolean op=false;// 用于判断是否是用户可以操作
boolean op2=false;
Player competitor[]=new Player[6];// 构造6为玩家,实际玩家只有两位,后两位用作容器来判断其他玩家牌的特征
JPanel jp=new JPanel();// 窗口
JPanel win=new JPanel();
JButton jb[]= new JButton[14];// 创建14个人按钮,用于显示用户的牌
JButton jbTouch = new JButton("碰");
JButton jbKong= new JButton("杠");
JButton jbWin = new JButton("胡");
JButton jbPass= new JButton("过");
JButton jbWin2=new JButton("自摸");
JButton sure= new JButton("确定");
JLabel jl[]= new JLabel[14];// 闯将14个书签,用于显示用户碰或者杠的牌
ImageIcon img1= new ImageIcon("D:\\wzq\\majiang\\picture\\diaonao1.jpg");
ImageIcon img2= new ImageIcon("D:\\wzq\\majiang\\picture\\diaonao2.jpg");
ImageIcon img3= new ImageIcon("D:\\wzq\\majiang\\picture\\diaonao3.jpg");
JLabel jlCom1= new JLabel(img1);
JLabel jlCom2= new JLabel(img2);
JLabel jlCom3= new JLabel(img3);
CardLayout cl=new CardLayout();// 使用空白布局
every lit= new every();
public void initialize()// 初始化
{
for(int i=0; i<=136; i++) // 初始化136张牌
mj[i]=new every();
for(int i=0; i<=5; i++) // 初始化6位玩家
competitor[i]= new Player();
for (int i = 0; i < mj.length; i++) {
if (i<36) {
mj[i].setName(COLOR_WAN);
}else if (i>=36 && i<72) {
mj[i].setName(COLOR_TIAO);
}else if (i>=72 && i<108){
mj[i].setName(COLOR_TONG);
}else if (i>=108 && i<112){
mj[i].setName(DONG);
}else if (i>=112 && i<116){
mj[i].setName(NAN);
}else if (i>=116 && i<120){
mj[i].setName(XI);
}else if (i>=120 && i<124){
mj[i].setName(BEI);
}else if (i>=124 && i<128){
mj[i].setName(ZHONG);
}else if (i>=128 && i<132){
mj[i].setName(FA);
}else if (i>=132 && i<136){
mj[i].setName(BAI);
}
}
for (int i = 0; i < 136; i++) {
if(i<108){
mj[i].setName((i%9+1)+mj[i].getName());
}
mj[i].setImg(PATH+mj[i].getName()+".jpg");
}
System.out.println(mj.length);
for(every e:mj){
System.out.println(e.getAllmj());
}
}
public void riffle()// 洗牌
{
for( int i=0; i<136; i++)
{
int j=((int)(Math.random()*10000))%(136-i)+i;
every temp;
temp=mj[i];
mj[i]=mj[j];
mj[j]=temp;
}
}
public void deal()// 发牌
{
for(int i=0; i<=13; i++)
{
competitor[0].hold[i]=mj[i*4];
competitor[1].hold[i]=mj[i*4+1];
competitor[2].hold[i]=mj[i*4+2];
competitor[3].hold[i]=mj[i*4+3];
}
}
public every getMj()// 摸牌
{
if(currentmj==137)
peace();// 最后一张牌,和局
int i=currentmj;
currentmj++;
return mj[i];
}
public void sort_mj(Player[] a, int j) // 排序玩家手里的牌
{
every[] mahjong = a[j].hold;
String[] names=new String[14];
every[] newMahjong=new every[mahjong.length];
int index=0;
for (int i = 0; i < mahjong.length; i++) {
if(mahjong[i].getName()!=null){
names[index++]=mahjong[i].getName();
}
}
Arrays.sort(names);
for (int i = 0; i < mahjong.length; i++) {
mahjong[i].setName(names[i]);
mahjong[i].setImg(PATH+names[i]+".jpg");
}
int point = 0;
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("wan")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("tiao")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("tong")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("dong")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("nan")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("xi")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("bei")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("zhong")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("fa")) {
newMahjong[point] = mahjong[i];
point++;
}
}
for (int i = 0; i < mahjong.length; i++) {
if (mahjong[i].getName().contains("bai")) {
newMahjong[point] = mahjong[i];
point++;
}
}
a[j].hold=newMahjong;
System.out.println("+++++++++++++++++++++++++++++++++");
for(every e:a[j].hold){
System.out.println(e.getAllmj());
}
System.out.println("+++++++++++++++++++++++++++++++++");
}
public void piGetWin(int c,int a)// 电脑玩家赢了
{
if(a==c)
winned.setText("玩家"+c+"赢了,他自摸");
else if (a!=0)
winned.setText("玩家"+c+"赢了,玩家"+(a+1)+"放炮");
else
winned.setText("玩家"+c+"赢了,您放炮");
win.add(winned);
win.setVisible(true);
this.add(win);
this.setBounds(300,300,300,300);
jp.setVisible(false);
}
public void peace()
{
winned.setText("和局");
win.add(winned);
win.setVisible(true);
this.add(win);
this.setBounds(300,300,300,300);
jp.setVisible(false);
}
public void playerGetWin(int a)// 玩家赢了
{
if(a==0)
winned.setText("You winned! 您自摸");
else
winned.setText("You winned! 玩家"+(a+1)+"放炮");
win.add(winned);
win.setVisible(true);
this.add(win);
this.setBounds(300,300,300,300);
jp.setVisible(false);
}
/*
public int jiang(int i, int j,Player[]a, int c,int[] b)
{
for(int k=i; k<=j;k++)
{
if(a[c].hold[k].getNumber()==10){
if(a[c].hold[k].getColor()==a[c].hold[k+1].getColor()){
if(ok(i,k,a,c,b)==1)
return 1;
}
}else{
if(a[c].hold[k].getNumber()==a[c].hold[k+1].getNumber())
{
if(ok(i,k-1,a,c,b)==1&&ok(k+2,j,a,c,b)==1)
return 1;
}
}
}
return 0;
}
public boolean If_Touch(every e,Player[]a,int c)// 判断是否可以碰牌
{
for(int i=1;i<=17;i++)
没有合适的资源?快使用搜索试试~ 我知道了~
java 麻将小游戏
共66个文件
jpg:37个
class:9个
java:9个
3星 · 超过75%的资源 需积分: 43 132 下载量 129 浏览量
2017-02-15
11:35:17
上传
评论 5
收藏 241KB ZIP 举报
温馨提示
java 麻将小游戏 136张牌
资源推荐
资源详情
资源评论
收起资源包目录
majiang170215.zip (66个子文件)
majiang170215
bin
test
newTest.class 4KB
Player.class 1KB
every.class 2KB
ConsolePPTest.class 15KB
majiang
CoOfConsolePP.class 18KB
CopyConsolePP.class 17KB
Player.class 1KB
every.class 2KB
ConsolePP.class 17KB
picture
9wan.jpg 2KB
bai.png 6KB
2tong.jpg 2KB
diaonao2.jpg 4KB
bei.png 6KB
zhong.png 8KB
9tong.jpg 6KB
4tiao.jpg 2KB
2wan.jpg 2KB
7wan.jpg 2KB
8wan.jpg 2KB
8tiao.jpg 3KB
3wan.jpg 2KB
dong.png 6KB
xi.png 6KB
nan.png 7KB
6tong.jpg 3KB
fa.png 7KB
1tiao.jpg 2KB
5tong.jpg 2KB
bai.jpg 6KB
2tiao.jpg 2KB
4wan.jpg 2KB
fa.jpg 7KB
diaonao3.jpg 5KB
4tong.jpg 2KB
diaonao1.jpg 5KB
nan.jpg 7KB
9tiao.jpg 3KB
8tong.jpg 3KB
5tiao.jpg 2KB
zhong.jpg 8KB
7tiao.jpg 2KB
dong.jpg 6KB
1tong.jpg 2KB
5wan.jpg 2KB
6wan.jpg 2KB
1wan.jpg 2KB
7tong.jpg 3KB
3tong.jpg 2KB
6tiao.jpg 3KB
xi.jpg 6KB
3tiao.jpg 2KB
bei.jpg 6KB
.settings
com.genuitec.eclipse.core.prefs 94B
org.eclipse.jdt.core.prefs 598B
src
test
every.java 2KB
Player.java 624B
ConsolePPTest.java 25KB
newTest.java 4KB
majiang
CopyConsolePP.java 21KB
ConsolePP.java 21KB
every.java 1KB
Player.java 627B
CoOfConsolePP.java 23KB
.project 383B
.classpath 301B
共 66 条
- 1
资源评论
- fei2016912018-03-15很详细,让我对Java的各种知识更加熟悉,并且有助于我把知识体系总结了一下
- a5155444592017-10-09能跑,不能出牌,没有AI,一开要么莫名其妙胡,要么就不理你
qq_35091994
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功