第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

這是我寫的簡易撲克牌游戲,希望能幫到大家,歡迎建議,共同進步

******player.java**************************************************

package com.PokeGame;

import java.util.ArrayList;

import java.util.List;


public class Player {


????public int id;

????public String name;

????public List<Poke> handpoke;//用來存放玩家手牌


????public Player(int id,String name) {

????????this.id = id;

????????this.name = name;

????????this.handpoke = new ArrayList<Poke>();

????}

}

******poke.java******************************************************

package com.PokeGame;


public class Poke {

????public String pointsort;//用于游戲點數(shù)排序比較

????public String flowercolorsort;//用于游戲花色排序

????public String flowercolor;

????public String point;


????public Poke(String flowercolor, String point, String pointsort, String flowercolorsort){

????this.flowercolor = flowercolor;

????this.point = point;

????this.pointsort = pointsort;

????this.flowercolorsort = flowercolorsort;

????}

????@Override

????public String toString() {

????return flowercolor + point ;

????}

}

******Shuffle.java******************************************************

package com.PokeGame;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;


public class Shuffle {

????//用于存放撲克牌的List

????public List<Poke> pokes;

????public? Shuffle(){

????pokes = new ArrayList<>();

????}

????/**

????* 創(chuàng)建撲克牌并添加到撲克牌List

????*/

????public void pokeCreate(){

????????String[] flowercolor = {"方塊","梅花","紅桃","黑桃"};

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

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

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

????????????????Poke poke = new Poke(flowercolor[i],point[j],j+"",i+"");

????????????????this.pokes.add(poke);

????????????}

????????}

????????System.out.println("------------------創(chuàng)建撲克牌成功----------------");

????????System.out.println(this.pokes.toString());

????}

????/**

????* 使用Collections.shuffle()隨機打亂List順序;

????*/

????public void pokeShuffle(){

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

????????Collections.shuffle(pokes);

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

????}

}

******Game.java******************************************************

package com.PokeGame;

import java.util.ArrayList;

import java.util.Collections;

import java.util.InputMismatchException;

import java.util.List;

import java.util.Random;

import java.util.Scanner;


public class Game {

????//定義一個玩家List

????public List<Player> players;

????public Game() {

????????//初始化玩家List

????????players = new ArrayList<Player>();

????}

????/**

????* 創(chuàng)建兩位玩家進行游戲

????* 通過輸入玩家ID和姓名進行創(chuàng)建

????*/

????public void createplayer(){

????????System.out.println("------------------創(chuàng)建玩家..---------------");

????????for(int i = 1; i < 3; i++){

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

????????????try {

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

????????????????Scanner console = new Scanner(System.in);

????????????????int playerid = console.nextInt();

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

????????????????String name = console.next();

????????????????Player player = new Player(playerid,name);

????????????????players.add(player);

?????????????} catch (InputMismatchException e) {

????????????????System.out.println("請輸入整數(shù)類型的ID!");

????????????????i--;

????????????????continue;

????????????}

????????}

????}

????/**

????* 通過For Each遍歷玩家List

????*/

????public void forEachPlayers(){

????????for (Player player : players) {

????????????System.out.println("------歡迎玩家:" + player.name);

????????}

????}

????/**

????*傳入創(chuàng)建撲克牌并洗牌的Shuffle類的實例s,

????*才能使用創(chuàng)建存放撲克牌名為pokes的List,

????*并隨機生成52以內的整數(shù)(一共52張牌)作為

????*添加進玩家手牌handpoke中的poke在List中的位置

????*/

????public void faPai(Shuffle s){

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

????????Random random = new Random();

????????for(int i = 0; i < 4; i++){

????????????if(i==0||i==2){

????????????????int a = random.nextInt(52);

????????????????players.get(0).handpoke.add(s.pokes.get(a));

????????????????//往玩家手牌(handpoke)List中添加完一張牌,將這張牌從(Pokes)List中刪除

????????????????s.pokes.remove(a);

????????????????System.out.println("玩家:" + players.get(0).name + "--拿牌");

????????????}else{

????????????????int b = random.nextInt(51);

????????????????players.get(1).handpoke.add(s.pokes.get(b));

????????????????System.out.println("玩家:" + players.get(1).name + "--拿牌");

????????????}

????????}

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

????}

????/**

????* 通過調用Collectoins的sort()方法對玩家手牌List(handpoke)進行排序,

????* 因為每個玩家只有兩張手牌,排序之后輸入位置為1的元素就是最大手牌

????* 同過實現(xiàn)Comparator接口,用手牌中的pointsort和flowercolorsort,

????* 分別是點數(shù)排序和花色排序

????*/

????public void handPokeSort(){

????????Collections.sort(players.get(0).handpoke, new PokeComparator());

????????System.out.println("玩家:" + players.get(0).name + "最大的手牌為:"+

????????????????players.get(0).handpoke.get(1).toString());

????????Collections.sort(players.get(1).handpoke, new PokeComparator());

????????System.out.println("玩家:" + players.get(1).name + "最大的手牌為:"+

????????????????players.get(1).handpoke.get(1).toString());

????????//定義一個新的List用于存放兩名玩家最大的手牌

????????List<Poke> compare = new ArrayList<Poke>();

????????compare.add(players.get(0).handpoke.get(1));

????????compare.add(players.get(1).handpoke.get(1));

????????Collections.sort(compare, new PokeComparator());

????????//通過輸出的w值來判斷哪名玩家獲勝

????????int w;

????????if(compare.get(1).equals(players.get(0).handpoke.get(1))){

????????????w = 0;

????????}else{

????????????w = 1;

????????}

????????System.out.println("------------------玩家"+players.get(w).name+"獲勝!----------------");

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

????????System.out.println(players.get(0).name+":"+players.get(0).handpoke.toString());

????????System.out.println(players.get(1).name+":"+players.get(1).handpoke.toString());

????}

????public static void main(String[] args) {

????????Shuffle s = new Shuffle();

????????s.pokeCreate();

????????s.pokeShuffle();

????????Game g = new Game();

????????g.createplayer();

????????g.forEachPlayers();

????????g.faPai(s);

????????g.handPokeSort();

????}

}

******PokeComparator.java******************************************************

package com.PokeGame;

import java.util.Comparator;


public class PokeComparator implements Comparator<Poke> {

????@Override

????public int compare(Poke o1, Poke o2) {

????????if(o1.pointsort.equals(o2.pointsort)){

????????????return o1.flowercolorsort.compareTo(o2.flowercolorsort);

????????}else{

????????????return o1.pointsort.compareTo(o2.pointsort);

????????}

????}

}


正在回答

5 回答

直接用compareTo方法好像比較J,Q,K,A大小好像有問題啊


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

Aokijic

哦,懂了
2018-08-13 回復 有任何疑惑可以回復我~

我突然發(fā)現(xiàn)自己沒有考慮到創(chuàng)建玩家ID相同的情況,大家做的時候記得考慮

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

?players.get(0).handpoke.add(s.pokes.get(a));? ? 這是什么意思????


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

Hu丶0403 提問者

取players玩家List的第一個元素-序號為0的玩家,并且往該玩家的手牌List-handpoke中添加一張撲克牌,a為從0-52之內隨機獲取的整數(shù),s是洗牌類Shuffle的形參,只有傳入s,才可以調用在s中定義并生成的撲克牌List,也就是pokes,然后通過get()方法獲得一張位置為a的撲克牌元素,才能通過add()方法添加進玩家手牌中
2018-08-02 回復 有任何疑惑可以回復我~
#2

SHFa 回復 Hu丶0403 提問者

那意思就是往玩家0的手排上添加一個 從list中存儲的一張牌,而這張牌是隨機的?
2018-08-03 回復 有任何疑惑可以回復我~
#3

Hu丶0403 提問者 回復 SHFa

是的,不過之前已經洗過牌的,這一步好像有點多余了,你可以試著簡化一下
2018-08-03 回復 有任何疑惑可以回復我~
#4

SHFa 回復 Hu丶0403 提問者

好的謝謝
2018-08-04 回復 有任何疑惑可以回復我~
查看1條回復

你好,我不太明白你的創(chuàng)建撲克牌的代碼里i+"",j+""這部分,這樣就是String類型了嗎?而且我試了一下你的創(chuàng)建方法不知道為什么打印出來的撲克牌是地址

http://img1.sycdn.imooc.com//5b5ee93d00019b4e14400952.jpg

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

Hu丶0403 提問者

是的,相加之后就會變成String類型的了,你之所以打印出來的是地址應該是沒有重寫撲克牌類poke的toString方法
2018-08-02 回復 有任何疑惑可以回復我~

這是最終的運行結果

https://img1.sycdn.imooc.com//5b5b9ea1000185b910500815.jpg

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

舉報

0/150
提交
取消

這是我寫的簡易撲克牌游戲,希望能幫到大家,歡迎建議,共同進步

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號