扑克游戏:用java创建一副牌
我正在做一个项目,创建一个扑克游戏。尽管指令非常清楚,但我在面向对象编程方面遇到了很多麻烦 所以对于这个项目,我们必须创建四个对象,卡片、牌组、手牌和扑克手。我已经完成了卡片对象的创建,现在正在处理卡片组对象。这就是我现在遇到麻烦的地方。我试着用谷歌搜索我的问题。然而,由于我是一个编程新手,我并不真正了解他们的方法。例如,我不知道如何使用ArrayList。我只知道非常基本的数组方法 以下代码是我迄今为止为Deck对象所做的工作:扑克游戏:用java创建一副牌,java,arrays,object,poker,Java,Arrays,Object,Poker,我正在做一个项目,创建一个扑克游戏。尽管指令非常清楚,但我在面向对象编程方面遇到了很多麻烦 所以对于这个项目,我们必须创建四个对象,卡片、牌组、手牌和扑克手。我已经完成了卡片对象的创建,现在正在处理卡片组对象。这就是我现在遇到麻烦的地方。我试着用谷歌搜索我的问题。然而,由于我是一个编程新手,我并不真正了解他们的方法。例如,我不知道如何使用ArrayList。我只知道非常基本的数组方法 以下代码是我迄今为止为Deck对象所做的工作: import java.util.*; public clas
import java.util.*;
public class Deck {
public static final int CARDS_IN_DECK = 52;
public static final int SHUFFLE_SWAPS = 700;
int shufflex = 0;
private Card[] cards;
private int card_holder;
private int seed;
public Deck(int seed) {
this.cards = new Card[CARDS_IN_DECK];
seed = 0;
for (int i = 2; i <= 14; i++) {
for (int j = 0; j <= 3; j++) {
if (j == 0) {
cards[seed] = new Card(i, 'c'); // c = Clubs
} else if (j == 1) {
cards[seed] = new Card(i, 'd'); // d == Diamond
} else if (j == 2) {
cards[seed] = new Card(i, 's'); // s== Spade
} else if (j == 3) {
cards[seed] = new Card(i, 'h'); // h = Heart
}
seed++;
}
}
}
public void shuffle(){
Random rand = new Random ();
int randomNumber = rand.nextInt(51);
int randomNumber2 = rand.nextInt(51);
while( shufflex < SHUFFLE_SWAPS ){
HOW DO I DO THE SWAP HERE? DON'T KNOW THE SYNTAX
I KNOW I NEED TO CREATE ANOTHER ARRAY TO TEMPORARY STORE THE FIRST CARD
THEN I REPLACE THE FIRST CARD WITH THE SECOND CARD
AND THEN REPLACE THE SECOND CARD WITH THE TEMPORARY CARD
shufflex++;
}
}
public Card nextCard() {
}
public String toString() {
}
}
import java.util.*;
公务舱甲板{
公共静态最终整数卡组中的整数卡=52;
公共静态最终整数洗牌交换=700;
int-shufflex=0;
私人卡[]卡;
私人int卡持有人;
私有int种子;
公共甲板(国际种子){
this.cards=新卡片[卡片组中的卡片];
种子=0;
对于(int i=2;i你应该使用ArrayList
作为卡片组,原因有两个。首先,添加/删除卡片会更容易。其次,java.utils.Collections
中有一个shuffle方法。因此,创建一个ArrayList:ArrayList deck=new ArrayList()
,添加一张卡片:deck.add(someCard | int_index)
,要移除一张卡:deck.remove(someCard | int_index)
,要洗牌:deck=Collections.shuffle(deck)
(记得导入java.utils.Collections
)。不需要内部for循环,即显示for的循环(int j=0;j这读起来像是家庭作业,如果是,你应该添加家庭作业标记。@气垫船谢谢你的输入。我想我明白你的意思。如果我要为西装创建一个数组,那么我可以使用:for(int j=0;j是我还是没有“以下代码”在问题中?当我尝试用谷歌搜索我的问题时,我注意到很多示例代码都使用了ArrayList。但是,我们在我的类中没有介绍这个方法,所以我真的不能使用它。谢谢你的输入。ArrayList是Java的一个基本数据结构。只要使用它。你会更高兴。你不会再使用数组了。@Tony ArrayList是方便的,但它们肯定不会取代普通数组。@MartinTuskevicius也许更好的说法是,“数组不会成为你的数据结构。”事实上,我不记得上一次我在办公室使用一个数组是什么时候,除非某个班级强迫我使用一个。最近我在帮助别人解决学生问题时使用了一个数组,但它远没有这个问题复杂。