簡易撲克遊戲---各位爸爸求指點指點
新手的一批,寫了好久,功能都有了,就是寫的有點多,不夠精簡,還請多多指教,沒有用到contains ,腦子不夠用了。
Poker 紙牌類
package com.qianlian;
import java.util.List;
import java.util.Random;
public class Poker implements Comparable{
private String color;
private String point;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getPoint() {
return point;
}
public void setPoint(String point) {
this.point = point;
}
public Poker(String color, String point) {
this.color = color;
this.point = point;
}
@Override
public int hashCode() {
Random random = new Random();
int result =random.nextInt(100);
return result;
}
@Override
public int compareTo(Poker o) {
return this.getPoint().compareTo(o.getPoint());
}
}
重寫了hashcode,因為我的set會自動排序,沒有洗牌的效果,所以重寫不知道有沒有更好的方法。
重寫了compareTo ,因為在後面要到sort,難道用 Comparator,就要用Comparable嗎
PokerPlayer 玩家類
package com.qianlian;
import java.util.ArrayList;
import java.util.List;
public class PokerPlayer {
private int id;
private String name;
public PokerPlayer(int id, String name) {
this.id = id;
this.name = name;
}
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;
}
}
感覺沒問題
ComparatorPoker Comparator類
package com.qianlian;
import java.util.Comparator;
import javax.naming.spi.DirStateFactory.Result;
public class ComparatorPoker implements Comparator {
public int pokColor1;
public int pokColor2;
public int resultColor;
public int resultPoint;
public int pokPoint1;
public int pokPoint2;
public String pokStrPoint1;
public String pokStrPoint2;
@Override
public int compare(Poker o1, Poker o2) {
switch (o1.getColor()) {
case "梅花":
pokColor1 = 1;
break;
case "方塊":
pokColor1 = 2;
break;
case "紅心":
pokColor1 = 3;
break;
case "黑桃":
pokColor1 = 4;
break;
default:
System.out.println("不存在!");
break;
}
switch (o2.getColor()) {
case "梅花":
pokColor2 = 1;
break;
case "方塊":
pokColor2 = 2;
break;
case "紅心":
pokColor2 = 3;
break;
case "黑桃":
pokColor2 = 4;
break;
default:
System.out.println("你是真的皮!");
break;
}
switch (o1.getPoint()) {
case "J":
pokStrPoint1="11";
break;
case "Q":
pokStrPoint1="12";
break;
case "K":
pokStrPoint1="13";
break;
case "A":
pokStrPoint1="14";
break;
default:
pokStrPoint1 = o1.getPoint();
break;
}
switch (o2.getPoint()) {
case "J":
pokStrPoint2="11";
break;
case "Q":
pokStrPoint2="12";
break;
case "K":
pokStrPoint2="13";
break;
case "A":
pokStrPoint2="14";
break;
default:
pokStrPoint2 = o2.getPoint();
break;
}
pokPoint1 = Integer.parseInt(pokStrPoint1);
pokPoint2 = Integer.parseInt(pokStrPoint2);
resultPoint = pokPoint1 - pokPoint2;
resultColor = pokColor1 - pokColor2;
if(resultPoint!=0){
return resultPoint;
}else{
return resultColor;
}
}
}
有點囉嗦,把JQKA和數字轉成統一型別比較,再去規定花色的大小。最後先比較點數,相同在比較花色。
PlayPoker 開始遊戲
package com.qianlian;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.HashSet;
import java.util.Set;
public class PlayPoker {
public List pTemp;
public Set pokers;
public Map mapPlayer;
public String pokPoint;
public String color;
public Poker tempAdd;
public Scanner console;
public int ID;
public String pName;
public List tempPok;
public Iterator it;
public PlayPoker(){
pokers = new HashSet();
console = new Scanner(System.in);
tempPok = new ArrayList();
mapPlayer =new HashMap();
pTemp = new ArrayList();
}
public void addPoker(){
System.out.println("======================建立撲克牌======================");
for(int j=0;j 紅心 > 方塊 > 梅花》===================================");
System.out.println("勝利者是: "+winPer+"————————> "+winPok);
}
public static void main(String[] args) {
PlayPoker pp = new PlayPoker();
pp.addPoker();
pp.forEachPoker();
pp.playPoker();
}
}
怎麼用contains呢 ,map的value是個List,最後比較出來最大的牌,用contiains檢索包含在那個entry,找出人名。思路好像沒錯,但是試了好多次沒有成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2807928/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java程式:簡易撲克牌遊戲Java遊戲
- Java第三季—簡易撲克牌遊戲Java遊戲
- 簡易撲克牌遊戲簡單實現,歡迎指正遊戲
- 簡易撲克牌遊戲JAVA原始碼_新手上路遊戲Java原始碼
- 劍指Offer 撲克牌順子
- python實現撲克遊戲 - 抽鬼牌 和 21點Python遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (二)Python遊戲
- python例項:解決經典撲克牌遊戲 -- 四張牌湊24點 (一)Python遊戲
- 求大神指點思路-python 自動化介面測試Python
- 新手入門的方向如何抉擇,懇求指點
- appium start session 時報錯 Error executing adbExec. Original error 求指點APPSessionError
- JAVA入門第三季 簡易撲克牌遊戲原始碼 可以自定義玩家人數 有詳細注Java遊戲原始碼
- 【YOLOv5】實現撲克牌的點數識別YOLO
- java入門最後一章 簡易撲克牌比較大小Java
- js原型鏈理解(求老哥們指點啊啊啊,有沒有毛病)JS原型
- MySQL:非葉子節點指標MySql指標
- Java入門第三季撲克牌小遊戲Java遊戲
- Java入門第三季7-1簡易撲克牌作業Java
- permission 在模型中配置了 $guard_name,但並未起效。求大佬指點。模型
- 寫在上證指數跌破3000點時
- 給每一個結點新增向右的next指標結點指標
- 如何利用RSI指標有效把握階段低點和高點指標
- [需求建議]求個大神指點 製作 支付寶二維碼支付 外掛
- C語言重點——指標篇(一文讓你完全搞懂指標)| 從記憶體理解指標 | 指標完全解析C語言指標記憶體
- 簡易版“推箱子”遊戲遊戲
- c++簡易小遊戲C++遊戲
- Java 簡單實現撲克牌抽象類Java抽象
- App Annie 全球遊戲指數週報APP遊戲
- HarmonyOS 應用事件打點開發指導事件
- CDN節點指什麼?有何作用?-ElinkcloudCloud
- 填充每個節點的下一個右側節點指標指標
- laravel7.2.5 的api檔案中出現的post值獲取的問題,哪位達人給指點指點LaravelAPI
- 填充每個節點的下一個右側節點指標 II指標
- 針對中介軟體判斷角色許可權的疑惑,求大佬指點一番~
- Linux 爸爸怒懟社交媒體:在座的各位都是垃圾Linux
- 網易王怡:未成年人保護工作始終是網易遊戲的核心考核指標遊戲指標
- 116. 填充每個節點的下一個右側節點指標指標
- [求助] 小程式 webview 中使用 send_keys 方法的時候提示 element not interactable,元素不可互動,求求大佬來指點指點WebView