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程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样的更多相关文章
- JAVA程序设计(12.3)---- 监听器0基础应用:五子棋
1.制作五子棋游戏软件 由于老师已经基本做完了.重做的时候快了非常多--可是还是感觉思维非常混乱-- 哪边先哪边后,哪个方法在哪边好之类的问题 太纠结了-- 先是窗体 内部类:鼠标适配器 窗体的构造 ...
- Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观
Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java ...
- 《Java程序设计》第三章-基础语法
20145221<Java程序设计>第三章-基础语法 总结 教材学习内容总结 类型.变量与运算符 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Typ ...
- C++分享笔记:扑克牌的洗牌发牌游戏设计
笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏.具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌.然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等. ...
- java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
package com.swift.poker; import java.util.ArrayList; import java.util.Collections; /*训练考核知识点:Collect ...
- 【CUDA 基础】5.6 线程束洗牌指令
title: [CUDA 基础]5.6 线程束洗牌指令 categories: - CUDA - Freshman tags: - 线程束洗牌指令 toc: true date: 2018-06-06 ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- Java程序设计11——GUI设计与事件处理B
4 Java事件模型的流程 为了使图形界面能够接收用户的操作,必须给各个组件加上事件处理机制. 在事件处理的过程中,主要涉及3类对象: 1.Event Source(事件源):事件发生的场所,通常就是 ...
- Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)
规则: 1.54张扑克牌,有花色 2.顺序打乱,一人一张依次发牌,一人17张,留三张作为底牌 3.看牌:按大小王2A....43的序排列打印 示例: package demo; import java ...
随机推荐
- sql server drop login failed
https://stackoverflow.com/questions/37275/sql-query-for-logins https://www.mssqltips.com/sqlserverti ...
- poj1700--贪心--Crossing River
Crossing River Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12260 Accepted: 4641 D ...
- 负载均衡获得真实源IP的6种方法
除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种. 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配置. 负载均衡获得真实IP的方法有很多种,将形成专题文章. 本文 ...
- Hadoop MapReduce编程 API入门系列之多个Job迭代式MapReduce运行(十二)
推荐 MapReduce分析明星微博数据 http://git.oschina.net/ljc520313/codeexample/tree/master/bigdata/hadoop/mapredu ...
- Google浏览器“无法添加来自此网站的应用、扩展程序和应用脚本”的解决办法
原文链接:https://blog.csdn.net/Fan_Weibin/article/details/80402790 解决方法如下: 在桌面找到Google Chrome图标→右击属性→在快捷 ...
- Redis入门笔记-redis内部数据结构(01)
redis是一个轻量级的Nodsql数据库,使用kev-value的形式存储数据,在redis的世界里,没有整数.浮点数等概念,大多数情况下数据以字符串形式展现,偶尔会出现Long类型数据的场景. 一 ...
- C#模拟按键
try { System.Threading.Thread.Sleep(); ; i < ; i++) { SendKeys.SendWait("{ENTER}"); Sen ...
- 学了5天Arm,今天谈谈初学感受 (转)
一.初探 4月1日入手友善mini2440.先看了下板子,感觉没什么稀奇的,s3c2440总线上外挂SDRAM(对这个不是很感冒,之前搞过一个FPGA的SDRAM控制器),NOR . ...
- 在Linux Centos 7.2 上安装指定版本Docker 17.03
相关资料链接: https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce 先清空下“历史” yum insta ...
- 路飞学城Python-Day137
django项目二 个人博客系统 github地址:https://github.com/pandaboy1123/cnblog