如何用Java写一个斗地主(一)
如何用Java写一个斗地主(一)
- 序言
- 正文
- 创建卡牌
- 打乱牌序
- 发牌
- 课后吐槽
序言
作为一名大三的普普通通大学生,被实习老师(?)强迫下,第一次开始写CSDN的博客,如果写的不好,请多多包涵咯。
正文
因为今天老师讲的是面向过程的方法,那就根据老师的过程一步步走下去,从创建卡牌,创建人物到洗牌发牌。
创建卡牌
创建卡牌主要需要确定斗地主的卡牌组成,根据目前斗地主的规则,每一副斗地主都需要有54张牌,除去大小王,剩下的还有各个花色的牌各13张,我们将每一张卡牌可以看作是花色与数字 的组合。因此我们创建三个动态数组。
List<String> pokes=new ArrayList<>();
List<String> colors=new ArrayList<>();
List<String> number=new ArrayList<>();
同时将花色与数字写入相应的数组。
colors.add("♥");colors.add("♦");colors.add("♠");colors.add("♣");number.add("A");for (int i=2;i<11;i++){number.add(i+"");}number.add("J");number.add("Q");number.add("K");
最后利用两次循环将卡牌写入卡牌池,并增加大小王牌。
for(String c:colors){for (String i:number){String card=c+i;pokes.add(card);}}pokes.add("Joker");pokes.add("The Joker");
打乱牌序
打乱牌序只需要用到很短的一行命令。
Collections.shuffle(pokes);
shuffle()是Collections下的静态方法,其中所有置换发生的可能性都是大致相等的,与现实的洗牌基本相同。
发牌
最后就是发牌及底牌的保留,每轮斗地主都拥有三名玩家,54张牌中最后三张作为底牌保留给地主,所以我们通过循环的方法将每一张牌发给玩家,以3张牌为发一轮。
ArrayList<String> first=new ArrayList<>();ArrayList<String> second=new ArrayList<>();ArrayList<String> third=new ArrayList<>();ArrayList<String> cover=new ArrayList<>();for(int i=0;i<pokes.size();i++){String card=pokes.get(i);if(i>=51){cover.add(card);}else {if(i%3==0){first.add(card);}else if(i%3==1){second.add(card);}else {third.add(card);}}}
课后吐槽
下一次开始就正式自己做,用面向对象的方法来完成整个作业的制作咯。
学校安排的课,自己做的选择,含着泪也要做完。
槽点不多:
1.众所周知,JetBrains在最近终于推出了官方中文,作为JetBrains对本土开发的支持,这本来是一件好事,而且中文也在不断改善,不知道为啥老师硬要觉得英文版好,并diss中文版,这只是个人选择和习惯的问题。
2.快捷键问题:
因为快捷键的不同,导致老师一些操作使用的快捷键和我们的快捷键设置不一样,但老师想要通过远程操作我们的电脑来查看我们Idea版本的快捷键,而不知道使用帮助——快捷键参考来查看快捷键。(可能因为英文版老师不知道功能?)
最后附上Idea2020.1.2的快捷键表,希望老师这次能看到咯
如何用Java写一个斗地主(一)相关推荐
- 如何用java写一个年日历
如何用java写一个年日历 没啥难的,话不多说上代码
- 用java写一个斗地主
写一个斗地主游戏是一个不错的编程练习,需要您掌握的技能包括对 Java 语言的熟练使用,以及对游戏规则.算法.图形界面设计等的理解. 下面是一些关于如何使用 Java 编写斗地主游戏的指导: 设计游戏 ...
- 手机java做贪吃蛇_如何用Java写一个贪吃蛇游戏
这是一位拓胜学员用Java写贪吃蛇游戏的心得:今天课程设计终于结束了自己学java没以前学C+那么用功了觉得我学习在哪里都是个开口向上的抛物线,现在应该在右半边吧,好了进入正题. 写java贪吃蛇也是 ...
- 如何用java写一个九九乘法表。
在java中写一个九九乘法表,我们只需要用一个for循环嵌套就可以了,我们先写一个for循环嵌套格式, for(;;){for(;;) 然后我们知道内循环和外循环所控制行和列,我们可以看出来九九乘法表 ...
- 如何用Java写一个聊天机器人
文章目录 建议结合新版教程看 写在前面的的话 免责声明 你需要提前会的东西 我们要使用的框架 首先我们先下载一个Demo 文件配置 Demo里面的的目录结构 在配置文件中加上你小号的QQ名字和密码 我 ...
- 如何用JAVA写一个简单的电脑客户端应用
前言: 我们学习了JAVA的application和applet,其中applet是需要打开编译软件或命令行才能弹出的那种窗口,和我们平时可以下载的软件不太一样.如何开发一个.exe文件? 其实和写正 ...
- 生活中日历随处可见,如何用java写一个简单的日历呢?
如果我们想要制作一个从1900年到当前年份的日历,并且打印当前年份, 首先我们要知道计算日历需要用到那些数据和知识? 目录 一.获取信息 二.代码实现 三.内容分析 四.学习总结 一.获取信息 1.闰 ...
- 5分钟学会Java写一个接口
今天学习了如何用Java写一个简单的接口,方法简单好用(本人是前端,后端小白) 用的软件是idea,框架是spring boot,在spring boot中创建我们需要的项目就可以开始了. 注:开始运 ...
- 面试题之如何用Java设计一个自动售货机
如何用Java设计一个自动售货机程序是一个非常好的Java面试题.大多数情况会在面试比较senior的Java开发者的时候出现.在一个典型的代码面试中,你需要在一定的时间内根据对应的条件完成相关的代码 ...
最新文章
- 二维码Data Matrix编码、解码使用举例
- [Usaco2007 Dec]穿越泥地[bfs][水]
- 做excel的时候要快速按照纬度的角度来分析构建:一个词语“纬度”
- 如何利用ESP8266模块实现远程控制
- PowerSploit-CodeExecution(代码执行)脚本渗透实战
- spring-junit4_基于Spring的应用程序-迁移到Junit 5
- Django model 字段类型及选项解析(一)
- html5怎么跟安卓交互,html5怎么与android交互
- python 爬虫代理_python 爬虫 使用代理 的问题
- Spring Boot(7)---构建系统和依赖管理
- OpenJDK和Java API区别_Linux下的JDK和OpenJDK有什么具体的区别
- Java 发展简史:初生遇低谷,崛起于互联网
- 大文件数据导出(后台执行,自动生成)
- ML.NET 发布0.11版本:.NET中的机器学习,具有TensorFlow和ONNX的新功能
- Python读取Access数据库基本操作
- ibatis学习(一)--ibatis介绍以及用例 [转]
- 微信小程序上传图片和文件
- iPhone13如何设置卡1和卡2收发信息
- dcp-9020cdn复印位置有_兄弟DCP-9020CDN打印机驱动下载
- 小学信息技术信息与计算机课件,小学信息技术ppt课件