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

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

撲克牌作業 我不知道哪里出問題了 大家能看看嗎

package pkpxm;


import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import java.util.Scanner;




//1·創建一副撲克牌(包括各種花色)

//2·創建倆名玩家(id、name、手牌(手牌為撲克牌的集合))

//3.洗牌(將撲克牌)

//4·發牌(將洗牌之后的撲克牌集合,從第一張開始發給倆名玩家,按照一人一張的方式,每人發倆張)

//5.游戲(取手中最大的進行比較,大的贏,相等比較花色)


//創建一個撲克牌游戲的類

public class GamePoker {

//創建撲克牌、人物集合

List<Poker> pokerList;

List<Player> playerList;

//玩家

Player player1;

Player player2;

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

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

public GamePoker(){

pokerList = new ArrayList<Poker>();

playerList =new ArrayList<Player>();

}

//創建撲克牌

public void creatPoker(){

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

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

System.out.print("為:");

for (int i = 0; i < pokerType.length; i++) {

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

System.out.print(pokerType[i] + pokerNum[j]);

pokerList.add(new Poker(pokerType[j],pokerNum[i]));

}

}

}

//洗牌

public void washPoker(){

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

Collections.shuffle(pokerList);? ? //進行隨機打亂

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

}

//創建玩家

public void createPlayer(){

System.out.println("---------創建玩家---------");

Scanner console =new Scanner(System.in);

System.out.println("請輸入第一位玩家ID:");

System.out.print("ID為:");

String id = console.next();

System.out.println("請輸入第一位玩家姓名:");

System.out.println("姓名為:");

String name = console.next();

Player player1 = new Player(id, name);

playerList.add(player1);

System.out.println("---------創建玩家---------");

System.out.println("請輸入第二位玩家ID:");

System.out.print("ID為:");

String id2 = console.next();

System.out.println("請輸入第二位玩家姓名:");

System.out.println("姓名為:");

String name2 = console.next();

Player player2 = new Player(id2, name2);

playerList.add(player2);

System.out.println("歡迎玩家:" + player1.getName());??

System.out.println("歡迎玩家:" + name2);

}

//發牌

public void sendPoker(){

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

System.out.println("玩家" + player1.getName() + "拿牌");

player1.handPokerList.add(pokerList.get(0));

System.out.println("玩家" + player2.getName() + "拿牌");

player2.handPokerList.add(pokerList.get(1));

System.out.println("玩家" + player1.getName() + "拿牌");

player1.handPokerList.add(pokerList.get(2));

System.out.println("玩家" + player2.getName() + "拿牌");

player2.handPokerList.add(pokerList.get(3));

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

}

//游戲

public void createGame(){

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

Collections.sort(player1.handPokerList);

Collections.sort(player2.handPokerList);?

Poker playerMax1= player1.handPokerList.get(1);

Poker playerMax2 = player2.handPokerList.get(1);

if (playerMax1.getRank() > playerMax2.getRank()) {

System.out.println(player1.getName() + "最大的手牌為:" + playerMax1);

}

else if (playerMax1.getRank() > playerMax2.getRank()) {

System.out.println(player2.getName() + "最大的手牌為:" + playerMax2);

}

else {

System.out.println("平局");

}

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

player1.printPlayerPoker();

player2.printPlayerPoker();

}

public static void main(String[] args){

GamePoker gp = new GamePoker();

gp.creatPoker();

gp.washPoker();

gp.createPlayer();

gp.sendPoker();

gp.createGame();

}


}

package pkpxm;



//撲克類

public class Poker implements Comparable<Poker>{

public String Type;? ? ? ? //撲克數字

public String Num;? ? ? ?//撲克類型

private int Rank;? ? ? ? ?//越大等級越高

public Poker(String Type,String Num){

this.Type = Type;

this.Num = Num;

}

public int getRank(){

return Rank;

}

public int compareTo(Poker arg0) {

// TODO Auto-generated method stub

return this.Num.compareTo(Num);

}


}

package pkpxm;


import java.util.ArrayList;

import java.util.List;



//玩家類

public class Player {

private String id;

private String name;

List<Poker> handPokerList;? ? ?//存放手牌

public Player(String id,String name){

this.id = id;

this.id = name;

handPokerList = new ArrayList<Poker>();

}

public String getID(){

return id;

}


public String getName() {

// TODO Auto-generated method stub

return name;

}

//玩家最后的手牌

public void printPlayerPoker(){

for (Poker poker:handPokerList) {

System.out.print(name);

System.out.println(poker.Type + poker.Num);

}

}


}


運行之后就這樣了:

--------創建撲克牌...---------

--------創建撲克牌成功!--------

為:紅桃2紅桃3紅桃4紅桃5紅桃6Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4

at pkpxm.GamePoker.creatPoker(GamePoker.java:41)

at pkpxm.GamePoker.main(GamePoker.java:120)


正在回答

1 回答

pokerList.add(new Poker(pokerType[j],pokerNum[i]));? ?// i,j 位置換下?

public Player(String id,String name){

this.id = id;

this.id = name;? ?//這里也不對

handPokerList = new ArrayList<Poker>();

}

createGame 方法 里的比較似乎不對

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

舉報

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

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

進入課程

撲克牌作業 我不知道哪里出問題了 大家能看看嗎

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

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

幫助反饋 APP下載

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

公眾號

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