6、写一个发牌代码,三个人玩,斗地主,注意底牌留三张
public static void main(String[] argc)
{
ArrayList<String> U1=new ArrayList<String>();
ArrayList<String> U2=new ArrayList<String>();
ArrayList<String> U3=new ArrayList<String>();
ArrayList<String> dipai=new ArrayList<String>();
dipai=faPai(allPai(),U1,U2,U3);
System.out.println("玩家1的牌:"+U1);
System.out.println("玩家2的牌:"+U2);
System.out.println("玩家3的牌:"+U3);
System.out.println("底牌:"+dipai);
}
public static ArrayList<String> faPai(ArrayList<String>pai,ArrayList<String>U1,ArrayList<String>U2,ArrayList<String>U3)
{
Collections.shuffle(pai);
for(int i=0;i<51;i++)
{
if(i%3==0) {
U1.add(pai.get(i));
}
else if(i%3==1) {
U2.add(pai.get(i));
}
else
{
U3.add(pai.get(i));
}
}
ArrayList<String> dipai=new ArrayList<String>();
dipai.add(pai.get(51));
dipai.add(pai.get(52));
dipai.add(pai.get(53));
return dipai;
}
public static ArrayList<String> allPai()
{
ArrayList<String> list=new ArrayList<String>();
list.add("大王");
list.add("小王");
ArrayList<String> color=new ArrayList<String>();
color.add("黑桃");
color.add("红桃");
color.add("方块");
color.add("梅花");
//ArrayList<Integer> number=new ArrayList<Integer>();
ArrayList<String> letter=new ArrayList<String>();
for(int i=2;i<11;i++)
{
letter.add(i+"");
}
letter.add("J");
letter.add("Q");
letter.add("K");
letter.add("A");
//集合的循环
for(String s:color)
{
for(String ss:letter)
{
list.add(s+ss);
}
}
System.out.println(list);
return list;
}
5、首先初始化一个Hero集合,里面放100个Hero对象,名称分别是从
hero 0
hero 1
hero 2
…
hero 99.
通过遍历的手段,删除掉名字编号是8的倍数的对象
public static void main(String[] argc)
{
ArrayList<String> list =new ArrayList<String>();
for(int i=0;i<100;i++) {
//list.add("hero"+i);
if(i%8!=0)
{
list.add("hero"+i);
}
}
System.out.println(list);
//ArrayList<Integer> list =new ArrayList<Integer>();
}
4.首先初始化一个List,长度是10,值是0-9。然后不断的shuffle,直到前3位出现3 1 4
shuffle 1000,000 次,统计出现的概率
public static void main(String[] argc)
{
int num=0;
for(int j=0;j<1000000;j++)
{
ArrayList<Integer> list =new ArrayList<Integer>();
for(int i=0;i<10;i++)
{
int random=(int)(Math.random()*10);
list.add(i, random);
}
//System.out.println(list);
//System.out.println(list.get(1));
if(list.get(0)==3&&list.get(1)==1||list.get(2)==4)
{
num++;
}
}
System.out.println(num);
NumberFormat number=NumberFormat.getInstance();
number.setMaximumFractionDigits(6);
String result =number.format((float)num/(float)1000000);
System.out.println(result);
}
*3、找出下个月的倒数第3天是哪天
public static void main(String[] argc)
{ //转换格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//转换为日历
Calendar cd=Calendar.getInstance();
int year=cd.get(Calendar.YEAR);
//当前月份要加1
int month=cd.get(Calendar.MONTH)+1;
System.out.println(year);
System.out.println(month);
cd.set(Calendar.YEAR,year);
cd.set(Calendar.MONTH,month+1);
//cd==现在的日期,求倒数第三天,一定要有cd.set(Calendar.DAY_OF_MONTH,1);
cd.set(Calendar.DAY_OF_MONTH,1);
cd.add(Calendar.DAY_OF_MONTH,-3);//注意为add
//String s1=sdf.format(cd.)
System.out.println(sdf.format(cd.getTime()));
}
2.准备一个长度是9的日期数组
使用1970年-2000年之间的随机日期初始化该数组,按照这些日期的时间进行升序排序
比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大
public static void main(String[] argc)
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
//
String[] array=new String[9];
Date[] dateArray=new Date[9];
Date[] getArray=new Date[9];
System.out.println("得到随机数组日期:");
for(int i=0;i<dateArray.length;i++)
{
//年
int y=(int)(Math.random()*30+1970);//
//月
int M=(int)(Math.random()*12+1);//M在[1,12]中
//日
int d=0;
if(M==2)
{
d=(int)(Math.random()*29+1);
}
else if(M==4||M==6||M==9||M==11)
{
d=(int)(Math.random()*30+1);
}
else
{
d=(int)(Math.random()*31+1);
}
//小时
int H=(int)(Math.random()*24+1);
//分钟
int m=(int)(Math.random()*60+1);
//秒
int s=(int)(Math.random()*60+1);
GregorianCalendar date=new GregorianCalendar(y,M,d,H,m,s);
GregorianCalendar datee=new GregorianCalendar(y,M,d);
Date date0=new Date();
date0=date.getTime();
Date date1=datee.getTime();
String str1=sdf.format(date0);
array[i]=str1;
dateArray[i]=date0;
getArray[i]=date1;
//System.out.println(array[i]);
//System.out.println(dateArray[i]);
//System.out.println(getArray[i]);
//getArray[i]得到 的数组如下,时间为零;
//Thu Jan 05 00:00:00 CST 1995
//Tue Oct 02 00:00:00 CST 1973
//Sat Jul 27 00:00:00 CST 1996
//Tue Oct 02 00:00:00 CST 1990
//Wed Mar 03 00:00:00 CST 1993
//Tue Jan 17 00:00:00 CST 1989
//Sat Oct 09 00:00:00 CST 1976
//Wed Aug 21 00:00:00 CST 1996
//Fri Dec 09 00:00:00 CST 1983
}
long[] a=new long[9];//毫秒相减存于数组a中
for(int i=0;i<array.length;i++)
{
a[i]=dateArray[i].getTime()-getArray[i].getTime();
//System.out.println(a[i]);
}
//冒泡排序
for(int i=0;i<a.length-1;i++)
{
for(int j=0;j<a.length-1-i;j++)
{
if(a[j]>a[j+1])
{
long temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
String tempp=array[j];
array[j]=array[j+1];
array[j+1]=tempp;
}
}
}
System.out.println("排序后的时间为");
for(int i=0;i<a.length;i++)
{
System.out.println(array[i]);
}
}
1.借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期
public static void main(String[] argc)
{
//月
int M=(int)(Math.random()*12+1);//M在[1,12]中
//System.out.println(M);
//日
int d=0;
if(M==2)
{
d=(int)(Math.random()*29+1);
}
else if(M==4||M==6||M==9||M==11)
{
d=(int)(Math.random()*30+1);
}
else
{
d=(int)(Math.random()*31+1);
}
//小时
int H=(int)(Math.random()*24+1);
//分钟
int m=(int)(Math.random()*60+1);
//秒
int s=(int)(Math.random()*60+1);
System.out.println("1995."+M+"."+d+" "+H+":"+m+":"+s);
}