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

妥妥的~

posted on 2017-06-04 18:46 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/6941447.html

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

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

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

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

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

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

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

  4. 翁凯java程序设计总结(基于C语言基础上)

    ` 翁凯java程序设计总结(基于C语言基础上) 翁恺 Java程序设计B站视频链接 目录 文章目录 翁凯java程序设计总结(基于C语言基础上) 目录 p42逃逸字符 P52用类创造对象 P55对象 ...

  5. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

    Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  ...

  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. 编程模拟洗牌和发牌过程c语言,洗牌发牌模拟系统课程设计报告.doc

    集美大学诚毅学院 <高级语言程序设计>课程设计 实验报告 题目:洗牌和发牌模拟 专业:计算机科学与技术 班级: 姓名: 成绩: 指导教师: 完成日期:2008 年 6月 26 日 一.目的 ...

  10. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)

    首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...

最新文章

  1. android手机上的ancs,Android BLE开发之操作IOS ANCS
  2. Load data local infile 实验报告
  3. 扎心了!年薪100万,却还不起5000块的信用卡
  4. python开发web运维工具_Python web 开发工具箱
  5. 一个打印螺旋数的程序
  6. 64. Minimum Path Sum 最小路径和
  7. Java基础:int和Integer的区别
  8. Nginx 实战(一) 集群环境搭建
  9. stl max函数_C ++ STL中带有示例的array :: max_size()函数
  10. [转载] python更新numpy_Python numpy从1.6更新到1.8
  11. [转载]如何学习ANSYS?
  12. python 中读取yaml
  13. “后T+0”时代:基金电商人以变应变
  14. VB6.0鼠标注册详细教程
  15. java 将map转List对象
  16. 电商后台管理系统项目介绍和项目初始化
  17. UPC6605 所罗门王的宝藏
  18. win7计算机窗口左边被改了,win7电脑开始菜单变成经典模式?三种方法教你改回来...
  19. 鲲鹏芯片的服务器,鲲鹏处理器及服务器介绍.pdf
  20. AltiumDesigner快捷键——SCH和SCHLIB编辑快捷键

热门文章

  1. 关于动态库和静态库的总结
  2. anaconda 换源_Anaconda下安装tensorflow1.15过程记录
  3. parallel(parallelStream)并发问题
  4. Android开机设置自启动
  5. java解释器是哪个命令_宽恕命令解释器的最佳Java库(IES)
  6. 【渝粤题库】陕西师范大学165101社会学 作业(高起专)
  7. 【NIPS 2017】基于深度强化学习的想象力增强智能体
  8. 东北大学 最优化期末复习 简答题总结
  9. 人脸识别 Face Recognition安装使用
  10. @NOIP2018 - D1T1@ 铺设道路