ITPub博客

首页 > IT职业 > IT职场 > JAVA入门第三季——最后练习题扑克牌

JAVA入门第三季——最后练习题扑克牌

IT职场 作者:welchang 时间:2021-09-09 09:10:21 0 删除 编辑

图片描述
图片描述

玩家类:

package playCards;

import java.util.ArrayList;
import java.util.List;

//创建对象玩家,玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合

public class Players {
    public int id;
    public String name;
    public List handCards;
    public Players(Integer id,String name) {
        this.id = id;
        this.name = name;
        this.handCards = new ArrayList();
    }
}

卡牌类

package playCards;

//创建对象扑克牌,不考虑大小王
public class Cards {
    public String num;
    public String color;
    public Cards(String num, String color) {
        this.num=num;
        this.color=color;
    }
    public Cards() {

    }
    @Override
    public boolean equals(Object arg0) {
        // TODO 自动生成的方法存根
        return super.equals(arg0);
    }

}

游戏类(含main方法)

package playCards;

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class PlayGame  {

    public static List cardsToSelect;
    public static List cardsToSelectNew;
    private Scanner console;
    public Players player1;
    public Players player2;

    public PlayGame() {
        cardsToSelect = new ArrayList();
        cardsToSelectNew = new ArrayList();
        console = new Scanner(System.in);
    }

//添加扑克牌
    public void addCards() {
        System.out.println("创建扑克牌");//默认花色大小:黑桃》红桃》梅花》方片
        Cards[] cd = {new Cards("2","方片"),new Cards("2","梅花"),new Cards("2","红桃"),new Cards("2","黑桃"),
                new Cards("3","方片"),new Cards("3","梅花"),new Cards("3","红桃"),new Cards("3","黑桃"),
                new Cards("4","方片"),new Cards("4","梅花"),new Cards("4","红桃"),new Cards("4","黑桃"),
                new Cards("5","方片"),new Cards("5","梅花"),new Cards("5","红桃"),new Cards("5","黑桃"),
                new Cards("6","方片"),new Cards("6","梅花"),new Cards("6","红桃"),new Cards("6","黑桃"),
                new Cards("7","方片"),new Cards("7","梅花"),new Cards("7","红桃"),new Cards("7","黑桃"),
                new Cards("8","方片"),new Cards("8","梅花"),new Cards("8","红桃"),new Cards("8","黑桃"),
                new Cards("9","方片"),new Cards("9","梅花"),new Cards("9","红桃"),new Cards("9","黑桃"),
                new Cards("10","方片"),new Cards("10","梅花"),new Cards("10","红桃"),new Cards("10","黑桃"),
                new Cards("J","方片"),new Cards("J","梅花"),new Cards("J","红桃"),new Cards("J","黑桃"),
                new Cards("Q","方片"),new Cards("Q","梅花"),new Cards("Q","红桃"),new Cards("Q","黑桃"),
                new Cards("K","方片"),new Cards("K","梅花"),new Cards("K","红桃"),new Cards("K","黑桃"),
                new Cards("A","方片"),new Cards("A","梅花"),new Cards("A","红桃"),new Cards("A","黑桃")
                ,};
        for (Cards cards : cd) {
            cardsToSelect.add(cards);
        }
        System.out.println("创建扑克牌成功!");
    }

    //遍历所有扑克牌
    public void cardsForEach(List cardsToSelect) {
        System.out.print("所有的牌为:");
        for (Cards cards : cardsToSelect) {
            System.out.print(cards.color+cards.num+",");
        }
        System.out.println();
    }

    //洗牌
    public List shuffle(List cardsToSelect) {
        Cards cdNew = new Cards();
        Random random = new Random();
        List cardsToSelectNew = new ArrayList();
        for(int i=0;icardsToSelect.indexOf(max2)) {
            System.out.println("-----玩家"+player1.name+"获胜-----");
            System.out.println("玩家各自的手牌为:");
            System.out.println(player1.name+":["+player1.handCards.get(0).color+player1.handCards.get(0).num
                    +player1.handCards.get(1).color+player1.handCards.get(1).num+"]");
            System.out.println(player2.name+":["+player2.handCards.get(0).color+player2.handCards.get(0).num
                    +player2.handCards.get(1).color+player2.handCards.get(1).num+"]");
        }
        else {
            System.out.println("-----玩家"+player1.name+"获胜-----");
            System.out.println("玩家各自的手牌为:");
            System.out.println(player1.name+":["+player1.handCards.get(0).color+player1.handCards.get(0).num
                    +player1.handCards.get(1).color+player1.handCards.get(1).num+"]");
            System.out.println(player2.name+":["+player2.handCards.get(0).color+player2.handCards.get(0).num
                    +player2.handCards.get(1).color+player2.handCards.get(1).num+"]");
        }

    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        PlayGame game = new PlayGame();
        game.addCards();
        game.cardsForEach(cardsToSelect);
        cardsToSelectNew=game.shuffle(cardsToSelect);
        System.out.println("洗牌成功!");
        game.cardsForEach(cardsToSelectNew);
        game.addPlayer();
        game.deal();
        game.gameStart();
    }

}

第一次写手记,个人基础也不好,高级的方法用的很少,比大小的时候也是只有用原来按大小创建的卡牌的位置来比大小,希望各位大佬多多指教。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4830/viewspace-2808267/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 默认Action
请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    252
  • 访问量
    17981