日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java實現(xiàn)簡易撲克牌游戲

瀏覽:21日期:2022-09-02 15:19:15

本文實例為大家分享了java實現(xiàn)撲克牌游戲的具體代碼,供大家參考,具體內容如下

游戲功能描述

1、創(chuàng)建一副撲克牌:

包括四種花色:黑桃,紅桃,梅花,方片 包括十三種點數(shù):2-10,J,Q,K,A

2、創(chuàng)建兩名玩家(or多名)

玩家至少要有ID,姓名,手牌等屬性,手牌為撲克牌的集合

3、將創(chuàng)建好的撲克牌進行隨機洗牌

4、從洗牌后的撲克牌的第一張開始,發(fā)給每個玩家,按照一人一張的方式,每人發(fā)兩張(or多張)

5、比較兩名玩家手中的撲克牌,比較規(guī)則為:取兩人各自手中點數(shù)最大的牌進行比較,點數(shù)大的贏;若兩人各自的點數(shù)最大的牌相等,則再按照花色比較。

代碼

//Card.java

package card;public class Card{ private String color; private String number; public Card(String color, String number) { this.color = color; this.number = number; } public String getColor() { return color; } public String getNumber() { return number; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof Card)) return false; Card other = (Card) obj; if (color == null) { if (other.color != null) return false; } else if (!color.equals(other.color)) return false; if (number == null) { if (other.number != null) return false; } else if (!number.equals(other.number)) return false; return true; }}

//Cards.java

package card;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Cards { private List<Card> list = new ArrayList<Card>(); //創(chuàng)建一副撲克牌 public Cards(){ System.out.println('-----------------創(chuàng)建撲克牌------------------'); String[] color = {'黑桃', '紅桃', '梅花', '方片'}; String[] number = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'J','Q','K', 'A'}; for(int i=0;i<color.length;i++) for(int j=0;j<number.length;j++){ list.add(new Card(color[i], number[j])); } System.out.println('----------------撲克牌創(chuàng)建成功!---------------'); } //獲取一副撲克牌 public List<Card> getList() { return list; } //洗牌(打亂) public void shufCards(){ System.out.println('----------------開始洗牌------------------------'); Collections.shuffle(list); System.out.println('----------------洗牌結束------------------------'); } //展示一副撲克牌 public void showCards(){ System.out.print('當前的撲克牌為:'); System.out.print('[ '); for(int i=0;i<list.size();i++){ System.out.print(list.get(i).getColor() + list.get(i).getNumber()+ ' '); } System.out.println(' ]'); }}

//Player.java

package card;import java.util.ArrayList;import java.util.List;public class Player { private int id; private String name; private List<Card> handCards = new ArrayList<Card>(); public Player(int id, String name){ this.id = id; this.name = name; } public List<Card> getHandCards() { return handCards; } public void setHandCards(Card card) { handCards.add(card); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}

//CardComparator.java(自定義排序規(guī)則)

package card;import java.util.Comparator;public class CardComparator implements Comparator<Card> { @Override public int compare(Card c1, Card c2) { // 構建花色和牌值數(shù)組,通過比對,計算得到某張牌的價值(大小) String[] color = {'方片', '梅花', '紅桃', '黑桃'}; String[] number = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'J','Q','K', 'A'}; //由于比較規(guī)則是先比較牌值,如果相等再比較花色(黑紅梅方),所以將牌值賦予較高的權值 int valueOfC1 = 0; int valueOfC2 = 0; for(int i=0;i<number.length;i++){ if(c1.getNumber().equals(number[i])) valueOfC1 += i*10; if(c2.getNumber().equals(number[i])) valueOfC2 += i*10; } for(int i=0;i<color.length;i++){ if(c1.getColor().equals(color[i])) valueOfC1 += i; if(c2.getColor().equals(color[i])) valueOfC2 += i; } if( valueOfC1 > valueOfC2 ) return -1; if( valueOfC1 < valueOfC2 ) return 1; return 0; }}

//PlayDemo.java

package card;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;public class PlayDemo { //創(chuàng)建玩家 //要對玩家ID的異常處理,要求用戶只能輸入整數(shù)ID,否則需要重新輸入 public Player setPlayer(){ int id=0; String name=''; Scanner console = new Scanner(System.in); boolean ready = true; do{ try{ System.out.println('輸入ID:'); id = console.nextInt(); ready = true; }catch(Exception e){ System.out.println('請輸入整數(shù)類型的ID!'); ready = false; console.nextLine(); } }while(ready==false); System.out.println('輸入姓名:'); name = console.next(); return new Player(id, name); } public static void main(String[] args) { //測試簡易撲克牌程序 PlayDemo game = new PlayDemo(); //(1)創(chuàng)建一副牌 Cards cards = new Cards(); //(2)展示新的撲克牌 cards.showCards(); //(3)洗牌 cards.shufCards(); //(4)創(chuàng)建玩家 System.out.println('--------------創(chuàng)建兩個(or多個)玩家就可以開始游戲啦!-------------'); List<Player> p = new ArrayList<Player>(); for(int i=0;i<2;i++) { System.out.println('請輸入第'+(i+1)+'位玩家的ID和姓名:'); p.add(game.setPlayer()); } for(int i=0;i<p.size();i++) { System.out.println('歡迎玩家:'+p.get(i).getName()); } //(5)撲克牌比大小游戲開始啦~ int count = 0; System.out.println('------------------開始發(fā)牌---------------------'); //設定每人分別拿兩張(or多張) for(int i=0; i<2;i++){ //玩家輪流拿牌 for(int j=0; j< p.size(); j++){ System.out.println('>玩家'+p.get(j).getName()+'拿牌'); p.get(j).setHandCards(cards.getList().get(count)); count++; } } System.out.println('------------------發(fā)牌結束!--------------------'); System.out.println('------------------開始游戲 ---------------------'); for(int i=0;i<p.size();i++){ System.out.print('玩家'+p.get(i).getName()+'的手牌為:[ '); for(int j=0;j<p.get(i).getHandCards().size();j++){ Card cur = p.get(i).getHandCards().get(j); System.out.print(cur.getColor()+cur.getNumber()+' '); } System.out.println(' ]'); } //排序得到每個玩家最大的手牌(排序規(guī)則自定義) for(int i=0;i<p.size();i++){ Collections.sort(p.get(i).getHandCards(), new CardComparator()); } List<Card> maxCard = new ArrayList<Card>(); for(int i=0;i<p.size();i++){ Card maxCur = p.get(i).getHandCards().get(0); System.out.println('玩家'+p.get(i).getName()+'最大的手牌為:'+ maxCur.getColor()+maxCur.getNumber()); maxCard.add(maxCur); } //得到最后的勝者 List<Card> temp = new ArrayList<Card>(); temp.addAll(maxCard); Collections.sort(temp, new CardComparator()); for(int i=0;i<p.size();i++){ if(maxCard.get(i).equals(temp.get(0))) System.out.println('恭喜玩家:'+p.get(i).getName()+'獲勝!'); } }}

游戲運行截圖

java實現(xiàn)簡易撲克牌游戲

還有一個地方需要優(yōu)化,即不能輸入重復的ID和姓名,可以重寫Player的equals方法,將用戶的輸入與已有的輸入相比較,不滿足要求則需要重新輸入,不過就先不加了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品麻豆| 欧美日韩在线观看视频小说| 日韩精品视频在线看| 日韩va亚洲va欧美va久久| 国产精品国码视频| 日韩精品中文字幕第1页| 91精品一区国产高清在线gif| 日本蜜桃在线观看视频| 日韩午夜高潮| 久久精品97| 日韩精品dvd| 视频一区在线播放| 欧美日韩中出| 黑森林国产精品av| 在线视频精品| 国产精品久久乐| 亚洲精品国产嫩草在线观看 | 国产一区二区三区日韩精品 | 精品国产三区在线| 亚洲福利久久| 婷婷综合电影| 欧美韩日一区| 丝袜亚洲精品中文字幕一区| 日韩高清三区| 桃色av一区二区| 三级欧美韩日大片在线看| 久久99免费视频| 激情久久婷婷| 欧美精品影院| 欧美不卡高清一区二区三区| 老司机久久99久久精品播放免费| 国产另类在线| 91精品国产调教在线观看| 日韩激情视频网站| 亚洲午夜天堂| 99国产精品视频免费观看一公开 | 久久一区二区三区电影| 欧美一区影院| 欧美69视频| 国产 日韩 欧美一区| 四虎国产精品免费久久| 欧美成a人免费观看久久| 亚洲人成在线影院| 成人国产精品一区二区网站| 蜜桃久久av| 成人在线视频中文字幕| 一区二区三区四区日韩| 在线天堂资源www在线污| 色综合视频一区二区三区日韩 | 国产亚洲一区二区手机在线观看| 香蕉久久一区| 999久久久91| 国产精品永久| 日韩中文字幕1| 久久精品二区三区| 国产精品一级| 爽好多水快深点欧美视频| 国内精品麻豆美女在线播放视频| 免费日本视频一区| 久久精品国产99久久| 日韩欧美精品一区| 国产精品久久乐| 日本在线不卡视频| 红桃视频欧美| 亚洲播播91| 麻豆精品在线观看| 免费成人性网站| 国产伊人精品| 日韩欧美精品一区| 97在线精品| 欧美国产极品| 久久精品999| 亚洲专区视频| 亚洲视频播放| 宅男在线一区| 99久久久久国产精品| 欧美激情国产在线| 精品72久久久久中文字幕| 欧美亚洲网站| 婷婷亚洲精品| 亚洲精品自拍| 一区二区国产精品| 水蜜桃久久夜色精品一区的特点| 黄色国产精品| 欧美另类专区| 欧洲激情综合| 欧美日韩激情| 不卡视频在线| 香蕉久久精品| 久久影院一区| 欧美午夜精品一区二区三区电影| 日本久久成人网| 久久精品亚洲人成影院| 三上悠亚国产精品一区二区三区 | 在线亚洲人成| 成人美女视频| 日韩免费高清| 色婷婷久久久| 91精品蜜臀一区二区三区在线 | 亚洲午夜av| 欧美特黄a级高清免费大片a级| 久久久影院免费| 好吊视频一区二区三区四区| 激情婷婷欧美| 最新日韩欧美| 视频一区二区三区在线| 在线视频亚洲欧美中文| 日韩综合小视频| 亚欧成人精品| 国产乱码精品| 欧美www视频在线观看| 国产一区二区三区视频在线| 9999国产精品| 久久精品卡一| 亚洲一区二区三区免费在线观看| 鲁大师影院一区二区三区| 亚洲我射av| 国产视频网站一区二区三区| 国产精品嫩模av在线| 国产精品高清一区二区| 精品三级国产| 久久三级视频| 美女尤物久久精品| 国产欧美69| 国产精品二区不卡| 亚洲v在线看| 亚洲欧美网站| 91成人精品观看| 国产一区二区三区网| 欧美综合另类| 亚洲精品日本| 精品一区二区男人吃奶 | 日韩av不卡在线观看| 久久久久久久久成人| 日韩高清成人| 久久99伊人| 国产日韩一区二区三区在线| 精品免费av| 欧美粗暴jizz性欧美20| 色综合视频一区二区三区日韩 | 一区二区三区网站| 国产精品久久| 韩国精品主播一区二区在线观看 | 欧美日本不卡| 久久久精品区| 午夜久久一区| 国产精品一区二区三区四区在线观看| 成人在线视频区| 国产婷婷精品| 国产精品一区免费在线| 久久婷婷亚洲| 日本欧美一区二区| 国产精品2023| 久久狠狠婷婷| 日韩一区二区三区免费播放| 欧美日韩国产一区二区三区不卡 | 一区二区三区四区日韩| 婷婷久久免费视频| 国产精品黄色片| se01亚洲视频 | 国产欧美日韩精品高清二区综合区 | 99tv成人| 亚洲综合五月| 国产精品传媒麻豆hd| 精品丝袜在线| 性一交一乱一区二区洋洋av| 日韩欧美美女在线观看| 国产精品xxx| 99久久99久久精品国产片果冰| 亚洲精品美女91| 日韩.com| 久久av一区| 国产精品啊v在线| 久久中文字幕av一区二区不卡| 午夜在线精品| 国产精品va| 蜜桃成人av| 国产免费av国片精品草莓男男| 日本美女一区| 亚洲午夜国产成人| 精品99在线| 亚洲欧洲另类| 国产精品成人国产| 亚洲欧美伊人| 国产精品毛片aⅴ一区二区三区| 激情欧美一区二区三区| 国产日韩欧美中文在线| 久久免费大视频| 久久国内精品视频| 久久久成人网| 欧美日韩亚洲一区二区三区在线| 久久精品中文| 国产麻豆精品| 在线成人直播| 久久精品欧洲| av不卡免费看| 国产精品99视频| 亚洲乱亚洲高清| 99久久99久久精品国产片果冰| 国产欧美大片|