階層内のルートインターフェイスを収集します。コレクションは、コレクションの要素とも呼ばれる一連のオブジェクトを表します。いくつかのコレクションは、要素を重複させることを許可しますが、他のコレクションはそうではありません。一部のコレクションは注文されていますが、他のコレクションは乱れています。 JDKは、このインターフェイスの直接実装を提供しません。より具体的なサブインターフェイス(セットやリストなど)の実装を提供します。このインターフェイスは通常、コレクションを渡し、最大の普遍性が必要なこれらのコレクションを運用するために使用されます。
メインコンテンツ:ここでは、コレクションコレクションを使用して、香港の映画で大物が演じるポーカーゲームをシミュレートします。
1。ゲームルール:2人のプレーヤーのそれぞれが2枚のカードを手に渡し、比較します。各プレーヤーのカードの最大ポイントを比較します。サイズはA-2で、最大のポイントが勝つものです。ポイントが同じ場合、スーツの色が比較される場合、サイズは黒(4)、赤(3)、プラム(2)、正方形(1)、スーツの色が勝者です。
2。実装手順:
4色の黒(4)、赤(3)、プラム(2)、および正方形(1)の合計52枚のカードを備えたトランプA-2のデッキを作成します。
プレーヤーIDと名前およびライセンスカード情報を含む2人のプレーヤーを作成します。
カードをシャッフルし、両方のプレイヤーに2枚のカードを配ります。
プレーヤーの手のカードのサイズを比較して、勝者を獲得します。
3。プログラムの実装
カードカテゴリ:カードの数字と色が含まれています
Package CollectionTest.Games; Public Class Card {private Integer id; //カードのサイズプライベート整数タイプ; //カードパブリックカードの色(整数ID、整数タイプ){this.id = id; this.type = type; } public Integer getId(){return id; } public void setid(integer id){this.id = id; } public Integer getType(){return type; } public void setType(integer type){this.type = type; } @Override public String toString(){return "card [id =" + id + "、type =" + type + "]"; }}ポーカーポーカークラス:ポーカーカードA-2が含まれています
パッケージCollectionTest.Games; Public Class Poker {Private Card Id2;プライベートカードID3;プライベートカードID4;プライベートカードID5;プライベートカードID6;プライベートカードID7;プライベートカードID8;プライベートカードID9;プライベートカードID10;プライベートカードJ;プライベートカードQ;プライベートカードk;プライベートカードA; public Poker(){} // 4つのタイプ:ブラック - 4、レッド - 3、プラム - 2、スクエア - 1パブリックポーカー(整数タイプ){this.id2 = newカード(2、タイプ); this.id3 = new Card(3、Type); this.id4 = new Card(4、Type); this.id5 = newカード(5、タイプ); this.id6 = new Card(6、Type); this.id7 = new Card(7、Type); this.id8 = new Card(8、Type); this.id9 = new Card(9、Type); this.id10 = new Card(10、Type); this.j = new Card(11、type); this.q = new Card(12、type); this.k = newカード(13、タイプ); this.a = newカード(14、タイプ); } publicカードgetId2(){return id2; } public void setId2(card id2){this.id2 = id2; } public card getId3(){return id3; } public void setId3(card id3){this.id3 = id3; } publicカードgetId4(){return id4; } public void setId4(card id4){this.id4 = id4; } public card getId5(){return id5; } public void setId5(card id5){this.id5 = id5; } publicカードgetId6(){return id6; } public void setId6(card id6){this.id6 = id6; } publicカードgetId7(){return id7; } public void setId7(card id7){this.id7 = id7; } public Card getId8(){return id8; } public void setId8(card id8){this.id8 = id8; } publicカードgetId9(){return id9; } public void setId9(card id9){this.id9 = id9; } publicカードgetId10(){return id10; } public void setId10(card id10){this.id10 = id10; } public card getj(){return j; } public void setj(card j){j = j; } public card getq(){return q; } public void setq(card q){q = q; } public card getk(){return k; } public void setk(card k){k = k; } public card geta(){return a; } public void seta(card a){a = a; }}プレーヤークラス:プレーヤーIDと名前、カード情報が含まれています
パッケージCollectionTest.Games; Import Java.util.ArrayList; Import Java.util.List; public class player {// player's id private string id; //プレーヤーの名前プライベート文字列名。 //プレーヤープライベートリスト<card> pokertypeが保有するプレーヤーのライセンス。 public player(){} public player(string id、string name、list <card> pokertype){this.id = id; this.name = name; this.pokertype = new ArrayList <>(); } public string getId(){return id; } public void setid(string id){this.id = id; } public string getname(){return name; } public void setName(string name){this.name = name; } public List <card> getPokertype(){pokertypeを返します。 } public void setpokertype(list <card> pokertype){this.pokertype = pokertype; }}ポーカーゲームのメインカテゴリ:1)ポーカー作成2)プレーヤーの作成3)縮小4)割引5)勝者と損失を比較する
パッケージCollectionTest.Games; Import Java.util.arrayList; Import Java.util.arrays; Import Java.util.collections; Import java.util.hashmap; Import java.util.hashset; Import java.util.list; import java.util.map; import java.util.util.utilnner; gamsbegin {//トランプの作成public set <poker> cpoker(){system.out.println( "************ポーカーカードの作成を開始**********"); //ポーカーのデッキの作成Poker [] Poker = {new Poker(1)、New Poker(2)、New Poker(3)、New Poker(4)}; /**コレクションの使用ツールクラスの使用*コレクション(Pokers、New Poker(1)、New Poker(2)、New Poker(3)、New Poker(4)); * * */ pokers.addall(arrays.aslist(poker)); System.out.println( "******************ポーカーカードの作成に成功しました****************"); Pokersを返します。 } // 2人のプレイヤーを作成しますパブリックマップ<string、player> cplayer(){system.out.println( "************プレーヤーの作成を開始****************"); map <string、player> map = new hashmap <string、player>(); //整数control = 0を制御します。 system.out.println( "2人のプレイヤーを作成し、プロンプトに従って作成する");スキャナーコンソール=新しいスキャナー(System.in); while(true){system.out.println( "+(control+1)+" player id: "); string courseid = console.next(); if(isNumeriv(courseId)){system.out.println( ""+(control+1)+"player name:");文字列courseName = console.next();プレーヤープレーヤー=新しいプレーヤー(CourseID、CourseName、Null); //データmap.put(courseid、players)を保存します。 System.out.println( "add" +(control + 1) + "players" + coursename + "success"); //番号でコントロール++を追加します。 } else {system.out.println( "******数値ID *******");続く; } if(control == 2){break; }} system.out.println( "************プレーヤーは正常に作成されました****************");マップを返します。 } //入力が数字であるかどうかを決定します。文字。isdigit()はjavaメソッドpublic boolean isnumeric(string str){for(int i = 0; i <str.length(); i ++){if(!character.isdigit(str'Charat(i))){return false; }} trueを返します。 } / ***シャッフル:52異なる乱数を生成して、シャッフル*** / public List <card> wpoker(set <poker> pokers){system.out.println( "********* Shint shuffle *********"); //秩序ある種類のリストを使用し、シャッフル後に注文を保存します。リスト<card> listcard = new arrayList <>(); //非注文の種類のセットを使用して、シャッフルセット<card> listset = new Hashset <>()を達成します。 //セットに保存し、(ポーカーpk:pokers){listset.add(pk.getid2())for(poker pk:pokers)for ordered; listset.add(pk.getid3()); listset.add(pk.getid4()); listset.add(pk.getid5()); listset.add(pk.getid5()); listset.add(pk.getid6()); listset.add(pk.getid7()); listset.add(pk.getid8()); listset.add(pk.getid9()); listset.add(pk.getId10()); listset.add(pk.getj()); listset.add(pk.getq()); listset.add(pk.getk()); listset.add(pk.getk()); listset.add(pk.geta()); } //リストコレクションを保存し、(カードCD:listSet){listcard.add(cd); System.out.println(CD); } system.out.println( "****************************************************"); return listcard; } // public public map <string、player> pushpoker(list <card> listcard、map <string、player> pmap){system.out.println( "******************* //各人を制御して2枚のカードを扱うようにint control = 0; for(map.entry <string、player> entry:pmap.entryset()){if(control == 0){for(int i = 0; i <3; i = i + 2){// distribution entry.getValue()。getPokertype()。add(listcard.get(i)); } //マップオブジェクトpmap.put(entry.getKey()、entry.getValue())を更新します。コントロール++; } else if(control == 1){for(int i = 1; i <4; i = i + 2){// distribution entry.getValue()。getPokertype()。add(listcard.get(i)); } //マップオブジェクトpmap.put(entry.getKey()、entry.getValue())を更新します。コントロール++; } else {break; }} System.out.println( "******************成功した取引**********"); PMAPを返します。 } public void CompareMatch(Map <String、Player> NewMap){ /*勝ちと損失を比較*1。最初に、各プレーヤーの手に最大のカードのIDとスーツIDを取得します。 *2。2人のプレーヤーの手にある最大のカードのIDサイズを比較すると、大きなプレーヤーが勝ちます。 * 3。2枚のカードのIDが等しい場合、2枚のカードのスーツIDを比較すると、スーツIDが大きくなり、勝利が達成されます。 * * */ list <player> players = new ArrayList <>(); //(map.entry <string、player> entry:newmap.entryset()){player.add(entry.getValue())の2人のプレーヤーを取得します。 } //プレーヤー1つの情報とライセンスリスト<card> playerone = player.get(0).getPokertype(); //最大のカード整数onemaxid = math.max(playerone.get(0).getid()、playerone.get(1).getid())のIDとスーツを取得します。 integer onemaxtype =(onemaxid!= playerone.get(0).getid())? playerone.get(1).getType():playerone.get(0).getType(); // 2つの情報とライセンスリスト<card> playertwo = player.get(1).getPokertype(); //最大のカード整数twomaxid = math.max(playertwo.get(0).getid()、playertwo.get(1).getid())のIDとスーツを取得します。 integer twomaxtype =(twomaxid!= playertwo.get(0).getid())? playertwo.get(1).getType():playertwo.get(0).getType(); if(onemaxid> twomaxid){system.out.println( "player:" + players.get(0).getname() + "win !!"); } else if(onemaxid == twomaxid){if(onemaxtype> twomaxtype){system.out.println( "player:" + players.get(0).getname() + "win !!"); } else {system.out .println( "player:" + player.get(1).getname() + "win!!"); }} else {system.out.println( "player:" + player.get(1).getname() + "win !!"); } System.out.println("***************************************************************"); System.out.println( "player:" + players.get(0).getName() + "of" is: " + showname(playerone.get(0).gettype()、0) +" - " + showname(0).getid()、1) +" " + showname(playerone.get(1).getpe()。 showname(playerone.get(1).getid()、1); out.println( " + player.get(1).getname() +" showname(playertwo.get(1).getType()、0) + " - " + showname(playertwo.get(1).getid()、1)); } //ディスプレイカードの名前プライベート文字列showname(整数I、整数タイプ){string str = ""; //訴訟を表示if(type == 0){switch(i){case 1:{str = "cube";壊す; }ケース2:{str = "plum blossom";壊す; }ケース3:{str = "heart";壊す; }ケース4:{str = "str =" spads "; break;} default:{break;}}} // if(type == 1){if(i <11){return i.tostring();} els {switch(i){case 11:{str =" j ";} case 12:" q "ブレイク14: "a"} return // 3。listcard = gb.wpoker(pokers)。実行結果:
*********ポーカーカードの作成を開始**********
*************ポーカーカードの作成に成功します*************
*********プレイヤーの作成を開始***********
2人のプレイヤーを作成するには、プロンプトに従って1番目のプレイヤーIDを入力してください。
最初のプレイヤー名を入力してください:
Stephen Chowは最初のプレーヤーを追加しました。スティーブン・チョウは成功しました。 2番目のプレーヤーIDを入力してください:
2番目のプレイヤー名を入力してください:
Chow Yun-Fatは2番目のプレーヤーであるChow Yun-Fatを成功させました
**********プレーヤーの作成に成功します***********
************シャッフルを開始********
カード[id = 9、type = 3]
カード[id = 11、type = 4]
カード[id = 13、type = 3]
カード[id = 8、type = 3]
カード[id = 5、type = 2]
カード[id = 6、type = 1]
カード[id = 4、type = 3]
カード[id = 5、type = 4]
カード[id = 2、type = 3]
カード[id = 9、type = 2]
カード[id = 9、type = 4]
カード[id = 14、type = 2]
カード[id = 9、type = 1]
カード[id = 2、type = 1]
カード[id = 2、type = 4]
カード[id = 7、type = 4]
カード[id = 11、type = 1]
カード[id = 10、type = 1]
カード[id = 14、type = 4]
カード[id = 14、type = 3]
カード[id = 12、type = 2]
カード[id = 2、type = 2]
カード[id = 10、type = 2]
カード[id = 7、type = 1]
カード[id = 7、type = 3]
カード[id = 8、type = 2]
カード[id = 4、type = 4]
カード[id = 13、type = 4]
カード[id = 14、type = 1]
カード[id = 12、type = 1]
カード[id = 5、type = 1]
カード[id = 6、type = 4]
カード[id = 12、type = 4]
カード[id = 11、type = 2]
カード[id = 10、type = 3]
カード[id = 3、type = 4]
カード[id = 12、type = 3]
カード[id = 4、type = 2]
カード[id = 4、type = 1]
カード[id = 6、type = 2]
カード[id = 5、type = 3]
カード[id = 8、type = 4]
カード[id = 3、type = 2]
カード[id = 13、type = 2]
カード[id = 7、type = 2]
カード[id = 3、type = 3]
カード[id = 3、type = 1]
カード[id = 6、type = 3]
カード[id = 8、type = 1]
カード[id = 11、type = 3]
カード[id = 13、type = 1]
カード[id = 10、type = 4]
*************成功した改造********
*************請求取引が始まる**********
*************成功した取引***********
プレーヤー:スティーブンチョウが勝った! !
*************************************************
プレーヤー:スティーブンチョウのカードは:レッドピーチ-9レッドピーチ-K
プレーヤー:Chow Yun-Fatのカードは:Spades-J Red-8です
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。