ITPub博客

首页 > IT职业 > IT职场 > 简易扑克牌游戏的简易实现

简易扑克牌游戏的简易实现

IT职场 作者:luckybird 时间:2021-09-09 09:06:12 0 删除 编辑

今天学完了Java入门第三季的最后一课,完成了课后作业,实现了简易扑克游戏。游戏很简单,代码实现也不难,但做了这个很能理解Java面向对象的作用。 就这个游戏而言,我主要是分为三个class:Poker,Player,Game。

  • 扑克牌类,包含元素是扑克牌的点数和花色,并且定义扑克牌之间比较大小的规则。
  • 玩家类复杂点,除了玩家的ID和名字,还有所拥有的手牌,在后面发现游戏用到的最大手牌,也设在玩家类里,这样能更好处理对应关系。
  • 主程序main在Game里面,把游戏的整个过程实现出来,分步用成员函数实现:新建整副扑克牌,产生游戏玩家,洗牌,发牌,开始游戏。
程序运行如下图:

图片描述

剩下的代码来展示,注释比较少,但输出的提示应该够看了。

游戏主程序
package com.imooc.homework;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * Created by LinHongwei on 2017/9/14.
 */
public class Game {
    private final String[] cardPointArr={"A","K","Q","J","10","9","8","7","6","5","4","3","2"};
    private final String[] cardTypeArr={"黑桃","红桃","梅花","方块"};
    private List allPoker;
    private List players;

    public void createPokerCards(){
        allPoker = new ArrayList();
        System.out.println("~~~~~~~~~创建并展示所有扑克牌~~~~~~~~~~");
        for(int i=0;i();
        System.out.println("请输入第一个玩家的ID:");
        id=console.next();
        System.out.println("请输入第一个玩家的姓名");
        name=console.next();
        Player player1=new Player(id,name);
        players.add(player1);
        System.out.println("~~~~~欢迎玩家:"+player1.getName());

        System.out.println("请输入第二个玩家的ID:");
        id=console.next();
        System.out.println("请输入第二个玩家的姓名");
        name=console.next();
        Player player2=new Player(id,name);
        players.add(player2);
        System.out.println("~~~~~欢迎玩家:"+player2.getName());
    }

    public void shuffleCard() {
        System.out.println("——————————开始洗牌——————————");
        Collections.shuffle(allPoker);
        System.out.println("——————————洗牌结束——————————");
    }

    public void dealCard(){
        System.out.println("——————————开始发牌——————————");
        for(int i=0;imaxCards=new ArrayList();
        for(int i=0;i
扑克牌
package com.imooc.homework;

import java.util.*;

/**
 * Created by LinHongwei on 2017/9/14.
 */
public class Poker implements Comparable{
    private String type;
    private String Num;
    public Poker(String a,String b){
        Num=a;
        type=b;
    }
    public Poker(){

    }

    public String getInfo(){
        return Num+"-"+type;
    }

    @Override
    public int compareTo(Poker o) {
        final String[] cardPointArr={"A","K","Q","J","10","9","8","7","6","5","4","3","2"};
        final String[] cardTypeArr={"黑桃","红桃","梅花","方块"};
        List cardPointList= Arrays.asList(cardPointArr);
        List cardTypeList= Arrays.asList(cardTypeArr);
        int a,b;
        a=cardPointList.indexOf(this.Num);
        b=cardPointList.indexOf(o.Num);
        if(ab) return -1;
        else{
            a=cardTypeList.indexOf(this.type);
            b=cardTypeList.indexOf(o.type);
            if(ab) return -1;
            else return 0;
        }
    }

    public static void main(String[] args){
        Poker A=new Poker("A","黑桃");
        Poker B=new Poker("4","黑桃");
        Poker C=new Poker("A","方块");
        List list= new ArrayList();
        list.add(A);
        list.add(B);
        list.add(C);
        Collections.sort(list);
        for(int i=0;i
游戏玩家
package com.imooc.homework;

import javax.sql.PooledConnection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Created by LinHongwei on 2017/9/14.
 */
public class Player {
    private String id;
    private String name;
    private List hasCards;
    private Poker maxCard;

    public Player(String id, String name) {
        this.id = id;
        this.name = name;
        hasCards = new ArrayList();
        maxCard = new Poker();
    }

    public List getHasCards() {
        return hasCards;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Poker getMaxCard() {
        Collections.sort(this.hasCards);
        this.maxCard =this.hasCards.get(1);
        return maxCard;
    }

}

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

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    113
  • 访问量
    1392