java 麻将_JAVA程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...

zzzzZZZZ

1.開始还想贴图的 实在太懒了…… 这是一张麻将

package com.lovo;

import java.awt.Graphics;

import java.awt.Image;

/**

* 类 : 麻将牌

* @author Abe 属性:花色 点数 图片

*/

public class Mahjong {

private Suits suits;

private int face;

private Image image;

/**

* 构造器

*

* @param suits

* @param face

* @param image

*/

public Mahjong(Suits suits, int face/*, Image image*/) {

this.suite = suits;

this.face = face;

//this.image = image;

}

/**

* 绘制一张牌

*/

public void draw(Graphics g,int x ,int y){

g.drawImage(image, x, y, 50, 100, null);

}

/**

* 输出一张牌的点数和花色

*/

public String toString(){

String str = "";

switch (suits) {

case CIRCLE:

str += face + "筒";

break;

case BAMBOO:

str += face + "条";

break;

case CHARACTER:

str += face + "万";

break;

}

return str;

}

/**

* 获得花色 和 点数

* @return

*/

public Suits getSuits() {

return suits;

}

public int getFace() {

return face;

}

}2.一副麻将

package com.lovo;

import java.awt.Image;

import javax.swing.ImageIcon;

/**

* 类:一副麻将牌(108张)

*

* @author Abe 属性:牌面图片 一副牌 第多少张

*/

public class Mahjongs {

//private static Image[] images = new Image[36];

private Mahjong[] mah = new Mahjong[108];

private int sheet = 0;

//static {// 静态载入器

//for (int i = 0; i < images.length; i++) {

//ImageIcon icon = new ImageIcon("mahjong/" + (i + 1) + ".jpg");

//for(int j = 0 ; j < 4 ; j++){

//images[i * 4 + j] = icon.getImage();

//}

//}

//}

/**

* 构造器 初始化

*/

public Mahjongs() {

Suits[] suits = {Suits.CIRCLE , Suits.BAMBOO , Suits.CHARACTER};

int[] faces = {1,2,3,4,5,6,7,8,9};

for (int i = 0 ; i < mah.length; i++ ){

mah[i] = new Mahjong(suits[i / 36], faces[i % 9]/*, images[i]*/);

}

}

/**

* 行为 : 洗牌

*/

public void stuffle(){

for (int n = 0; n < 500; n++) {

int i = (int) (Math.random() * 108);

int j = (int) (Math.random() * 108);

Mahjong temp;

temp = mah[i];

mah[i] = mah[j];

mah[j] = temp;

}

}

/**

* 行为: 发牌

*/

public Mahjong deal(){

return sheet < mah.length ?

mah[sheet++] : null; //这句还是有点模糊 要在输出sheet之后再++的么?

}

public Mahjong[] getAll(){

return mah;

}

}

3.打印

package com.lovo;

/**

* 麻将

* @author Abe

*

*/

public class TestMah {

public static void main(String[] args) {

Mahjongs mahj = new Mahjongs();

Mahjong one = null;

mahj.stuffle();

for(int i = 0 ; i < 108 ; i++){

one = mahj.deal();

System.out.print(one + "\t");

if(i % 9 == 8){

System.out.println("");

}

}

}

}妥妥的~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值