主类:
公共类二十一点{
static Deck D;
static Hand P;
public static void main(String[] args) {
init();
}
private static void init() {
D=new Deck();
P=new Hand(D);
startGame();
}
private static void startGame() {
System.out.print("Your cards are: "+P.H.get(0)+", "+P.H.get(1));
}
Run Code Online (Sandbox Code Playgroud)
}
手类:
import java.util.ArrayList;
import java.util.Random;
public class Hand {
ArrayList<String> H;
Random R;
public Hand(Deck D){
R=new Random();
H=new ArrayList<String>();
int C=R.nextInt(D.getP().length);
H.add(D.getP()[C]);
D.removeFromDeck(C);
int E=R.nextInt(D.getP().length);
H.add(D.getP()[E]);
D.removeFromDeck(E);
}
Run Code Online (Sandbox Code Playgroud)
}
甲板班
public class Deck {
String[] P;
public Deck(){
P=new String[52];
String Suit="Default";
int C=0;
for(int A=1;A<=4;A++){
switch(A){
case 1:
Suit="Hearts";
break;
case 2:
Suit="Diamonds";
break;
case 3:
Suit="Clubs";
break;
case 4:
Suit="Spades";
break;
}
for(int B=1;B<=13;B++){
if(B>10){
switch(B){
case 11: P[C]="Joker of "+Suit;
break;
case 12: P[C]="Queen of "+Suit;
break;
case 13: P[C]="King of "+Suit;
break;
}
}else{
P[C]=B+" of "+Suit;
}
}
}
}
public void setP(String[] p) {
P = p;
}
public String[] getP() {
return P;
}
public void removeFromDeck(int C){
System.arraycopy(P, C + 1, P, C,
P.length - C - 1);
}
Run Code Online (Sandbox Code Playgroud)
}
当我编译并运行此代码时,它打印出我的2张卡为null,为null.我查看了代码,似乎无法找到我的错误.也许你可以?TY给你任何帮助.
编辑:现在只返回黑桃,有人可以帮忙吗?
你的循环都有错误的循环条件:
for(int A=1;A>=4;A++)
...
for(int B=1;B>=13;B++)
Run Code Online (Sandbox Code Playgroud)
这些都不会执行任何迭代.他们应该是:
for(int A=1;A<=4;A++)
...
for(int B=1;B<=13;B++)
Run Code Online (Sandbox Code Playgroud)
此外,您没有分配足够的大小:
P=new String[51];
Run Code Online (Sandbox Code Playgroud)
后面有52张牌,而不是51张.
编辑:正如评论中所指出的那样,你总是得到代码发布的黑桃,因为你选择套装的switch语句没有任何中断.我本来希望这会导致编译时警告.你真的应该注意警告.你可以像这样添加break语句:
switch(A) {
case 1:
S = "Hearts";
break;
case 2:
S = "Diamonds";
break;
case 3:
S = "Clubs";
break;
case 4:
S = "Spades";
break;
}
Run Code Online (Sandbox Code Playgroud)
最后,我强烈建议您使用更有意义的变量名,最好遵循Java命名约定.(实际上,我对您的代码进行了各种其他更改,但从这些更改开始.)
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |