Java实现简单的抽牌游戏

作者:Testarossa118 时间:2022-10-06 11:55:01 

本文实例为大家分享了Java实现简单抽牌游戏的具体代码,供大家参考,具体内容如下

Main类


package com.company;

import java.util.*;

public class Main
{

public static void main(String[] args)
 {
   Poke p = new Poke();
   p.shuffle();
   System.out.println("您想抽几张牌?");
   Scanner sc = new Scanner(System.in);
   int n = sc.nextInt();

System.out.println("抽取了"+n+"张牌,分别为:");
   Card[] c = p.draw(n);
   for (Card g :c ) System.out.print(g);
   System.out.println();
   p.sortOut(c);
   System.out.println("理牌完成!");
   for (Card g :c ) System.out.print(g);
 }
}

Poke类


package com.company;

import java.util.Arrays;

/**
* Created by ttc on 16-11-2.
*/
public class Poke
{
 Card[] m_card = null;
 int[] values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
 String[] colors = {"♡", "♠", "♢", "♧"};

public Poke()
 {
   m_card = new Card[52];
   for (int i = 0; i < colors.length; i++)
   {
     for (int j = 0; j < values.length; j++)
     {
       m_card[i * values.length + j] = new Card(values[j], colors[i]);
     }
   }
 }

public void outPut()
 {
   //展示当前牌序
   for (int i = 0; i < m_card.length; i++)
   {
     if (i % 13 == 0) System.out.println();
     System.out.print(m_card[i]);
   }
 }

public void shuffle()
 {
   //洗牌
   Card tempC = null;
   for (int i = 0; i < 52; i++)
   {
     tempC = m_card[i];
     int j = (int) (Math.random() * 51);
     m_card[i] = m_card[j];
     m_card[j] = tempC;
   }
   System.out.print("洗牌完成!");
 }

public Card[] draw(int n)
 {
   //抽N张牌
   Card[] c = new Card[n];
   for (int i = 0; i < n ; i++) c[i] = m_card[i];
   return c;
 }

public void sortOut(Card[] c)
 {
   //理牌
   Arrays.sort(c);
 }
}

Card类


package com.company;

/**
* Created by ttc on 16-11-2.
*/
public class Card implements Comparable
{
 private int m_values;
 private String m_colors;

public Card(int m_values, String m_colors)
 {
   this.m_values = m_values;
   this.m_colors = m_colors;
 }

@Override
 public int compareTo(Object o)
 {
   if (this.m_values > ((Card)o).m_values) return 1;
   else if(this.m_values == ((Card)o).m_values) return 0;
   else return -1;
 }

@Override
 public String toString()
 {
   String strtmp;
   switch (m_values)
   {
     case 1:
       strtmp = "A";
       break;
     case 11:
       strtmp = "J";
       break;
     case 12:
       strtmp = "Q";
       break;
     case 13:
       strtmp = "K";
       break;
     default:
       strtmp = String.valueOf(m_values);
   }
   return m_colors + strtmp + "\t";
 }
}

来源:https://blog.csdn.net/Testarossa118/article/details/53008736

标签:java,抽牌
0
投稿

猜你喜欢

  • android 通过向viewpage中添加listview来完成滑动效果(类似于qq滑动界面)

    2023-07-27 19:59:38
  • Java多线程的用法详解

    2021-10-29 19:20:59
  • java如何将一个float型数的整数部分和小数分别输出显示

    2022-08-17 16:50:26
  • java中String、StringBuffer与StringBuilder的区别

    2021-11-12 13:28:24
  • Java调用CXF WebService接口的两种方式实例

    2023-11-09 02:25:11
  • WPF MVVM示例讲解

    2022-04-16 22:47:20
  • C# SkinEngine控件 给窗体添加皮肤的方法

    2021-10-21 23:32:08
  • WPF实现调用本机摄像头的示例代码

    2023-03-15 15:40:24
  • Java读取properties配置文件的8种方式汇总

    2022-05-03 17:11:34
  • C# XML字符串包含特殊字符的处理转换方法小结

    2022-08-17 07:21:24
  • java线程池的四种创建方式详细分析

    2022-10-20 22:32:41
  • 迅速掌握Java容器中常用的ArrayList类与Vector类用法

    2022-12-16 16:18:47
  • Springboot实现多服务器session共享

    2022-09-06 13:58:34
  • Spring Boot Debug调试过程图解

    2023-12-13 10:27:33
  • C#中 MessageBox的使用技巧

    2023-06-25 16:15:48
  • 分析java中全面的单例模式多种实现方式

    2021-12-28 05:40:29
  • Java动态代理分析及理解

    2021-10-21 14:59:58
  • android: targetSdkVersion升级中Only fullscreen activities can request orientation问题的解决方法

    2023-07-26 13:56:08
  • Springboot定时任务Scheduled重复执行操作

    2021-10-08 00:35:54
  • SpringBoot中的Aop用法示例详解

    2023-03-31 14:12:00
  • asp之家 软件编程 m.aspxhome.com