購物網(wǎng)站怎么經(jīng)營公司網(wǎng)站建站軟件
鶴壁市浩天電氣有限公司
2026/01/24 14:06:22
購物網(wǎng)站怎么經(jīng)營,公司網(wǎng)站建站軟件,東營市建設(shè)信息網(wǎng),企業(yè)網(wǎng)站設(shè)計(jì)合同一、算法結(jié)構(gòu)1.我們需要Card類來定義卡牌卡牌需要一個(gè)rank#xff08;牌面數(shù)字#xff09;#xff0c;和一個(gè)suit#xff08;花色#xff09;注意要記得寫一個(gè)toString方法public int rank;//牌面數(shù)字public String suit;//花色public Card(int rank, String suit) {this.…一、算法結(jié)構(gòu)1.我們需要Card類來定義卡牌卡牌需要一個(gè)rank牌面數(shù)字和一個(gè)suit花色注意要記得寫一個(gè)toString方法public int rank;//牌面數(shù)字 public String suit;//花色 public Card(int rank, String suit) { this.rank rank; this.suit suit; } public String toString() { return String.format([%s %d],suit,rank); }2.我們需要CardDemo類來定義方法拿牌洗牌發(fā)牌上面我們已經(jīng)把卡牌制作好了接下來來拿牌2.1、拿牌也就是制作卡牌我們以52張牌為例我們先定義一個(gè)數(shù)組來放花色public static final String[] suits {?,?,?,?};這里制作牌有兩種邏輯一種是以一個(gè)數(shù)字來遍歷4種花色另一種是用一個(gè)花色來定義13個(gè)數(shù)字我們采用第一種我們的對象的類型是Card 所以這里是ListCardpublic ListCard buyCard(){ ListCard cardList new ArrayList(); for (int i 1; i 13 ; i) {//把每個(gè)數(shù)字取出來進(jìn)行花色遍歷 for (int j 0; j 4; j) { int rank i;//拿數(shù)字 String suit suits[j];//拿花色 Card card new Card(rank,suit);//拿到屬性制作出一張牌 cardList.add(card);//把牌放到數(shù)組中 } } return cardList;//形成一副52張牌的數(shù)組 }2.2、洗牌洗牌我們要用到Random類用來生成隨機(jī)數(shù)public void shuffle(ListCard cardList){ Random random new Random(); for (int i cardList.size()-1; i 0; i--) { int index random.nextInt(i);//生成比i小的隨機(jī)數(shù) swap(cardList,index,i);//生成i下標(biāo)的值和index下標(biāo)的值交換實(shí)現(xiàn)洗牌 } } private void swap(ListCard cardList,int i , int j){ Card tmp cardList.get(i); cardList.set(i,cardList.get(j)); cardList.set(j,tmp); }2.3發(fā)牌我們以三個(gè)人玩牌一人發(fā)五張牌為例public ListListCard play(ListCard cardList){ //定義三個(gè)對象來拿牌 ListCard hand0 new ArrayList(); ListCard hand1 new ArrayList(); ListCard hand2 new ArrayList(); //里面有兩個(gè)數(shù)組所以我們使用二維數(shù)組ListListCard ListListCard hand new ArrayList(); hand.add(hand0); hand.add(hand1); hand.add(hand2); for (int i 0; i 5; i) { for (int j 0; j 3; j) { Card card cardList.remove(i);//每發(fā)一張就把最上面的牌給到另一個(gè)Card對象并在原來的牌堆中刪除 hand.get(j).add(card);//把牌挨個(gè)放回開始定義的三個(gè)對象的手中。 } } return hand;//返回二維數(shù)組。 }二、總結(jié)代碼總結(jié)Card類package fisherYates; public class Card { //定義撲克牌 public int rank;//牌面數(shù)字 public String suit;//花色 public Card(int rank, String suit) { this.rank rank; this.suit suit; } public String toString() { return String.format([%s %d],suit,rank); } }CardDemo類package fisherYates; import java.util.ArrayList; import java.util.List; import java.util.Random; public class CardDemo { public static final String[] suits {?,?,?,?}; public ListCard buyCard(){ ListCard cardList new ArrayList(); for (int i 1; i 13 ; i) { for (int j 0; j 4; j) { int rank i; String suit suits[j]; Card card new Card(rank,suit); cardList.add(card); } } return cardList; } public void shuffle(ListCard cardList){ Random random new Random(); for (int i cardList.size()-1; i 0; i--) { int index random.nextInt(i); swap(cardList,index,i); } } private void swap(ListCard cardList,int i , int j){ Card tmp cardList.get(i); cardList.set(i,cardList.get(j)); cardList.set(j,tmp); } public ListListCard play(ListCard cardList){ ListCard hand0 new ArrayList(); ListCard hand1 new ArrayList(); ListCard hand2 new ArrayList(); ListListCard hand new ArrayList(); hand.add(hand0); hand.add(hand1); hand.add(hand2); for (int i 0; i 5; i) { for (int j 0; j 3; j) { Card card cardList.remove(i); hand.get(j).add(card); } } return hand; } }寫完這個(gè)算法對泛型以及二維數(shù)組的使用有新的認(rèn)識(shí)更能實(shí)際體驗(yàn)Java面向?qū)ο?