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

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

交作業,老師再見

package PlayPokerGame;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashSet;

import java.util.List;

import java.util.Random;

import java.util.Scanner;

import java.util.Set;


public class Initial {

? ? List <PokerCard> PokerCardList=new <PokerCard>ArrayList();//初始化撲克牌

? ? List <PokerCard> PlayerOnePokerCard=new <PokerCard>ArrayList(); //玩家一的手牌

? ? List <PokerCard> PlayerTwoPokerCard=new <PokerCard>ArrayList(); //玩家二的手牌

? ? Player playerOne;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //玩家一

? ? Player playerTwo; //玩家二

public void createPokerCard() {

System.out.println("----------創建撲克牌...----------");

String SuitString[]=new String[] {"方片","梅花","紅桃","黑桃"};

String SizeString[]=new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

for (int i=0;i<SuitString.length;i++) {? //將所有撲克牌按順序添加到List中

for(int j=0;j<SizeString.length;j++) {

PokerCardList.add(new PokerCard(SuitString[i],SizeString[j]));

}

}

System.out.print("----------創建撲克牌成功!----------\n為:");

for(PokerCard pokercard:PokerCardList) {

System.out.print(pokercard.getSuit()+pokercard.getSize()+",");

}

System.out.println();

}

public void shufflePokerCard() {

System.out.println("----------開始洗牌...----------");

Collections.shuffle(PokerCardList);

System.out.println("----------洗牌結束!----------");

}

public void createPlayers() {

System.out.println("----------創建玩家...----------");//創建第一位玩家

System.out.println("請輸入第1位玩家的ID和姓名");

try {

inputPlayerOne();

} catch (inputException e) {

System.out.println(e.getMessage());

createPlayers();

}

System.out.println("請輸入第2位玩家的ID和姓名"); ? //創建第二位玩家

try {

inputPlayerTwo();

} catch (inputException e) {

System.out.println(e.getMessage());

createPlayers();

}

System.out.println("---歡迎玩家:"+playerOne.getName());

System.out.println("---歡迎玩家:"+playerTwo.getName());

}

public void inputPlayerOne() throws inputException { //輸入玩家1信息

Scanner scannerPlayerOne=new Scanner(System.in);

System.out.println("輸入ID:");

String PlayerOneID=scannerPlayerOne.next();

if(isNumeric(PlayerOneID)==false) {

throw new inputException();

}

System.out.println("輸入姓名:");

String PlayerOneName=scannerPlayerOne.next();

playerOne=new Player(PlayerOneID,PlayerOneName);

}

public void inputPlayerTwo() throws inputException { //輸入玩家2信息

Scanner scannerPlayerTwo=new Scanner(System.in);

System.out.println("輸入ID:");

String PlayerTwoID=scannerPlayerTwo.next();

if(isNumeric(PlayerTwoID)==false) {

throw new inputException();

}

System.out.println("輸入姓名:");

String PlayerTwoName=scannerPlayerTwo.next();

playerTwo=new Player(PlayerTwoID,PlayerTwoName);

}

public void deal() {

Random random=new Random();

System.out.println("----------開始發牌...----------");

System.out.println("----玩家:"+playerOne.getName()+"-拿牌");

PlayerOnePokerCard.add(PokerCardList.remove(random.nextInt(PokerCardList.size()-1)));

System.out.println("----玩家:"+playerTwo.getName()+"-拿牌");

PlayerTwoPokerCard.add(PokerCardList.remove(random.nextInt(PokerCardList.size()-1)));

System.out.println("----玩家:"+playerOne.getName()+"-拿牌");

PlayerOnePokerCard.add(PokerCardList.remove(random.nextInt(PokerCardList.size()-1)));

System.out.println("----玩家:"+playerTwo.getName()+"-拿牌");

PlayerTwoPokerCard.add(PokerCardList.remove(random.nextInt(PokerCardList.size()-1)));

System.out.println("----------發牌結束!----------");

}

public void startGame() {

System.out.println("----------開始游戲!----------");

String SuitString[]=new String[] {"方片","梅花","紅桃","黑桃"};

String SizeString[]=new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

PokerCard PlayerOneMax;? //第一位玩家最大的手牌

PokerCard PlayerTwoMax;? //第二位玩家最大的手牌

if(PlayerOnePokerCard.get(0).getSize()==PlayerOnePokerCard.get(1).getSize()) {//計算第一位玩家哪張手牌最大

System.out.println(1);

int countPlayerOne1=0;

int countPlayerOne2=0;

for(int x=0;x<4;x++) {

if(SuitString[x]==PlayerOnePokerCard.get(0).getSuit()) {

countPlayerOne1=x;

break;

}

}

for(int y=0;y<4;y++) {

if(SuitString[y]==PlayerOnePokerCard.get(1).getSuit()) {

countPlayerOne2=y;

break;

}

}

if(countPlayerOne1>countPlayerOne2) {

PlayerOneMax=PlayerOnePokerCard.get(0);

}

else {

PlayerOneMax=PlayerOnePokerCard.get(1);

}

}

else {

int countPlayerOne3=0;

int countPlayerOne4=0;

for(int x=0;x<13;x++) {

if(SizeString[x]==PlayerOnePokerCard.get(0).getSize()) {

countPlayerOne3=x;

break;

}

}

for(int y=0;y<13;y++) {

if(SizeString[y]==PlayerOnePokerCard.get(1).getSize()) {

countPlayerOne4=y;

break;

}

}

if(countPlayerOne3>countPlayerOne4) {

PlayerOneMax=PlayerOnePokerCard.get(0);

}

else {

PlayerOneMax=PlayerOnePokerCard.get(1);

}

}

if(PlayerOnePokerCard.get(0).getSize()==PlayerOnePokerCard.get(1).getSize()) {//計算第二位玩家哪張手牌最大

int countPlayerTwo1=0;

int countPlayerTwo2=0;

for(int x=0;x<4;x++) {

if(SuitString[x]==PlayerTwoPokerCard.get(0).getSuit()) {

countPlayerTwo1=x;

break;

}

}

for(int y=0;y<4;y++) {

if(SuitString[y]==PlayerTwoPokerCard.get(1).getSuit()) {

countPlayerTwo2=y;

break;

}

}

if(countPlayerTwo1>countPlayerTwo2) {

PlayerTwoMax=PlayerTwoPokerCard.get(0);

}

else {

PlayerTwoMax=PlayerTwoPokerCard.get(1);

}

}

else {

int countPlayerTwo3=0;

int countPlayerTwo4=0;

for(int x=0;x<13;x++) {

if(SizeString[x]==PlayerTwoPokerCard.get(0).getSize()) {

countPlayerTwo3=x;

break;

}

}

for(int y=0;y<13;y++) {

if(SizeString[y]==PlayerTwoPokerCard.get(1).getSize()) {

countPlayerTwo4=y;

break;

}

}

if(countPlayerTwo3>countPlayerTwo4) {

PlayerTwoMax=PlayerTwoPokerCard.get(0);

}

else {

PlayerTwoMax=PlayerTwoPokerCard.get(1);

}

}

System.out.println("玩家:"+playerOne.getName()+"最大的手牌為:"+PlayerOneMax.getSuit()+PlayerOneMax.getSize());

System.out.println("玩家:"+playerTwo.getName()+"最大的手牌為:"+PlayerTwoMax.getSuit()+PlayerTwoMax.getSize());

if(compare(PlayerOneMax,PlayerTwoMax)) {? ? ? ? ? //玩家1和玩家2比較手牌大小

System.out.println("----------玩家:"+playerOne.getName()+"獲勝!----------");

}

else {

System.out.println("----------玩家:"+playerTwo.getName()+"獲勝!----------");

}

}

public boolean compare(PokerCard pokercard1,PokerCard pokercard2) { //撲克牌比較大小的函數,如果pokercard1>pokercard2,返回True

String SuitString[]=new String[] {"方片","梅花","紅桃","黑桃"};

String SizeString[]=new String[] {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

if(pokercard1.getSize()==pokercard2.getSize()){? //如果大小size一樣,就比較花色suit誰大

int countPlayerOne1=0;

int countPlayerTwo1=0;

for(int x=0;x<4;x++) {

if(SuitString[x]==pokercard1.getSuit()) {

countPlayerOne1=x;

break;

}

}

for(int y=0;y<4;y++) {

if(SuitString[y]==pokercard2.getSuit()) {

countPlayerTwo1=y;

break;

}

}

return countPlayerOne1>countPlayerTwo1;

}

else {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//如果大小size不一樣,就比較大小size即可

int countPlayerOne2=0;

int countPlayerTwo2=0;

for(int x=0;x<13;x++) {

if(SizeString[x]==pokercard1.getSize()) {

countPlayerOne2=x;

break;

}

}

for(int y=0;y<13;y++) {

if(SizeString[y]==pokercard2.getSize()) {

countPlayerTwo2=y;

break; }

}

return countPlayerOne2>countPlayerTwo2;

}

}

public static boolean isNumeric(String str){? //判斷字符串是否是一個正整數

? ? for(int i=str.length();--i>=0;){

? ? ? ? int chr=str.charAt(i);

? ? ? ? if(chr<48 || chr>57)

? ? ? ? ? ? return false;

? ? }

? ?return true;

}?

public void showPlayerPokerCard() {

System.out.println("玩家各自的手牌為:");

System.out.print(playerOne.getName()+":");

for(PokerCard pokercard:PlayerOnePokerCard) {

System.out.print(pokercard.getSuit()+pokercard.getSize()+" ");

}

System.out.println();

System.out.print(playerTwo.getName()+":");

for(PokerCard pokercard:PlayerTwoPokerCard) {

System.out.print(pokercard.getSuit()+pokercard.getSize()+" ");

}

}

public static void main(String[] args) {

Initial initial =new Initial();

initial.createPokerCard();? //創建撲克牌

initial.shufflePokerCard(); //洗牌,打亂撲克牌的順序

initial.createPlayers();? ? //創建玩家

initial.deal();? ? ? ? ? ? //給玩家發牌

initial.startGame();? ? ? ? //開始游戲

initial.showPlayerPokerCard(); //展示兩位玩家的手牌

}

}


package PlayPokerGame;

public class inputException extends Exception{

inputException(){

super("請輸入整數類型的ID!");

}

}

package PlayPokerGame;

public class Player {

String ID;

String name;

public Player(String ID,String name) {

this.ID=ID;

this.name=name;

}

public String getID() {

return ID;

}

public void setID(String iD) {

ID = iD;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

package PlayPokerGame;

public class PokerCard {

String suit;? ?//撲克牌的花色

String size; //撲克牌的大小

public PokerCard(String suit,String size){//含參構造器

this.suit=suit;

this.size=size;

}


public String getSuit() {

return suit;

}


public void setSuit(String suit) {

this.suit = suit;

}


public String getSize() {

return size;

}


public void setSize(String size) {

this.size = size;

}

}



正在回答

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

交作業,老師再見

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

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

幫助反饋 APP下載

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

公眾號

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