国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样

JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样

来源:程序员人生   发布时间:2014-11-07 09:09:41 阅读次数:2376次

zzzzZZZZ

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

package com.lovo; import java.awt.Graphics; import java.awt.Image; /** * 类 : 麻将牌 * @author Abe 属性:花色 点数 图片 */ public class Mahjong { private Suite suite; private int face; private Image image; /** * 构造器 * * @param suits * @param face * @param image */ public Mahjong(Suite suits, int face/*, Image image*/) { this.suite = suits; this.face = face; // this.image = image; } /** * 绘制1张牌 */ public void draw(Graphics g,int x ,int y){ g.drawImage(image, x, y, 50, 100, null); } /** * 输出1张牌的点数和花色 */ public String toString(){ String str = ""; switch (suite) { case CIRCLE: str += face + "筒"; break; case BAMBOO: str += face + "条"; break; case CHARACTER: str += face + "万"; break; } return str; } /** * 取得花色 和 点数 * @return */ public Suite getSuits() { return suite; } public int getFace() { return face; } }
2.1副麻将

package com.lovo; import java.awt.Image; import javax.swing.ImageIcon; /** * 类:1副麻将牌(108张) * * @author Abe 属性:牌面图片 1副牌 第多少张 */ 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() { Suite[] suites = {Suite.CIRCLE , Suite.BAMBOO , Suite.CHARACTER}; int[] faces = {1,2,3,4,5,6,7,8,9}; for (int i = 0 ; i < mah.length; i++ ){ mah[i] = new Mahjong(suites[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 + " "); if(i % 9 == 8){ System.out.println(""); } } } }
妥妥的~

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生