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

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

不知道思路對不對,感覺代碼有點多

Card類:定義撲克屬性

Player類:定義玩家屬性

CompareCard類:定義撲克牌比較規(guī)則,定義compare方法

CardGame類:程序主入口


package com.game;

public class Card {

public String points;

public String colour;

public Card(String colour,String points) {

this.points=points;

this.colour=colour;

}

public Card() {

}

/**

* @return the points

*/

public String getPoints() {

return points;

}

/**

* @param points the points to set

*/

public void setPoints(String points) {

this.points = points;

}

/**

* @return the colour

*/

public String getColour() {

return colour;

}

/**

* @param colour the colour to set

*/

public void setColour(String colour) {

this.colour = colour;

}

public int GetColourWeight(String colour) {

if(colour.equals("黑桃")) {

return 4;

}

if(colour.equals("紅桃")) {

return 3;

}

if(colour.equals("梅花")) {

return 2;

}

if(colour.equals("方塊")) {

return 1;

}

return 0;

}

public int GetPointsWeight(String points) {


if(points.equals("2")) {

return 2;

}

if(points.equals("3")) {

return 3;

}

if(points.equals("4")) {

return 4;

}

if(points.equals("5")) {

return 5;

}

if(points.equals("6")) {

return 6;

}

if(points.equals("7")) {

return 7;

}

if(points.equals("8")) {

return 8;

}

if(points.equals("9")) {

return 9;

}

if(points.equals("10")) {

return 10;

}

if(points.equals("J")) {

return 11;

}

if(points.equals("Q")) {

return 12;

}

if(points.equals("K")) {

return 13;

}

if(points.equals("A")) {

return 14;

}

return 0;

}

}


package com.game;

public class Player {

public int id;

public String name;

public Player(int id,String name) {

this.id=id;

this.name=name;

}

}


package com.game;

import java.util.Comparator;

public class CompareCard implements Comparator<Card> {

@Override

public int compare(Card o1, Card o2) {

// TODO Auto-generated method stub

if(o1.GetPointsWeight(o1.getPoints())>o2.GetPointsWeight(o2.getPoints())) {

return 1;

}

if(o1.GetPointsWeight(o1.getPoints())<o2.GetPointsWeight(o2.getPoints())) {

return -1;

}

if(o1.GetPointsWeight(o1.getPoints())==o2.GetPointsWeight(o2.getPoints())) {

if(o1.GetColourWeight(o1.getColour())>o2.GetColourWeight(o2.getColour())) {

return 1;

}

else if(o1.GetColourWeight(o1.getColour())<o2.GetColourWeight(o2.getColour())) {

return -1;

}

else if(o1.GetColourWeight(o1.getColour())==o2.GetColourWeight(o2.getColour())){

return 0;

}

}

return 0;

}

}


package com.game;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.InputMismatchException;

import java.util.List;

import java.util.Random;

import java.util.Scanner;

public class CardGame {

/**

* 1、創(chuàng)建一副撲克牌

* 包括四種花色:黑桃、紅桃、梅花、方片

* 十三中點數(shù):2-10,J,Q,K,A,不考慮大小王

* 2、創(chuàng)建兩名玩家

* 玩家至少要有ID、姓名、手牌等屬性,手牌為撲克牌的集合

* 3、洗牌

* 將之前創(chuàng)建的"一副撲克牌"打亂順序

* 4、發(fā)牌

* 將洗牌之后的撲克牌集合,從第一張開始,發(fā)給兩名玩家,按照一人一張的方式,每人發(fā)兩張

* 5、游戲

* 比較兩名玩家手中的撲克牌,規(guī)則為:取兩人各自手中點數(shù)最大的牌進行比較,點數(shù)大的贏;

* 若兩人各自的點數(shù)最大的牌相等,則按花色比較

* @param args

*/

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

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

public List<Card> cardList=new ArrayList<>();

public List<Player> playerList=new ArrayList<>();

public List<Card> player1CardList=new ArrayList<>();

public List<Card> player2CardList=new ArrayList<>();

//創(chuàng)建一副撲克牌

public void createCard() {

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

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

cardList.add(new Card(colours[i],points[j]));

}

}

}

//創(chuàng)建兩名玩家,玩家ID必須是整數(shù)類型且捕獲異常

public void createPlayer() {

Scanner sc=new Scanner(System.in);

System.out.println("請輸入兩名玩家的ID和姓名:");

for(int i=0;i<2;i++) {

int playerId;

String playerName;

while(true){

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

try {

playerId=sc.nextInt();

break;

}catch(Exception e) {

System.out.println("您應(yīng)該輸入整數(shù)!");

sc.next();

}

}

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

playerName=sc.next();

playerList.add(new Player(playerId,playerName));

}

}

//foreach玩家名單

public void foreachPlayerList() {

for (Player player : playerList) {

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

}

}

//洗牌,打亂撲克牌順序

public void changeCard() {

System.out.println("------------洗牌------------:");

Collections.shuffle(cardList);

}

//foreach撲克牌

public void foreachCard() {

for (Card card : cardList) {

System.out.println("元素:"+card.colour+card.points);

}

}

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

public void takeCard() {


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

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

if(i%2==0) {

player1CardList.add(cardList.get(i));

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

//System.out.println(playerList.get(0).name+"拿牌:"+player1CardList.get(i/2).colour+player1CardList.get(i/2).points);

continue;

}

if(i%2!=0) {

player2CardList.add(cardList.get(i));

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

//System.out.println(playerList.get(1).name+"拿牌:"+player2CardList.get((i-1)/2).colour+player2CardList.get((i-1)/2).points);

continue;

}

}

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

}

//開始游戲,比較兩名玩家手中的撲克牌,規(guī)則為:取兩人各自手中點數(shù)最大的牌進行比較,點數(shù)大的贏

//若兩人各自的點數(shù)最大的牌相等,則按花色比較

public void comparePlayerCarList() {

CompareCard cc=new CompareCard();

Card maxCardPlayer1=new Card();

Card maxCardPlayer2=new Card();

int resultPlayer1=cc.compare(player1CardList.get(0), player1CardList.get(1));

int resultPlayer2=cc.compare(player2CardList.get(0), player2CardList.get(1));

if(resultPlayer1==1) {

maxCardPlayer1=player1CardList.get(0);

}else {

maxCardPlayer1=player1CardList.get(1);

}

System.out.println("玩家:"+playerList.get(0).name+"最大的手牌為:"+maxCardPlayer1.colour+maxCardPlayer1.points);

if(resultPlayer2==1) {

maxCardPlayer2=player2CardList.get(0);

}else {

maxCardPlayer2=player2CardList.get(1);

}

System.out.println("玩家:"+playerList.get(1).name+"最大的手牌為:"+maxCardPlayer2.colour+maxCardPlayer2.points);

if(cc.compare(maxCardPlayer1, maxCardPlayer2)==1) {

System.out.println("------------玩家:"+playerList.get(0).name+"獲勝");

}

if(cc.compare(maxCardPlayer1, maxCardPlayer2)==-1) {

System.out.println("------------玩家:"+playerList.get(1).name+"獲勝");

}

}

public void showHandCard() {

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

System.out.println(playerList.get(0).name+":["+player1CardList.get(0).colour+player1CardList.get(0).points

+","+player1CardList.get(1).colour+player1CardList.get(1).points+"]");

System.out.println(playerList.get(1).name+":["+player2CardList.get(0).colour+player2CardList.get(0).points

+","+player2CardList.get(1).colour+player2CardList.get(1).points+"]");

}

public static void main(String[] args) {

CardGame cg=new CardGame();

cg.createPlayer();

cg.foreachPlayerList();

cg.createCard();

cg.changeCard();

cg.foreachCard();

cg.takeCard();

cg.comparePlayerCarList();

cg.showHandCard();

}

}

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

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


正在回答

2 回答

為什么在getPointsWeight和getColorWeight方法中最后要加return 0

我知道不加的話會報錯,但是如果最后面寫個return 0,難道不是意思為:不管是if哪種情況,最后都將0返回嗎,求教

0 回復(fù) 有任何疑惑可以回復(fù)我~

牛逼哦

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

不知道思路對不對,感覺代碼有點多

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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