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("");

}

}

}

}妥妥的~

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

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

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

  2. c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...

    序号: 30 学号: 课 程 设 计 设计课程名称: C语言程序设计 题 目:多功能计算器.洗牌发牌.学生文件处理.链表处理 学 生 姓 名: 学 院(系):信息科学与工程学院 专 业 班 级: 指 ...

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

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

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

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

  5. 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...

  6. java实现斗地主洗牌发牌功能

    设计思路 初始化54张牌 洗牌 发牌 给玩家手牌排序 展示玩家手牌及3张底牌 实现思路 首先是54张牌要选择一种数据结构存放,这里选择List和Map集合都可以,我这里选择的是Map 要区分4种花色, ...

  7. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  8. 模拟斗地主洗牌发牌-JAVA

    1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...

  9. Java项目:模拟扑克牌洗牌发牌排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

最新文章

  1. echo -e 参数
  2. vim代码格式化工具autopep8
  3. 淘宝助手 替代品!【淘宝登货员】研发中
  4. ASP.NET企业开发框架IsLine FrameWork系列之十五--框架配置信息大全(下)
  5. NYOJ--C语言---Fibonacci数递归迭代两种解法
  6. Python中变量判断
  7. .svc接口客户端调用_K8s:调用Java接口创建容器
  8. Java - 常用函数Random函数
  9. 编写代码模拟三次密码输入的场景。
  10. nc文件的读取与写入
  11. 2016ICPC北京现场赛打铁退役之旅
  12. dsolve函数的功能_MATLAB求解常微分方程:ode45函数与dsolve函数
  13. cc攻击的原理和处理方式
  14. 我的Java学习之路(三)-- 自动饮料售卖机控制台程序
  15. ubuntu20.04中打开echo daytime服务
  16. 单神经元PID控制(Simulink仿真+PLC代码)
  17. HTTP协议详解由浅入深看HTTP
  18. linux 摄像头 音频,调用宇视摄像机SDK获取IPC的音视频码流
  19. SIMCom常见模组外围电路设计
  20. 植物根系水力再分配测定与模拟

热门文章

  1. 入驻宣言:凡所见,皆可杀
  2. 苹果三代耳机_链接2020.6.13其他团无线蓝牙耳机
  3. 【Datawhale|天池】心跳信号分类预测 (4) - 模型 之 XGBoost
  4. 设计模式之过滤器模式(摘自菜鸟驿站)
  5. dx绘制2d图像_在DirectX 中进行2D渲染
  6. 初识3D Game——战地3,使命召唤8:现代战争3,Crysis 2:孤岛危机2
  7. 企业邮箱搭建模式优劣分析
  8. Python BeautifulSoup
  9. sql中intersect_INTERSECT –谓词中被低估的双向
  10. python面向对象编程结题报告_《华东师大基于点猫KITTEN计算思维课程开发》结题...