iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java实现简易扑克牌游戏的完整步骤
  • 870
分享到

Java实现简易扑克牌游戏的完整步骤

2023-06-14 11:06:37 870人浏览 薄情痞子
摘要

本篇内容主要讲解“Java实现简易扑克牌游戏的完整步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现简易扑克牌游戏的完整步骤”吧!Java的特点有哪些Java的特点有哪些1.Java

本篇内容主要讲解“Java实现简易扑克牌游戏的完整步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现简易扑克牌游戏的完整步骤”吧!

Java的特点有哪些

Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。2.Java具有简单性、面向对象、分布式安全性、平台独立与可移植性、动态性等特点。3.使用Java可以编写桌面应用程序、WEB应用程序、分布式系统和嵌入式系统应用程序等。

功能描述

创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王。

创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的集合。

洗牌。将创建好的扑克牌打乱。

发牌。将洗牌之后的扑克牌集合,从第一张开始,发给两个玩家,安装一人 一张的方式,每人发两张。

游戏。比较两名玩家手中的扑克牌。规则为:去两名玩家手上点数最大的牌进行比较,点数大的赢,若点数一样大,就按照色花进行比较。

难点分析:

洗牌,如何将扑克牌进行打乱。(主要知识点Random,list.contains())

扑克牌如何进行大小比较。(主要知识点collections.sort() , comparable)

实现代码

Card.java(扑克牌类)

package com.betty.dome2; public class Card implements Comparable<Card>{// 牌面private String num;// 花色private String name;public Card(){}public Card(String num,String name){this.num = num;this.name = name;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;} @Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((name == null) ? 0 : name.hashCode());result = prime * result + ((num == null) ? 0 : num.hashCode());return result;} @Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Card other = (Card) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;if (num == null) {if (other.num != null)return false;} else if (!num.equals(other.num))return false;return true;}//  获取牌面大小private Integer getNumValue(String num){switch(num){case "A": return 12;case "2": return 13;case "3": return 1;case "4": return 2;case "5": return 3;case "6": return 4;case "7": return 5;case "8": return 6;case "9": return 7;case "10": return 8;case "J": return 9;case "Q": return 10;case "K": return 11;}return -1;}//  获取花色大小private Integer getNameValue(String name){switch(name){case "黑桃": return 4;case "红心": return 3;case "梅花": return 2;case "方块": return 1;}return -1;}@Overridepublic int compareTo(Card card) {// 如果牌面相同就看花色int numCompare = getNumValue(this.num).compareTo(getNumValue(card.num));if(numCompare == 0){return getNameValue(this.name).compareTo(getNameValue(card.name));}return numCompare;}}

Player.java(角色类)

package com.betty.dome2; import java.util.ArrayList;import java.util.List; public class Player {//  角色idprivate Integer ID;//  角色姓名private String name;//  角色获得的牌List<Card> cardList;public Player(){}public Player(Integer ID,String name){this.ID = ID;this.name = name;this.cardList = new ArrayList<Card>();} public Integer getID() {return ID;} public void setID(Integer iD) {ID = iD;} public String getName() {return name;} public void setName(String name) {this.name = name;}}

Welcome.java(主程序)

package com.betty.dome2; import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;import java.util.Scanner; public class Welcome {String[] nums = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};String[] names = {"黑桃","红心","梅花","方块"};List<Card> cardStartList;  //  开始创建扑克牌时的序列List<Card> cardEndList;   // 洗牌后的序列List<Player> playerList;  //  玩家列表public Welcome(){this.cardStartList= new ArrayList<Card>();this.cardEndList = new  ArrayList<Card>();this.playerList = new ArrayList<Player>();}//  创建扑克牌void createCard(){System.out.println("-----------创建扑克牌---------------");for (String name : names) {for (String num : nums) {cardStartList.add(new Card(num,name));}}System.out.println("---------扑克牌创建成功--------------");System.out.print("[");for(int i=0;i<cardStartList.size();i++){Card card = cardStartList.get(i);if(i%13!=0) System.out.print(",");if((i+1)%13==1 && i!=0){System.out.println("]");System.out.print("[");}System.out.print(card.getName()+card.getNum());}System.out.println("]");}//  洗牌void shuffleCard(){System.out.println("-----------开始洗牌---------------");Random random = new Random();Integer listSize = cardStartList.size();for(int i=0;i<listSize;i++){Card cd = new Card();do{cd = cardStartList.get(random.nextInt(listSize));}while(cardEndList.contains(cd));cardEndList.add(cd);}System.out.println("-----------洗牌结束---------------");}//  输入角色姓名@SuppressWarnings("resource")private String getName() {System.out.print("输入姓名:");Scanner input = new Scanner(System.in);return input.next();}//  输入角色id && 输入整数判断@SuppressWarnings("resource")private Integer getId() {Scanner input = new Scanner(System.in);Integer id;while(true){try {System.out.print("输入ID:");id = input.nextInt();break;} catch (Exception e) {System.out.println("请输入整数");input = new Scanner(System.in);}}return id;}//   创建角色private void createPlayers() {Integer playerNum = 2;for(int i=0;i<playerNum;i++){playerList.add(new Player(getId(), getName()));}for (Player player : playerList) {System.out.println("----欢迎玩家 :" + player.getName());}}//   给角色发牌private void sendCard() {System.out.println("-----------开始发牌---------------");int cardSendNum = 2,index = 0;for(int i=0;i<cardSendNum;i++){for(int j=0;j<playerList.size();j++){Player player = playerList.get(j);player.cardList.add(cardEndList.get(index++));System.out.println("----玩家 :" + player.getName()+" 拿牌");}}System.out.println("-----------发牌结束---------------");}//  游戏开始private void playGame() {System.out.println("-----------游戏开始---------------");Card maxCard = new Card("0","方块");Player winner = new Player();for(int i=0;i<playerList.size();i++){Player player = playerList.get(i);List<Card> cardList = player.cardList;Collections.sort(cardList);Card card = cardList.get(cardList.size()-1);if(maxCard.compareTo(card)<0){maxCard = card;winner = player;}System.out.println("----玩家:"+ player.getName()+ "最大的牌为:" + card.getName()+ card.getNum());}System.out.println("-----------玩家:"+winner.getName()+"获胜----------");System.out.println("玩家各自的手牌为:");for(int j=0;j<playerList.size();j++){Player player = playerList.get(j);System.out.print("玩家 :" + player.getName()+"[");for(int i=0;i<player.cardList.size();i++){if(i!=0) System.out.print(",");System.out.print(player.cardList.get(i).getName()+player.cardList.get(i).getNum());}System.out.print("]\n");}}public static void main(String[] args) {Welcome we = new Welcome();we.createCard();  // 创建扑克牌we.shuffleCard(); // 洗牌we.createPlayers();  // 创建角色we.sendCard();  // 给角色发牌we.playGame();  // 游戏开始}}

实现的效果图:

Java实现简易扑克牌游戏的完整步骤

总结

到此,相信大家对“Java实现简易扑克牌游戏的完整步骤”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Java实现简易扑克牌游戏的完整步骤

本文链接: https://www.lsjlt.com/news/270319.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现简易扑克牌游戏的完整步骤
    本篇内容主要讲解“Java实现简易扑克牌游戏的完整步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现简易扑克牌游戏的完整步骤”吧!Java的特点有哪些Java的特点有哪些1.Java...
    99+
    2023-06-14
  • Java实现简易扑克牌游戏的完整实例
    功能描述 1、创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王。 2、创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的...
    99+
    2024-04-02
  • Java实现扑克牌游戏的示例代码
    目录一、三人扑克二、具体实现Card类生成52张牌打乱顺序发牌三、完整代码一、三人扑克 想不想带上好朋友来上一局三人扑克呢。 二、具体实现 Card类 定义一个花色color变量和...
    99+
    2024-04-02
  • Python如何实现扑克牌21点游戏
    这篇文章主要介绍Python如何实现扑克牌21点游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接上代码import randomimport sys# 牌面列表card_code&...
    99+
    2023-06-22
  • C语言如何实现扑克牌游戏
    这篇文章主要介绍C语言如何实现扑克牌游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 设计目的扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个扑克牌,是因为我觉得可以提高我的...
    99+
    2023-06-22
  • 怎么通过JavaScript实现扑克牌游戏
    本篇内容介绍了“怎么通过JavaScript实现扑克牌游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,我们知道一副牌里有54张牌,然...
    99+
    2023-07-02
  • 通过JavaScript实现扑克牌游戏的示例代码
    首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ &diam...
    99+
    2024-04-02
  • Java实现扑克牌的创建以及发放
    目录题目:1.扑克牌的源代码2.扑克牌运行结果3.扑克牌代码创建原理讲解3.1创建扑克牌前的准备工作3.2 52张扑克牌的创建(除去大小王)3.3洗牌3.4发牌总结题目: 创建一个扑...
    99+
    2023-03-07
    java实现扑克牌 java发牌程序 java扑克牌游戏
  • java实现简易的五子棋游戏
    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 先上效果图 一、问题分析 1、五子棋游戏分析: 五子棋作为较为普遍且简易的娱乐游戏,受到众多人的...
    99+
    2024-04-02
  • Java使用ArrayList实现扑克牌的示例代码
    目录前言一、项目要求二、具体实现2.1 Card类2.2 生成扑克牌2.3 打乱顺序2.4 发牌三、Test.java前言 学习了关于集合类的知识,我们可以做一个小项目来加深对集合类...
    99+
    2024-04-02
  • Java模拟实现扑克牌洗牌和发牌的示例代码
    目录一. 需求二. 全局代码poker.javapokers.java三. 设计分析1. 设计一张扑克牌2. 得到一副新牌3. 洗牌4. 发牌一. 需求 设计一副新的的扑克牌, 4个...
    99+
    2024-04-02
  • Java实现简易五子棋小游戏
    本文实例为大家分享了Java实现简易五子棋小游戏的具体代码,供大家参考,具体内容如下 五子棋是一个简单小游戏,首先我们先想想五子棋都有什么东西,棋子,棋盘; 首先我们可以定义一个棋子...
    99+
    2024-04-02
  • java实现简易连连看小游戏
    本文实例为大家分享了java实现简易连连看小游戏的具体代码,供大家参考,具体内容如下 新手上路,分享一下 直接上代码 package linkgame; import javax...
    99+
    2024-04-02
  • Java如何实现扑克牌的创建及发放
    这篇文章主要讲解了“Java如何实现扑克牌的创建及发放”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现扑克牌的创建及发放”吧!题目:创建一个扑克牌(不需要包含大小王),分别分发...
    99+
    2023-07-05
  • 基于Java语言在窗体上实现飞机大战小游戏的完整步骤
    目录小组项目模块需求描述总体开发思想功能实现1.登录与结束界面2.播放音乐3.子弹运行测试登陆界面发射子弹总结小组项目 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程...
    99+
    2024-04-02
  • Java实现三子棋小游戏简易版
    本文实例为大家分享了Java实现三子棋小游戏的具体代码,供大家参考,具体内容如下 游戏操作如图示: 原理: 主要借助3x3的二维数组 实现: 1、Main–主程序 pu...
    99+
    2024-04-02
  • java如何实现简易的五子棋游戏
    这篇文章给大家分享的是有关java如何实现简易的五子棋游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下先上效果图一、问题分析1、...
    99+
    2023-06-15
  • Java实现简易GUI贪吃蛇小游戏
    本文实例为大家分享了Java实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 主启动类 import javax.swing.*; //主启动类 public class...
    99+
    2024-04-02
  • Java实现简易拼图游戏的方法详解
    目录效果展示游戏结构实现代码效果展示 介绍:游戏共有五张图片可以选择,分成了4 X 4 十六个方格,点击开始就可以开始游戏。游戏运行的截图如下: 游戏结构 实现代码 代码如下:M...
    99+
    2024-04-02
  • 利用java和sqlserver建立简易图书管理系统的完整步骤
    目录1.所需功能:2.流程:3.环境及其语言:4.数据库建立5.操作:数据库连接:sql.T3.Test1.java选择需要的操作:sql.T3.Test1.java1.游览所有图书...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作