Java纸牌拖拉机简单模拟
生活随笔
收集整理的這篇文章主要介紹了
Java纸牌拖拉机简单模拟
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有天跟前任玩紙牌的拖拉機(jī),來來回回玩了好長時(shí)間,分不出勝負(fù),當(dāng)時(shí)就在想,這玩意能分出勝負(fù)嗎?于是心血來潮就想寫一個(gè)程序模擬一下,看到底能不能分出勝負(fù),寫出來了,能分出勝負(fù),但貌似哪里還有點(diǎn)問題,總共52張牌,到最后游戲結(jié)束,有時(shí)候剩四十多牌,有時(shí)候剩53、52張牌,不知道其牌去哪了哈哈,先扔著吧,有時(shí)間再看看。
import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** ClassName:Test <br/>* Date: 2018年9月24日 上午9:51:37 <br/>* * @author Plum*/ public class Tractor {public static void main(String[] args) {// 模擬去除兩張王的52張撲克牌List<Integer> puke = new ArrayList<Integer>();for (int i = 1; i < 14; i++) {for (int j = 0; j < 4; j++) {puke.add(i);}}System.out.println("撲克牌模擬完畢。。。。。。。。");// 洗牌 Collections.shuffle(puke);List<Integer> person1 = new ArrayList<Integer>();List<Integer> person2 = new ArrayList<Integer>();for (int i = 0; i < puke.size(); i++) {if (i < puke.size() / 2) {person1.add(puke.get(i));} else {person2.add(puke.get(i));}}List<Integer> pub = new ArrayList<Integer>();do {// 第一個(gè)人先出牌int t = person2.get(0);pub.add(t);person2.remove(0);System.out.println("甲出牌:" + t);// 判斷最后一張牌和前面的每一張是否相等,相等則拿走// 拿到最后一張牌if (pub.size() > 1) {int first = -1;int l = pub.get(pub.size() - 1);for (int i = 0; i < pub.size(); i++) {System.out.println("池子中的牌分別為:" + pub.get(i));}for (int i = 0; i < pub.size() - 1; i++) {if (l == pub.get(i)) {System.out.println("第" + (i + 1) + "張牌和剛打入的一致,收進(jìn)去!");first = i;break;}}// 將牌收入if (first != -1) {for (int i = pub.size() - 1; i > first - 1; i--) {person2.add(pub.get(i));pub.remove(i);}}}System.out.println("甲總共" + person2.size() + "張牌:" + person2.toString());// 第二個(gè)人出牌if (person1.size() != 0) {t = person1.get(0);pub.add(t);person1.remove(0);System.out.println("乙出牌:" + t);if (pub.size() > 1) {int first = -1;int l = pub.get(pub.size() - 1);for (int i = 0; i < pub.size(); i++) {System.out.println("池子中的牌分別為:" + pub.get(i));}for (int i = 0; i < pub.size() - 1; i++) {if (l == pub.get(i)) {System.out.println("第" + (i + 1) + "張牌和剛打入的一致,收進(jìn)去!");first = i;break;}}// 將牌收入if (first != -1) {for (int i = pub.size() - 1; i > first - 1; i--) {person1.add(pub.get(i));pub.remove(i);}}}}System.out.println("乙總共" + person1.size() + "張牌:" + person1.toString());} while (person1.size() != 0 && person2.size() != 0);System.out.println("==========游戲結(jié)束==========");System.out.println("乙剩余" + person1.size() + "張牌!");System.out.println("甲剩余" + person2.size() + "張牌!");} }?
轉(zhuǎn)載于:https://www.cnblogs.com/plumsq/p/10715323.html
總結(jié)
以上是生活随笔為你收集整理的Java纸牌拖拉机简单模拟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlserver 查询语句执行历史
- 下一篇: 【踩坑】遇到 org.apache.ib