課程
/后端開發(fā)
/Java
/Java入門第三季
為什么三季看了好幾遍還是對洗牌發(fā)牌沒有頭緒呢,看了別的同學(xué)編寫的代碼可以看懂,但是自主去編寫就沒有頭緒了呢?
2016-06-09
源自:Java入門第三季 7-1
正在回答
代碼敲的少,學(xué)習(xí)是一個循序漸進(jìn)的過程,學(xué)會思考,不要害怕自己不會,嘗試自己動手敲。然后在去看別人的代碼,慢慢就上手了。加油,一起學(xué)習(xí)!共同進(jìn)步!
kevinleeleelee 提問者
package?demo_playing_cards; import?java.util.HashSet; import?java.util.Set; /** ?*?1.創(chuàng)建學(xué)生對象,進(jìn)行抓牌比點(diǎn)數(shù) ?*?2.沒人抓取2張牌,按照2~A比大小,若點(diǎn)數(shù)相同則按照黑紅梅方順序比較 ?*/ public?class?TestUserName{ ????????????private?Integer?Id; ????????????@Override public?int?hashCode()?{ final?int?prime?=?31; int?result?=?1; result?=?prime?*?result?+?((Name?==?null)???0?:?Name.hashCode()); return?result; } @Override public?boolean?equals(Object?obj)?{ if?(this?==?obj) return?true; if?(obj?==?null) return?false; if?(!(obj?instanceof?TestUserName)) return?false; TestUserName?other?=?(TestUserName)?obj; if?(Name?==?null)?{ if?(other.Name?!=?null) return?false; }?else?if?(!Name.equals(other.Name)) return?false; return?true; } private?String?Name; ????????????Set<Cards>?set; public?Integer?getId()?{ return?Id; } public?void?setId(Integer?id)?{ Id?=?id; } public?String?getName()?{ return?Name; } public?void?setName(String?name)?{ Name?=?name; } ?????public?TestUserName(Integer?Id,String?Name){ ???? ?this.Id?=?Id; ???? ?this.Name?=?Name; ???? ?this.set?=?new?HashSet<Cards>(); ?????} } package?demo_playing_cards; /* ?*?1.主要功能是創(chuàng)建牌屬性 ?*?2.將創(chuàng)建好的對象賦值給List集合中,先使其有序,后打亂順序 ?*/ public?class?Cards?implements?Comparable<Cards>{ ???????private?String?design;?//?創(chuàng)建花色屬性 ???????private?String?number;?//創(chuàng)建點(diǎn)色屬性 ??????? public?String?getDesign()?{ return?design; } public?void?setDesign(String?design)?{ this.design?=?design; } public?String?getNumber()?{ return?number; } public?void?setNumber(String?number)?{ this.number?=?number; } public?Cards(String?design,String?number){ this.design?=?design; this.number?=?number; } @Override public?int?compareTo(Cards?o)?{ //?TODO?自動生成的方法存根 return?this.number.compareTo(o.number); } } package?demo_playing_cards; import?java.util.ArrayList; import?java.util.Arrays; import?java.util.HashMap; import?java.util.InputMismatchException; import?java.util.List; import?java.util.Map; import?java.util.Map.Entry; import?java.util.Random; import?java.util.Scanner; import?java.util.Set; /* ?*?1.將創(chuàng)建好的牌存入List有序集合中 ?*/ public?class?Testlist?{ ??????public?List<Cards>?list;??//存放創(chuàng)建好的牌對象 ??????public?List<String>?list1;//存放牌模型的集合框架 ??????public?Map<Integer,TestUserName>?user;//創(chuàng)建學(xué)生對象并且隨機(jī)選牌 ??????List<Integer>?userStore;?? ??????TestUserName?username; ??????Scanner?input; //??????TestUserName?username; ?????? ??????public?Testlist(){ ??????list?=?new?ArrayList<Cards>(); ??????list1?=?new?ArrayList(); ??????user?=?new?HashMap<Integer,TestUserName>(); ??????userStore?=?new?ArrayList<Integer>(); ??????input?=?new?Scanner(System.in); ??????} ?????? ??????/** ???????*?創(chuàng)建一個從2~A的集合 ???????*/ ??????public?void?TestAdd(){ ??????for(int?i?=?2;?i?<=?10;?i++){ ??????list1.add(String.valueOf(i)); ??????} ??????list1.addAll(Arrays.asList("J","Q","K","A")); //??????System.out.println("測試添加牌模型:"); //??????for?(String?cards?:?list1)?{ //System.out.print(cards+","); //} ??????} ??????/** ???????*?創(chuàng)建牌 ???????*/ ??????public?void?TestAdd2(){ ??????System.out.println("----------創(chuàng)建撲克牌!-----------"); ????for?(String?cards?:?list1)?{ list.add(new?Cards("方塊",cards)); list.add(new?Cards("梅花",cards)); list.add(new?Cards("紅桃",cards)); list.add(new?Cards("黑桃",cards)); } ??? ????//測試是否創(chuàng)建成功 ????System.out.println("----------撲克牌創(chuàng)建成功!-----------"); ????System.out.print("為:"); ????for?(Cards?cards?:?list)?{ System.out.print(cards.getDesign()+cards.getNumber()+","); } ????System.out.println(); ??????} ?????? ?????? ??????/** ???????*?存儲用戶ID的方法 ???????*/ ??????public?void?TestUserStort(Integer?ID){ ??????userStore.add(ID); ??????} ?????? ??????/** ???????*?創(chuàng)建用戶對象并且隨機(jī)抽取里面的兩張牌 ???????*?@param?args ???????*/ ??????public?void?TestUserName(){ //??????boolean?searchFlag=false; ??????Integer?ID?=?null; ??????for(int?i?=?1;i?<=?2;?i++){? ??????while(true){ //??????????try?{ System.out.println("請輸入第"+i+"個用戶ID"); ??ID?=?input.nextInt(); //判斷ID在user集合中是否存在 ?TestUserName?us?=?user.get(ID); ?if(us?!=?null){ ?System.out.println("已存在該學(xué)生?。?); ?continue; ?}???????????? //}?catch?(RuntimeException?e)?{ //System.out.println("請輸入整形!"); //?????}??? ?TestUserStort(ID);?? ??????????break; ??????} ??????//輸入用戶名 ??????System.out.println("請輸入第"+i+"用戶名"); ?????? ??????String?name?=?input.next(); ??????//將ID和name給創(chuàng)建對象 ???????username?=?new?TestUserName(ID,?name); ???????user.put(ID,username); ??????? } ?????? ?????? ??????Set<Entry<Integer,TestUserName>>?entryset?=?user.entrySet();?????? ??????for?(Entry<Integer,?TestUserName>?entry?:?entryset)?{ System.out.println("----歡迎玩家:"?+?entry.getValue().getName()); ??????} ??????}?? ?????? ??????/** ???????*?進(jìn)行發(fā)牌 ???????*/ ??????public?void?TestLicensing(){ ??????Random?random?=?new?Random(); ??????System.out.println("---------開始發(fā)牌...---------"); ??? ??????TestUserName?name1?=?user.get(userStore.get(0)); ??????TestUserName?name2?=?user.get(userStore.get(1)); ??????Cards?ca?=?null; ??????int?[]size?=?new?int[2]; ??????for(int?i?=?0;i?<?2;?i++){ ??????do{ ??????ca?=?list.get(random.nextInt(list.size()-1)); ??????}while(name1.set.contains(ca)); ??????name1.set.add(ca); ??????System.out.println(?name1.getName()?+?"用戶所抽到的牌:"?+?ca.getDesign()+ca.getNumber()); ?????size[i]?=?list.indexOf(ca); ??????} ??????Cards?ca1; ??????int[]?size2?=?new?int[2]; ??????for(int?i?=?0;i?<?2;?i++){ ??????do{ ??????ca1?=?list.get(random.nextInt(list.size()-1)); ??????}while(name1.set.contains(ca1)?||?name2.set.contains(ca)); ??????name2.set.add(ca1); ??????System.out.println(?name2.getName()?+?"用戶所抽到的牌:"?+?ca1.getDesign()+ca1.getNumber()); ??????size2[i]?=?list.indexOf(ca1); ??????} ??????//對數(shù)組進(jìn)行排序 ??????Arrays.sort(size); ??????Arrays.sort(size2); ??????//進(jìn)行比較,誰大誰贏 ??????if(size[1]>size2[1]){ ??????System.out.println(name1.getName()+"獲勝"); ??????}else ??????System.out.println(name2.getName()+"獲勝"); ??????} ?????? ??????public?static?void?main(String[]?args){ ??????Testlist?st?=?new?Testlist(); ??????st.TestAdd(); ??????st.TestAdd2(); ??????st.TestUserName(); ??????st.TestLicensing(); ??????} }
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答難道是我寫錯了嗎?
4 回答我的困惑!
1 回答關(guān)于equals的困惑...
3 回答關(guān)于insert()的困惑
1 回答主要是會用這個自定義異常吧
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-06-10
代碼敲的少,學(xué)習(xí)是一個循序漸進(jìn)的過程,學(xué)會思考,不要害怕自己不會,嘗試自己動手敲。然后在去看別人的代碼,慢慢就上手了。加油,一起學(xué)習(xí)!共同進(jìn)步!
2016-07-29