Q1: 完成一个“卡牌操作”的类-航电java题目

Q1: 完成一个“卡牌操作”的类

hdu Java练习题

题目要求:
以面向对象方式写一个“卡牌操作”类:CardOperator
具有以下功能(类似扑克的功能,具体解释见后续ppt):
功能1:初始化卡牌,initialCards()
功能2:显示卡牌(每13张牌换行) ,showCards()
功能3:洗牌(将牌打乱),shuffleCards()
功能4:对所有牌理牌(重新排序,按A-2-3-…-K排序),rankCards()
功能5:发牌,将已经混排好的牌进行发牌,发指定数量的前N张牌, dealCards()
功能6:展示所发的牌,将已经发好牌依次显示出来(每13张牌换行), showDealCards()
功能7:按斗地主方式对发出的牌理牌(从大到小排序,2最大), rankCardsDDZ
功能8:按自定义方式对发出的牌理牌(先按花色(黑>红>方>草),再按牌值(相同花色内2最大)),rankCardsUDF()

写一个主控程序:MainProcess类(包含main函数)
调用CardOperator完成各种卡牌操作
MainProcess类(直接copy下页中的代码即可)
输出结果如下页ppt所示
在这里插入图片描述


答案:

按如图所示建立java包和类:

在这里插入图片描述

  1. CardOperator类:
package cn.edu.hdu.test3.problem1;

import java.util.*;

public class CardOperator {
   
    private int num_per_cards = 52; // 每副卡牌的数量
    private int cards_num; // 一共几副牌
    private int[][] cards; // 卡牌数组,例如3副牌,就是3*52的二维矩阵
    private int deal_cards_num; // 指定发牌的数量
    private int[] deal_cards; // 用于存储发出的牌

    public CardOperator(int user_input_cards_num) {
   
        // 接受用户指定的"几副牌"初始化成员变量
        this.cards_num = user_input_cards_num;
        this.cards = new int[this.cards_num][this.num_per_cards];
        initialCards();
    }

    public void initialCards() {
   
        // 每副牌都按照黑桃、红桃、方片、草花,A-K的顺序初始化
        // 即系统认定先是13张黑桃,再13张红桃A-K,再13张方片A-K,最后13张草花A-K
        for (int i = 0; i < cards_num; i++) {
   
            for (int j = 0; j < num_per_cards; j++) {
   
                cards[i][j] = j;
            }
        }
    }

    public void showCards() {
   
        // 依次显示每副牌的牌面
        for (int i = 0; i < cards_num; i++) {
   
            System.out.println("Deck " + (i + 1) + ":");
            for (int j = 0; j < num_per_cards; j++) {
   
                System.out.print(getCardType(cards[i][j]) + getCardValue(cards[i][j]) + " ");
            }
            System.out.println();
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值