黑马程序员技术交流社区

标题: 关于一个面试题(扑克牌的) [打印本页]

作者: 黑马-王燚    时间: 2012-10-5 12:57
标题: 关于一个面试题(扑克牌的)
扑克牌的    发牌    洗牌  程序   //听老师说是 面试题
  1. public class Poker  //扑克类
  2. {
  3.         private String color;
  4.         private String value;
  5.         public String getColor()
  6.         {
  7.                 return this.color;
  8.         }
  9.         public String getValue()
  10.         {
  11.                 return this.value;
  12.         }
  13.         Poker(String color,String value)
  14.         {
  15.                 this.color=color;
  16.                 this.value=value;
  17.         }
  18.         public static void main(String []args)//静态方法--主方法
  19.         {
  20.                 Poker p[]=new Poker[PokerTools.color.length*PokerTools.value.length];
  21.                 init(p);
  22.                 System.out.println("打印所有牌");
  23.                 showPoker(p);
  24.                 System.out.println();
  25.                 System.out.println("随机洗牌后:");
  26.                 xipai(p);
  27.                 showPoker(p);
  28.         }
  29.         public static Poker[] xipai(Poker p[])//洗牌
  30.         {
  31.                
  32.                 for (int i=0;i<p.length ;i++ )
  33.                 {
  34.                         int p1=(int)(Math.random()*52);
  35.                         int p2=(int)(Math.random()*52);

  36.                         Poker temp=p[p1];
  37.                         p[p1]=p[p2];
  38.                         p[p2]=temp;
  39.                 }
  40.                 return p;
  41.         }
  42.         public static void init(Poker p[])//初始化牌
  43.         {
  44.                
  45.                 int index=0;  //数组下标
  46.                 for (int i=0;i<PokerTools.color.length;i++ )   //----花色
  47.                 {
  48.                         for(int j=0;j<PokerTools.value.length;j++) //----值
  49.                         {
  50.                                 p[index++]=new Poker(PokerTools.color[i],PokerTools.value[j]);       
  51.                         }
  52.                 }
  53.         }
  54.         public static void showPoker(Poker p[])//打印
  55.         {
  56.                        
  57.                 for (int i=0;i<p.length ;i++ )
  58.                 {
  59.                         if(i%13==0)  //打印一组就换行  一组13张
  60.                         {
  61.                                 System.out.println();
  62.                         }
  63.                         System.out.print(p[i].getColor()+p[i].getValue()+"    ");
  64.                 }
  65.         }
  66. }

  67. class PokerTools  //扑克工具类
  68. {
  69.         public static String[] color={"黑桃","红桃","梅花","方块"};//静态成员
  70.         public static String[] value={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
  71. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2