zzzzZZZZ

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;

}

/**

* 绘制一张牌

*/

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

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

}

/**

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

*/

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.一副麻将

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() {

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 + "\t");

if(i % 9 == 8){

System.out.println("");

}

}

}

}妥妥的~

java 麻将的发牌与洗牌_JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...相关推荐

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

    zzzzZZZZ 1.開始还想贴图的 实在太懒了-- 这是一张麻将 package com.lovo; import java.awt.Graphics; import java.awt.Image; ...

  2. java龟兔赛跑设计思路_JAVA程序设计(09)-----面对对象设计初级应用 龟兔赛跑

    1.乌龟和兔子共有属性和方法 做成父类 避免重复代码 package com.lovo; /** * 类: 动物 * @author Abe * 属性: 名字 步距 总距离 睡觉的日子 */ publ ...

  3. java奥特曼对战小怪兽_JAVA程序设计(09)-----面对对象设计初级应用 奥特曼打小怪兽...

    1.一个奥特曼固定属性 4个小怪兽随机名字 随机属性 奥特曼有几率发动暴风雪技能 对所有小怪兽造成 50%~60%冰霜伤害 无视防御力 普通攻击伤害为 攻击力*80~120% - 对方防御力*60%~ ...

  4. Java计算一个对象所占内存大小_Java程序计算各种对象所占内存的大小的方法

    System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.get ...

  5. java实验指导书(实验四)答案_java程序设计实验指导书答案

    ? 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的.狗通常的时候和人 打招呼会通过"摇摇尾巴",在被抚摸感到舒服的时候,会"旺旺叫",而在受到惊吓情 ...

  6. java的流传输的进度条_JAVA程序设计(17)----- 制作文件拷贝软件 进程 输入流输出流 NIO 进度条 底层拷贝 多线程...

    使用NIO对文件进行底层拷贝(按照字节)多线程技术初级应用 不阻塞程序运行 package com.lovo.homework01; import java.awt.event.ActionEvent ...

  7. java程序设计_Java程序设计-类和对象(笔记)

    1)类(Class)和对象(Object)是面向对象的核心概念. 类是对一类事物的描述,是抽象的.概念上的定义 对象是实际存在的该类事物的每个个体,因而也称为实例(instance). 2)" ...

  8. 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc

    PAGE \* MERGEFORMAT 20 成绩: JAVA编程B综合实验报告 实验名称:面向对象编程 实验时间:2012年 5月 31日星期四 JAVA编程B综合实验报告 一.实验名称 面向对象编 ...

  9. 易语言java类_易语言面对对象编程

    易语言面对对象编程---类的创建与使用 面对对象编程,可以说是当前最流行的编程方式,当前流行的面对对象的编程语言很多,如:C++.JAVA等等.易语言3.8版推出后,同样紧跟编程语言发展的方向,也开始 ...

最新文章

  1. uva 315 (poj 1144 求割点)
  2. 机器智能公司一览图 | 36氪
  3. HPE 的 OpenSwitch 项目得到 Linux 基金会支持
  4. 循环冗余码CRC使用matlab实现
  5. 不用eclipse创建第一个servlet
  6. Spring运行期间配置文件解析返回
  7. android 特效绘图,Android绘图机制与处理技巧——Android图像处理之图形特效处理...
  8. [css] 标签、class和id选择器三者的区别是什么?分别在什么时候用?
  9. 看mysql版本信息_查看mysql 的版本信息
  10. 根据某一字段值去重查找出所有字段的数据
  11. 2021美赛MCM选题
  12. Splitter和Joiner使用手册
  13. 洛谷P1427 小鱼的数字游戏
  14. Hdu2184汉诺塔VIII
  15. vue中关闭浏览器清除localStorage,并且刷新时保持状态不受影响
  16. 华为(访问控制列表ACL)
  17. 什么是深度学习以及它是如何工作的?
  18. dnf一直接收服务器信息失败怎么办,DNF近期出现的 接受频道信息失败 解决方法...
  19. java获取JTextfield值_[求助]JTextfield 取值问题!
  20. 基于自适应权重的缎蓝园丁鸟优化算法-附代码

热门文章

  1. 第二章:RocketMQ集群监控平台 rocketmq-console 搭建
  2. 泛函分析基础-如何证明l^∞是完备的度量空间
  3. python宿舍管理系統毕业设计源码231642
  4. java基础之throws关键字_繁星漫天_新浪博客
  5. 双向链表、环形链表及约瑟夫问题
  6. 雷军-我十年的程序员生涯
  7. 圆周分孔计算公式表图_在圆上分孔怎么计?
  8. ServiceHot ITSM助力天原集团IT运维信息化建设
  9. zbrush导入obj模型不显示_ZBrush中如何导入和导出OBJ文件—ZBrush教程
  10. 8口千兆工业级以太网光纤收发器 4光4电全千兆导轨式工业以太网交换机 宽温交换机