忙活了許久,知識掌握的還是不牢靠
package com.imooc;
import java.util.Comparator;
public class Card implements Comparator
public String suit;//花色
public String point;//點數
public Card(){
}
public Card(String suit,String point){
this.suit = suit;
this.point = point;
}
@Override
public String toString() {
return suit + point;
}
@Override
public int compare(Card o1, Card o2) {
String suit = "方片 梅花 紅桃 黑桃";
String point = "2 3 4 5 6 7 8 9 10 J Q K A";
int result = point.indexOf(o1.point) - point.indexOf(o2.point);
if(result 0){
return 1;
}else{
int result2 = suit.indexOf(o1.suit) - suit.indexOf(o2.suit);
if(result2 0){
return 1;
}else{
return 0;
}
}
}
}
package com.imooc;
import java.util.ArrayList;
import java.util.List;
public class Player {
public int id;//玩家id
public String name;//玩家姓名
public List
public Player(int id,String name){
this.id = id;
this.name = name;
handCards = new ArrayList
}
}
package com.imooc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
package com.imooc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class CardsTest {
public static void main(String[] args) {
System.out.println("**建立撲克牌****");
//建立存放撲克牌的list集合
List
//建立撲克牌的花色陣列
String[] suits = {"方片","梅花","紅桃","黑桃"};
//建立撲克牌的點數陣列
String[] points = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
for(int i = 0;i for(int j = 0;j Card card = new Card(suits[i],points[j]);
cardsList.add(card);
}
}
System.out.println("**撲克牌建立成功****");
System.out.println("**建立的撲克牌為:" + "n" + cardsList);
System.out.println("******************洗牌開始*************************");
Collections.shuffle(cardsList);//集合中的混排
System.out.println("******************洗牌結束*************************");
System.out.println("******************建立玩家*************************");
//建立map用於存放玩家的id和name
Map map = new HashMap();
//建立list集合用於儲存玩家物件
List playerList = new ArrayList();
for(int i = 0;i entry : map.entrySet()){
System.out.println("*******歡迎玩家:" + entry.getValue());
}
System.out.println("******************開始發牌********************");
//將第一張牌發給玩家1
playerList.get(0).handCards.add(cardsList.get(0));
System.out.println("*****玩家:" + playerList.get(0).name + "-拿牌");
//將第二張牌發給玩家2
playerList.get(1).handCards.add(cardsList.get(1));
System.out.println("*****玩家:" + playerList.get(1).name + "-拿牌");
//將第三張牌發給玩家1
playerList.get(0).handCards.add(cardsList.get(2));
System.out.println("*****玩家:" + playerList.get(0).name + "-拿牌");
//將第四張牌發給玩家2
playerList.get(1).handCards.add(cardsList.get(3));
System.out.println("*****玩家:" + playerList.get(1).name + "-拿牌");
System.out.println("******************發牌結束*********************");
System.out.println("******************開始遊戲*********************");
//先比較玩家1手中的牌
Collections.sort(playerList.get(0).handCards, new Card());
//得到玩家1手中的最大牌
Card card1 = playerList.get(0).handCards.get(1);
System.out.println("玩家:" + playerList.get(0).name + "最大的牌為:" + card1);
//再比較玩家2手中的牌
Collections.sort(playerList.get(1).handCards, new Card());
//得到玩家2手中的最大牌
Card card2 = playerList.get(1).handCards.get(1);
System.out.println("玩家:" + playerList.get(1).name + "最大的牌為:" + card2);
//最後比較兩個玩家手中的最大牌,分出勝負
List lastCardList = new ArrayList();
lastCardList.add(card1);
lastCardList.add(card2);
Collections.sort(lastCardList, new Card());
if(lastCardList.get(1).suit.equals(card1.suit) && lastCardList.get(1).point.equals(card1.point)){
System.out.println("******************玩家:"+playerList.get(0).name+"獲勝!*********************");
}else{
System.out.println("******************玩家:"+playerList.get(1).name+"獲勝!*********************");
}
//玩家各自的手牌
System.out.println("玩家各自的手牌為:" + "n" + playerList.get(0).name + ":" + playerList.get(0).handCards
+ "n" + playerList.get(1).name + ":" +playerList.get(1).handCards);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2618/viewspace-2798954/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java需要掌握的知識Java
- 你的知識體系是動態還是靜態?
- 面試需要掌握的知識點面試
- DBA需要掌握的Shell知識
- 前端必須掌握的知識點前端
- 前端應該掌握的nginx知識前端Nginx
- 需掌握的深度學習知識深度學習
- 小企業抱怨谷歌援助是噱頭:幫不上忙還燒錢谷歌
- HTTP知識點(前端需掌握)HTTP前端
- JavaScript必須要掌握的知識-作用域JavaScript
- PostgreSQL 優化需要掌握的知識類別SQL優化
- 【翻譯】前端開發者應掌握的基本知識前端
- 全方位掌握OpenStack技術知識
- web前端需要掌握什麼知識?Web前端
- Golang 中的 Defer 必掌握的 7 知識點Golang
- Python 基礎知識自檢,離深入掌握 Python 還有多遠Python
- 掌握了開源框架還不夠,你更需要掌握原始碼框架原始碼
- 8個不為人知的Docker 知識Docker
- 《明日方舟》:二次元遊戲圈許久不見的狂歡二次元遊戲
- SAP 後端開發的初學者,除了掌握 ABAP 之外,還需要學習什麼知識?後端
- 外貿小白必須掌握的基礎知識
- 運維需要掌握的12個路由知識點運維路由
- 介面測試人員需要掌握的知識技能
- 用好報表工具需掌握的基礎知識
- Oracle10g rac 必須掌握的知識Oracle
- 不錯的plsql基礎知識SQL
- 如何快速掌握Javascript入門小知識JavaScript
- 快速掌握JavaScript面試基礎知識(二)JavaScript面試
- 快速掌握JavaScript面試基礎知識(三)JavaScript面試
- 前端開發到底需要掌握哪些知識前端
- 無線路由器的些許知識路由器
- JavaScript大師必須掌握的12個知識點JavaScript
- 必須掌握的Linux使用者組知識Linux
- 大資料工程師需要掌握的知識點大資料工程師
- 新手UI設計師需要掌握的知識和技能UI
- 2021年你需要掌握的前端小知識前端
- 前端(Not just)工程師終究要掌握的知識前端工程師
- PHP初學者必須掌握的10個知識點PHP