亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

寫了兩三個小時寫出來了JAVA入門第三季的撲克牌游戲 大神來看看如何優化 感覺我的代碼太復雜了

package?pokergame;

import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.HashMap;
import?java.util.InputMismatchException;
import?java.util.Scanner;

public?class?bidaxiao?{
	static?boolean?flag?=?true;
	static?HashMap<Integer,?String>?poker?=?new?HashMap<Integer,?String>();//?放撲克
	static?ArrayList<Integer>?xuhao?=?new?ArrayList<Integer>();//?放排序
	static?HashMap<Integer,?String>?player?=?new?HashMap<Integer,?String>();
	static?String[]?dianshu?=?{?"2",?"A",?"K",?"Q",?"J",?"10",?"9",?"8",?"7",?"6",?"5",?"4",?"3"?};
	static?String[]?huase?=?{?"?",?"?",?"?",?"?"?};
	static?ArrayList<Integer>?player1?=?new?ArrayList<Integer>();//玩家1的牌
	static?ArrayList<Integer>?player2?=?new?ArrayList<Integer>();//玩家2的牌
	static?ArrayList<Integer>?number?=?new?ArrayList<Integer>();//存放玩家序號

	public?static?void?main(String[]?args)?{
		int?index?=?0;
		for?(String?ds?:?dianshu)?{
			for?(String?hs?:?huase)?{
				poker.put(index,?hs?+?ds);
				xuhao.add(index);
				index++;
			}
		}//做牌
		Collections.shuffle(xuhao);//打亂牌序
		System.out.println("------------創建玩家------------");
		startgame();//進入游戲
		fapai();//開始發牌
		start();//開始游戲比大小
		lookpoker(player.get(number.get(0)),?player1,?poker);//看牌
		lookpoker(player.get(number.get(1)),?player2,?poker);//看牌
	}

	public?static?void?startgame()?{

		int?i?=?1;
		while?(flag)?{
			try?{
				Scanner?input?=?new?Scanner(System.in);
				System.out.println("請輸入第"?+?i?+?"位玩家的ID和姓名:");
				System.out.println("輸入ID:");
				int?a?=?input.nextInt();
				number.add(a);
				System.out.println("輸入姓名:");
				String?name?=?input.next();
				player.put(a,?name);
				i++;
			}?catch?(InputMismatchException?e)?{
				System.out.println("請輸入整數類型的ID!");
			}
			if?(i?==?3)?{
				flag?=?false;
			}
		}
		for?(Integer?Key?:?player.keySet())?{
			System.out.println("----歡迎玩家:"?+?player.get(Key));
		}
	}

	public?static?void?fapai()?{
		System.out.println("---------開始發牌...---------");
		for?(int?o?=?0;?o?<?4;?o++)?{
			if?(o?%?2?==?0)?{
				player1.add(xuhao.get(o));
				System.out.println("---玩家:"?+?player.get(number.get(0))?+?"-拿牌");
			}?else?if?(o?%?2?==?1)?{
				player2.add(xuhao.get(o));
				System.out.println("---玩家:"?+?player.get(number.get(1))?+?"-拿牌");
			}
		}
		System.out.println("---------發牌結束!---------");
	}

	public?static?void?start()?{
		System.out.println("---------開始游戲...---------");
		Collections.sort(player1);
		Collections.sort(player2);
		System.out.println(player.get(number.get(0))?+?"最大的手牌為:"?+?poker.get(player1.get(0)));
		System.out.println(player.get(number.get(1))?+?"最大的手牌為:"?+?poker.get(player2.get(0)));
		if?(player1.get(0)?>?player2.get(0))?{
			System.out.println("---------玩家:"?+?player.get(2)?+?"獲勝!---------");
		}?else?{
			System.out.println("---------玩家:"?+?player.get(1)?+?"獲勝!---------");
		}

	}

	public?static?void?lookpoker(String?name,?ArrayList<Integer>?playernum,?HashMap<Integer,?String>?poker)?{
		System.out.println("玩家各自的手牌為:	");
		System.out.print(name?+?":");
		for?(Integer?key?:?playernum)?{
			String?value?=?poker.get(key);
			System.out.print(value?+?"?");
		}
		System.out.println();
	}

}

運行效果如圖

http://img1.sycdn.imooc.com//598453ca00016c1604220586.jpg

正在回答

2 回答

我感覺比較的時候不對吧?黑桃>梅花(但是h<m),sort之后m大,你的比較結果是:梅花2>黑桃2吧。

還有同色(如黑桃J、黑桃Q、黑桃K)怎么比較?(按照sort:Q>K>J)

0 回復 有任何疑惑可以回復我~

命名感覺不規范啊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

寫了兩三個小時寫出來了JAVA入門第三季的撲克牌游戲 大神來看看如何優化 感覺我的代碼太復雜了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號