import java.util.*;
public class ApplycationCard
{
public static void main(String[] args)
{ Deck deckcards=new Deck();
deckcards.riffleCard();
deckcards.dealCard(); }
}
一个类;
import java.util.*;
public class Deck
{ public Card[] cards;
public Deck() {
cards=new Card[52];
for(int i=0;i <4;i++)
{
for(int j=1;j <14;j++)
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]);
}
}
for(Card e:cards)
System.out.println(e.toString());
} public void riffleCard()
{
Card[] tempCard=new Card[52];
for(int i=52;i>=1;i--)
{ int temp=(int)Math.round((Math.random()*100))%i;
tempCard[52-i]=cards[temp];
cards[temp]=cards[i-1];
}
for(int i=0;i <52;i++)
cards[i]=tempCard[i]; }
public void dealCard()
{
Card[] tempOne=new Card[13];
Card[] tempTwo=new Card[13];
Card[] tempThree=new Card[13];
Card[] tempFour=new Card[13]; for(int i=0;i <52;)
{
tempOne[i/4]=cards[i];
tempTwo[(i-1)/4]=cards[i+1];
tempThree[(i-2)/4]=cards[i+2];
tempFour[(i-3)/4]=cards[i+3];
i+=4;
}
for(Card e:tempOne)
System.out.println(e.toString());
for(Card e:tempTwo)
System.out.println(e.toString());
for(Card e:tempThree)
System.out.println(e.toString());
for(Card e:tempFour)
System.out.println(e.toString()); }
}
一个类; import java.util.*; enum Suit{CLUBS,SPADE,DIAMONDS,HEARTS}
enum Rank{Ace,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King}
public class Card
{
public Suit suit;
public Rank rank;
public void Card()
{} public Card(Suit newsuit,Rank newrank)
{
suit=newsuit;
rank=newrank;
} public String toString()
{
return "The"+rank+"of"+suit+"s";
} }
一个类;
运行,mian出错Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException,编译正常通过。我是新手,希望高手解答。(一副牌,import java.util.*;
public class ApplycationCard //应用类,主函数
{
public static void main(String[] args)
{ Deck deckcards=new Deck();
deckcards.riffleCard();
deckcards.dealCard(); }
}
一个类;
import java.util.*;
public class Deck //定义一个牌
{ public Card[] cards;
public Deck() {
cards=new Card[52];
for(int i=0;i <4;i++)
{
for(int j=1;j <14;j++)
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]);
}
}
for(Card e:cards)
System.out.println(e.toString());
} public void riffleCard() //洗牌
{
Card[] tempCard=new Card[52];
for(int i=52;i>=1;i--)
{ int temp=(int)Math.round((Math.random()*100))%i;
tempCard[52-i]=cards[temp];
cards[temp]=cards[i-1];
}
for(int i=0;i <52;i++)
cards[i]=tempCard[i]; }
public void dealCard() //发牌
{
Card[] tempOne=new Card[13];
Card[] tempTwo=new Card[13];
Card[] tempThree=new Card[13];
Card[] tempFour=new Card[13]; for(int i=0;i <52;)
{
tempOne[i/4]=cards[i];
tempTwo[(i-1)/4]=cards[i+1];
tempThree[(i-2)/4]=cards[i+2];
tempFour[(i-3)/4]=cards[i+3];
i+=4;
}
for(Card e:tempOne)
System.out.println(e.toString());
for(Card e:tempTwo)
System.out.println(e.toString());
for(Card e:tempThree)
System.out.println(e.toString());
for(Card e:tempFour)
System.out.println(e.toString()); }
}
一个类; import java.util.*; enum Suit{CLUBS,SPADE,DIAMONDS,HEARTS}
enum Rank{Ace,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King}
public class Card //把花色和大小定义一个类
{
public Suit suit;
public Rank rank;
public void Card()
{} public Card(Suit newsuit,Rank newrank)
{
suit=newsuit;
rank=newrank;
} public String toString()
{
return "The"+rank+"of"+suit+"s";
} }
一个类;
运行,mian出错Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException,编译正常通过。我是新手,希望高手解答。谢谢(一副牌,除去大小王,分给四个人)
public class ApplycationCard
{
public static void main(String[] args)
{ Deck deckcards=new Deck();
deckcards.riffleCard();
deckcards.dealCard(); }
}
一个类;
import java.util.*;
public class Deck
{ public Card[] cards;
public Deck() {
cards=new Card[52];
for(int i=0;i <4;i++)
{
for(int j=1;j <14;j++)
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]);
}
}
for(Card e:cards)
System.out.println(e.toString());
} public void riffleCard()
{
Card[] tempCard=new Card[52];
for(int i=52;i>=1;i--)
{ int temp=(int)Math.round((Math.random()*100))%i;
tempCard[52-i]=cards[temp];
cards[temp]=cards[i-1];
}
for(int i=0;i <52;i++)
cards[i]=tempCard[i]; }
public void dealCard()
{
Card[] tempOne=new Card[13];
Card[] tempTwo=new Card[13];
Card[] tempThree=new Card[13];
Card[] tempFour=new Card[13]; for(int i=0;i <52;)
{
tempOne[i/4]=cards[i];
tempTwo[(i-1)/4]=cards[i+1];
tempThree[(i-2)/4]=cards[i+2];
tempFour[(i-3)/4]=cards[i+3];
i+=4;
}
for(Card e:tempOne)
System.out.println(e.toString());
for(Card e:tempTwo)
System.out.println(e.toString());
for(Card e:tempThree)
System.out.println(e.toString());
for(Card e:tempFour)
System.out.println(e.toString()); }
}
一个类; import java.util.*; enum Suit{CLUBS,SPADE,DIAMONDS,HEARTS}
enum Rank{Ace,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King}
public class Card
{
public Suit suit;
public Rank rank;
public void Card()
{} public Card(Suit newsuit,Rank newrank)
{
suit=newsuit;
rank=newrank;
} public String toString()
{
return "The"+rank+"of"+suit+"s";
} }
一个类;
运行,mian出错Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException,编译正常通过。我是新手,希望高手解答。(一副牌,import java.util.*;
public class ApplycationCard //应用类,主函数
{
public static void main(String[] args)
{ Deck deckcards=new Deck();
deckcards.riffleCard();
deckcards.dealCard(); }
}
一个类;
import java.util.*;
public class Deck //定义一个牌
{ public Card[] cards;
public Deck() {
cards=new Card[52];
for(int i=0;i <4;i++)
{
for(int j=1;j <14;j++)
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]);
}
}
for(Card e:cards)
System.out.println(e.toString());
} public void riffleCard() //洗牌
{
Card[] tempCard=new Card[52];
for(int i=52;i>=1;i--)
{ int temp=(int)Math.round((Math.random()*100))%i;
tempCard[52-i]=cards[temp];
cards[temp]=cards[i-1];
}
for(int i=0;i <52;i++)
cards[i]=tempCard[i]; }
public void dealCard() //发牌
{
Card[] tempOne=new Card[13];
Card[] tempTwo=new Card[13];
Card[] tempThree=new Card[13];
Card[] tempFour=new Card[13]; for(int i=0;i <52;)
{
tempOne[i/4]=cards[i];
tempTwo[(i-1)/4]=cards[i+1];
tempThree[(i-2)/4]=cards[i+2];
tempFour[(i-3)/4]=cards[i+3];
i+=4;
}
for(Card e:tempOne)
System.out.println(e.toString());
for(Card e:tempTwo)
System.out.println(e.toString());
for(Card e:tempThree)
System.out.println(e.toString());
for(Card e:tempFour)
System.out.println(e.toString()); }
}
一个类; import java.util.*; enum Suit{CLUBS,SPADE,DIAMONDS,HEARTS}
enum Rank{Ace,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King}
public class Card //把花色和大小定义一个类
{
public Suit suit;
public Rank rank;
public void Card()
{} public Card(Suit newsuit,Rank newrank)
{
suit=newsuit;
rank=newrank;
} public String toString()
{
return "The"+rank+"of"+suit+"s";
} }
一个类;
运行,mian出错Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException,编译正常通过。我是新手,希望高手解答。谢谢(一副牌,除去大小王,分给四个人)
解决方案 »
- 关于JAVA SE中克隆clone方法的问题
- eclipse打可执行包如何引用其他的一些外部包(比如commons-collections-3.2.1.jar)
- 请教正则表达式的问题
- 为什么 NetBeans 中,import static...会出错,说是找不到符号??
- 哪位高人能告诉我下,Java里如何生成不重复的随机字符串?
- mfc 同一个对话框内, 编辑框 不响应 按钮的文本输入消息
- 面试未解题目系列 一....希望得到答案会什么答什么我最后整理
- HSSFWorkbook初始化失败
- 请问如何在页面中设置,使当不能显示APPLET时候,自动让用户去下载JAVA PLUG-IN??
- java JNI方式调用C 报错UnsatisfiedLinkError
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException原因是?
- 请教 java多态问题
楼主截止到2008-06-19 10:11:05的汇总数据:
注册日期:2007-9-12
上次登录:2008-6-19
发帖数:2
结贴数:0
结贴率: 0.00%
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
{
好像回过这个帖子
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]);
}
主要是这里出得问题。是把int转换成枚举(Suit和Rank)类型。不知道如何简答。
估计是你的逻辑有问题,
你这代码看 不大明白,你如果用数组的循环时,最好用length属性获得数组长度,
否则很容易出现在数组越界异常,
也没准出在你这里i*13+j-1,自己看看吧
{
tempOne[i/4]=cards[i];
tempTwo[(i-1)/4]=cards[i+1];
tempThree[(i-2)/4]=cards[i+2];
tempFour[(i-3)/4]=cards[i+3];
i+=4;
} 你这里应该有问题
for(int j=1;j <14;j++)
{
cards[i*13+j-1]=new Card(Suit.values()[i],Rank.values()[j]); //此行
}
主要是这里出得问题。是把int转换成枚举(Suit和Rank)类型。不知道如何转换?