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("");
}
}
}
}妥妥的~
java 麻将_JAVA程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...相关推荐
- java 麻将的发牌与洗牌_JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...
zzzzZZZZ 1.开始还想贴图的 实在太懒了-- 这是一张麻将 package com.lovo; import java.awt.Graphics; import java.awt.Image; ...
- c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...
序号: 30 学号: 课 程 设 计 设计课程名称: C语言程序设计 题 目:多功能计算器.洗牌发牌.学生文件处理.链表处理 学 生 姓 名: 学 院(系):信息科学与工程学院 专 业 班 级: 指 ...
- java龟兔赛跑设计思路_JAVA程序设计(09)-----面对对象设计初级应用 龟兔赛跑
1.乌龟和兔子共有属性和方法 做成父类 避免重复代码 package com.lovo; /** * 类: 动物 * @author Abe * 属性: 名字 步距 总距离 睡觉的日子 */ publ ...
- java奥特曼对战小怪兽_JAVA程序设计(09)-----面对对象设计初级应用 奥特曼打小怪兽...
1.一个奥特曼固定属性 4个小怪兽随机名字 随机属性 奥特曼有几率发动暴风雪技能 对所有小怪兽造成 50%~60%冰霜伤害 无视防御力 普通攻击伤害为 攻击力*80~120% - 对方防御力*60%~ ...
- 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏
斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...
- java实现斗地主洗牌发牌功能
设计思路 初始化54张牌 洗牌 发牌 给玩家手牌排序 展示玩家手牌及3张底牌 实现思路 首先是54张牌要选择一种数据结构存放,这里选择List和Map集合都可以,我这里选择的是Map 要区分4种花色, ...
- java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化
1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...
- 模拟斗地主洗牌发牌-JAVA
1.1案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1.组装54张扑克牌 2.将54张牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,,每人17张牌,最后三张留作底牌. 4.查看三人各 ...
- Java项目:模拟扑克牌洗牌发牌排序
用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...
最新文章
- echo -e 参数
- vim代码格式化工具autopep8
- 淘宝助手 替代品!【淘宝登货员】研发中
- ASP.NET企业开发框架IsLine FrameWork系列之十五--框架配置信息大全(下)
- NYOJ--C语言---Fibonacci数递归迭代两种解法
- Python中变量判断
- .svc接口客户端调用_K8s:调用Java接口创建容器
- Java - 常用函数Random函数
- 编写代码模拟三次密码输入的场景。
- nc文件的读取与写入
- 2016ICPC北京现场赛打铁退役之旅
- dsolve函数的功能_MATLAB求解常微分方程:ode45函数与dsolve函数
- cc攻击的原理和处理方式
- 我的Java学习之路(三)-- 自动饮料售卖机控制台程序
- ubuntu20.04中打开echo daytime服务
- 单神经元PID控制(Simulink仿真+PLC代码)
- HTTP协议详解由浅入深看HTTP
- linux 摄像头 音频,调用宇视摄像机SDK获取IPC的音视频码流
- SIMCom常见模组外围电路设计
- 植物根系水力再分配测定与模拟
热门文章
- 入驻宣言:凡所见,皆可杀
- 苹果三代耳机_链接2020.6.13其他团无线蓝牙耳机
- 【Datawhale|天池】心跳信号分类预测 (4) - 模型 之 XGBoost
- 设计模式之过滤器模式(摘自菜鸟驿站)
- dx绘制2d图像_在DirectX 中进行2D渲染
- 初识3D Game——战地3,使命召唤8:现代战争3,Crysis 2:孤岛危机2
- 企业邮箱搭建模式优劣分析
- Python BeautifulSoup
- sql中intersect_INTERSECT –谓词中被低估的双向
- python面向对象编程结题报告_《华东师大基于点猫KITTEN计算思维课程开发》结题...