C#使用二維數(shù)組模擬斗地主
更新時間:2015年04月21日 12:15:31 作者:森林森
這篇文章主要介紹了C#使用二維數(shù)組模擬斗地主的方法,通過C#的二維數(shù)組簡單實現(xiàn)撲克隨機發(fā)牌的功能,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#使用二維數(shù)組模擬斗地主的方法。分享給大家供大家參考。具體如下:
package com.pb.demo; import java.util.Arrays; import java.util.Random; /** * 撲克牌隨機發(fā)牌♠♥♣♦ 二維數(shù)組實現(xiàn) * */ public class Puker { public static void main(String[] args) { // 定義數(shù)組 String[][] puker = new String[5][]; puker[0] = new String[] { "♠A", "♠2", "♠3", "♠4", "♠5", "♠6", "♠7", "♠8", "♠9", "♠10", "♠J", "♠Q", "♠K" }; puker[1] = new String[] { "♥A", "♥2", "♥3", "♥4", "♥5", "♥6", "♥7", "♥8", "♥9", "♥10", "♥J", "♥Q", "♥K" }; puker[2] = new String[] { "♣A", "♣2", "♣3", "♣4", "♣5", "♣6", "♣7", "♣8", "♣9", "♣10", "♣J", "♣Q", "♣K" }; puker[3] = new String[] { "♦A", "♦2", "♦3", "♦4", "♦5", "♦6", "♦7", "♦8", "♦9", "♦10", "♦J", "♦Q", "♦K" }; puker[4] = new String[] { "大王", "小王" }; // 定義3個玩家和底牌 String[] player1 = new String[17]; String[] player2 = new String[17]; String[] player3 = new String[17]; String[] temp = new String[3]; // 二維數(shù)據(jù)洗牌 Random random = new Random(); int i1 = 0, i2 = 0, j1 = 0, j2 = 0;// 定義4個變量,用來存放數(shù)組的下標 // 洗牌1000次 for (int i = 0; i < 1000; i++) { // 下標i1等于,隨機0~4的整數(shù) 一維的下標 i1 = random.nextInt(5); // 0~4之間 if (i1 == 4) { // 如果一維的下標是4,則2維的的元素只有2個大王和小王,只有2個元素 j1 = random.nextInt(2); } else { // 如果不是4,則有13張牌 j1 = random.nextInt(13); // 0~12 共13個元素 } // 因為最短的數(shù)組是2個元素,所以要2次,如果是多個就要多次 i2 = random.nextInt(5); if (i2 == 4) { j2 = random.nextInt(2); } else { j2 = random.nextInt(13); } // 開始洗牌 String tmp = puker[i1][j1]; puker[i1][j1] = puker[i2][j2]; // 洗牌法,交換,打亂順序 puker[i2][j2] = tmp; } // 洗牌后的牌 System.out.println("===========洗牌后的順序============"); for (int i = 0; i < puker.length; i++) { for (int j = 0; j < puker[i].length; j++) { System.out.print(puker[i][j] + " "); } } // 開始發(fā)牌 for (int i = 0; i < 54; i++) { int p = i % 3; // 定義發(fā)給哪個玩家 int k = i / 3 - 1; // 定義輪次 if (i < 3) { // 先扣下三張底牌 temp[i] = puker[i / 13][i % 13]; // 從前向回取3張,估做底牌 } else if (p == 0) { player1[k] = puker[i / 13][i % 13]; } else if (p == 1) { player2[k] = puker[i / 13][i % 13]; } else if (p == 2) { player3[k] = puker[i / 13][i % 13]; } } System.out.println("\n==========發(fā)牌完成============="); // 玩家一 System.out.println("玩家一" + Arrays.toString(player1)); // 玩家二 System.out.println("玩家二" + Arrays.toString(player2)); // 玩家三 System.out.println("玩家三" + Arrays.toString(player3)); // 底牌 System.out.println("底牌" + Arrays.toString(temp)); } }
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
數(shù)字金額大寫轉(zhuǎn)換器制作代碼分享(人民幣大寫轉(zhuǎn)換)
一個人民幣大寫的擴展方法,可以做成數(shù)字金額大寫轉(zhuǎn)換器,大家參考使用吧2013-12-12C#實現(xiàn)自由組合本地緩存、分布式緩存和數(shù)據(jù)查詢
這篇文章介紹了C#實現(xiàn)本地緩存、分布式緩存和數(shù)據(jù)查詢的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07C#連接Oracle數(shù)據(jù)庫使用Oracle.ManagedDataAccess.dll
這篇文章主要介紹了C#使用Oracle.ManagedDataAccess.dll的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11