自己寫的一個洗撲克牌的java程式

來源:互聯網
上載者:User

昨天去一朋友所在的公司 唱吧—你的手機KTV (小小做一下宣傳:目前app store排名很靠前的一款軟體)面試了一把,結果XX

其中一個洗撲克牌的程式,昨天在草稿紙上寫的,面試官說描述不清晰,今天抽空在電腦上實現了一下,為這次面試畫上個句號。

package com.bankht.test.xipai;import java.util.Random;import org.junit.Test;/** * @author: 特種兵—AK47 * @建立時間:2012-10-24 上午09:44:39 *  * @類說明 :洗牌演算法 */public class XipaiTest {private String[] singleCards = new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" };private String[] allCards = new String[54];private String temp = null;// 定義臨時變數,用以交換數組中兩個值的位置@Testpublic void testXipai() {String[] cards = initCard();for (int s = 0; s < 1000; s++) {/* * 從[0,53]之間隨機選取兩個數字cardNum1,cardNum2, * 交換對應的數組值位置(cards[cardNum1]<——>cards [cardNum2]) * 該步驟迴圈1000次 */int cardNum1 = new Random().nextInt(54);int cardNum2 = new Random().nextInt(54);temp = cards[cardNum1];cards[cardNum1] = cards[cardNum2];cards[cardNum2] = temp;}testCardMessage(cards);// 測試撲克牌當前排序狀態}/** * 初始化撲克牌 *  * @return 撲克牌數組 */private String[] initCard() {for (int i = 0; i < 13; i++) {String[] initCard = addMessage2Card(singleCards[i]);for (int j = 0; j < 4; j++) {allCards[i * 4 + j] = initCard[j];}}allCards[52] = "小王";allCards[53] = "大王";return allCards;}/** * 針對2,3,4...Q,K,A 都有公用資訊【紅桃、方片、梅花、黑桃】,在初始化時進行添加 *  * @param card * @return */private String[] addMessage2Card(String card) {return new String[] { "紅桃" + card, "方片" + card, "梅花" + card, "黑桃" + card };}/** * 測試撲克牌當前排序狀態 *  * @param allCards */private void testCardMessage(String[] allCards) {for (int m = 0; m < allCards.length; m++) {System.out.print(allCards[m] + ",");if ((m + 1) % 4 == 0) {System.out.println();}}}}

運行一下:

方片K,黑桃8,梅花2,紅桃2,梅花5,梅花8,紅桃K,黑桃9,紅桃4,方片9,梅花J,方片8,梅花Q,梅花4,黑桃Q,紅桃10,黑桃7,方片5,紅桃3,大王,紅桃6,黑桃J,方片2,方片A,黑桃2,黑桃A,梅花A,方片3,紅桃7,黑桃10,方片6,梅花10,方片Q,小王,梅花3,紅桃8,黑桃6,黑桃K,黑桃3,紅桃J,紅桃A,黑桃5,紅桃5,梅花6,方片J,方片4,紅桃Q,黑桃4,紅桃9,梅花7,方片7,梅花K,方片10,梅花9,

 

其實只是個把兩個隨機數對應撲克牌位置去相互交換的思想,至於將一副撲克牌還原整齊就用到常用的排序(選擇排序、希爾、冒泡等)了

最後:與這家公司已經失之交臂了,不過還是真心的祝願這款軟體能夠保持目前的迅猛態勢,快速發展。不管怎樣,萬分感謝曉凱的推薦,謝謝田然總監的建議。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.