




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/自动生成麻将牌 无算法版package MaJiangPai;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Random;import java.util.Set;import java.util.regex.Pattern;/* * 麻将 * author * */public class Majiangtest static final String str = new String144;/将麻将定义为一个长度为144的字符串数组static final int PLAYER = 4;/4个玩家static final int CARDS = 13;/每玩家13张牌static final String NUMBER = 一, 二, 三, 四, 五, 六, 七, 八, 九 ; /万,筒,条 公共常量static final String WIND = 东风, 南风, 西风, 北风, 中风, 发财, 白皮 ;static final String WANGPAI = 春, 夏, 秋, 冬, 梅, 兰, 竹, 菊 ;public static void main(String args) Majiangtest majiang = new Majiangtest();System.out.println(正在初始化麻将.);/初使化麻将majiang.init();System.out.println(麻将初始化完成.);System.out.println(正在洗牌.);/将麻将牌打乱顺序(洗牌)majiang.rand(str);System.out.println(洗牌完成.);System.out.println(开始发牌.) ;/牌洗好准备发牌Map map = majiang.fapai(str);Set set = map.keySet(); / key装到set中Iterator it = set.iterator(); / 返回set的迭代器 装的key值while (it.hasNext() Integer key = (Integer) it.next();String value = map.get(key);System.out.println(玩家 +key+ 开始排序.) ;/牌排序List list = majiang.zhengli(value) ;System.out.print(玩家 +key+ 排序完成: ) ; for(int i = 1; i list.size(); i +) System.out.print(list.get(i) + ) ;System.out.println(n);/* * 第一步:初使化麻将 */public void init() / 用n表示数组 str 的下标int n = 0; / 表示一样的牌有四张(筒,萬,条,东,南,西,北,中,发,白)for (int k = 0; k 4; k+) /* 筒,萬,条 */for (int i = 1; i 4; i+) / 1 - 代表万, 2 - 代表条 , 3 - 代表筒for (int j = 1; j 10; j+) / 1- 代表 一,2- 代表二. / 將數組str復值,(11 代表 一万,12代表一筒13代表 一条.)strn = + i + + j + ;/ 改变数组的下标n+; /* ,东,南,西,北,中,发,白 */for (int m = 0; m 7; m+) strn = WINDm;n+;/* 春,夏,秋,冬,梅,兰,竹,菊 */for (int i = 0; i 8; i+) /春,夏,秋,冬,梅,兰,竹,菊各只有一张牌strn = WANGPAIi;n+;/* * * 第二步:洗牌 * param ma初使化好了的麻将牌 * return */public String rand(String ma) / 用Random类的nextInt()方法打乱数组str中各元素的顺序以达到洗牌的目的Random rand = new Random();String temp = ;int n;for (int i = 0; i str.length; i+) n = rand.nextInt(144);temp = mai;mai = man;man = temp;return ma;/* * 第三步:发牌 * 用Map来保存玩家与玩家把对应的牌 * param str:打乱了顺序的144张牌 * return */public Map fapai(String str) /定map集合,将玩家与玩家的牌以键对值的关系保存在Map集合中Map map = new HashMap(); /定义list集合,将144张洗好的牌放入list集合中List list1 = new ArrayList();for (int j = 0; j str.length; j+) / 将牌放入list集合中list1.add(strj);for (int i = 1; i = PLAYER; i+) /有四个玩家/定义s数组,保存玩家的麻将String s = new String14 ;/用n改变数组s下标int n = 0 ;for (int j = 0; j CARDS + 1; j+) /一个玩家给十三张牌sn = list1.get(j) ;n+ ;/删去以发过的牌list1.remove(list1.get(j);map.put(i, s);return map;/* * 第四步:对玩家的牌进行整理,即实现:牌按万条筒风牌排序,输出时要把11显示为一万 * param str1:每位玩家的牌 * return */public List zhengli(String str1) List list = new ArrayList();/将数组进行排序即按(万、条、筒、其它进行排序)for (int i = 0; i = 11& Integer.parseInt(str1i) = 21& Integer.parseInt(str1i) = 31& Integer.parseInt(str1i) = 39) /筒int index = Integer.parseInt(String) str1i.subSequence(1, 2);String s = NUMBERindex - 1 + 筒;list.add(s); else /其它牌list.add(str1i);return list;/下班倒计时工具第一步:方法类package TimeCounter;import java.awt.FlowLayout;import java.awt.event.*;import java.text.SimpleDateFormat;import java.util.Calendar;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JTextField;import javax.swing.JOptionPane;public class TimeCount extends JFrame implements ActionListener, Runnable /* * */private static final long serialVersionUID = 1L;private JButton start;private JTextField in;private JLabel lbNow, lbNowTitle, lbLeftSecTitle, lbLeftSec, lbLeftMinTitle, lbLeftMin, lbMin;private Thread clocker,time;long startTime,endTime;long nowTime,leftTime,leftSec,leftMin;boolean flag=false;public TimeCount()this.setLayout(new FlowLayout();this.setResizable(false);this.setSize(200,170);this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLocation(830,580);initUI();clocker =new Thread(this,clock);clocker.start();time=new Thread(this,ti);time.start();public void initUI()lbNowTitle=new JLabel(现在的时间是:);lbNow = new JLabel();lbLeftSecTitle = new JLabel(距离下班还有:);lbLeftSec=new JLabel(未设置);lbLeftMinTitle = new JLabel(距离下班还有:);lbLeftMin = new JLabel(未设置);lbMin = new JLabel(下班倒计时);in = new JTextField(5);start = new JButton(开始);start.addActionListener(this);this.add(lbNowTitle);this.add(lbNow);this.add(lbLeftSecTitle);this.add(lbLeftSec);this.add(lbLeftMinTitle);this.add(lbLeftMin);this.add(lbMin);this.add(in);this.add(start);Overridepublic void actionPerformed(ActionEvent e) if(e.getSource()=start)Calendar startCalendar = Calendar.getInstance();startTime = startCalendar.getTime().getTime();endTime = startTime + Long.parseLong(in.getText()*1000;flag=true;Overridepublic void run() SimpleDateFormat dateFormat = new SimpleDateFormat(hh:mm:ss);Calendar now;while(Thread.currentThread().getName().equals(clock)now = Calendar.getInstance();nowTime = now.getTime().getTime();lbNow.setText(dateFormat.format(now.getTime();while(Thread.currentThread().getName().equals(ti)while(flag)leftTime = endTime - nowTime;leftSec = leftTime/1000;leftMin = leftTime/(60*1000);lbLeftSec.setText(leftSec+秒);lbLeftMin.setText(leftMin+分);if(leftSec = 0)flag = false;JOptionPane.showMessageDialog
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业产业强镇建设资金申请项目资金使用管理与风险防范报告
- 2025年事业单位工勤技能-安徽-安徽客房服务员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽动物检疫员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽中式烹调师四级(中级工)历年参考题库含答案解析
- Dimethyl-biphenyl-4-4-dicarboxylate-Standard-生命科学试剂-MCE
- 6-Thioguanosine-Standard-生命科学试剂-MCE
- 1-3-5-Tribromo-2-iodobenzene-d2-2-4-6-Tribromoiodobenzene-d-sub-2-sub-生命科学试剂-MCE
- 招聘过程中企业文化匹配技巧面试题
- 网工基础测试题及答案
- 国企招聘面试技巧:央企入职面试题目的常见问题解答精 编
- 2025年法检系统书记员招聘考试(申论)历年参考题库含答案详解(5套)
- 2025年幼儿园教师《指南》《幼儿教师专业标准》学习测试题(附答案)
- (2025年标准)夜市经营协议书
- 加油站雷电安全知识培训课件
- 办公自动化使用教材课件
- 2025年专业士官考试题库
- 新版2025心肺复苏术指南
- T-NAHIEM 101-2023 急诊科建设与设备配置标准
- GB/Z 43281-2023即时检验(POCT)设备监督员和操作员指南
- 鼻骨及眼眶骨折的CT诊断课件
- 房屋拆除工程监理规划
评论
0/150
提交评论