C#使用二维数组模拟斗地主
发布时间:2020-12-15 03:49:42 所属栏目:百科 来源:网络整理
导读:本篇章节讲解C#使用二维数组模拟斗地主的方法。供大家参考研究。具体如下: package com.pb.demo;import java.util.Arrays;import java.util.Random;/** * 扑克牌随机发牌 二维数组实现 * */public class Puker { public static void main(String[]
本篇章节讲解C#使用二维数组模拟斗地主的方法。分享给大家供大家参考。具体如下: package com.pb.demo; import java.util.Arrays; import java.util.Random; /** * 扑克牌随机发牌♠♥♣♦ 二维数组实现 * */ public class Puker { public static void main(String[] args) { // 定义数组 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]; // 二维数据洗牌 Random random = new Random(); int i1 = 0,i2 = 0,j1 = 0,j2 = 0;// 定义4个变量,用来存放数组的下标 // 洗牌1000次 for (int i = 0; i < 1000; i++) { // 下标i1等于,随机0~4的整数 一维的下标 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个元素 } // 因为最短的数组是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] + " "); } } // 开始发牌 for (int i = 0; i < 54; i++) { int p = i % 3; // 定义发给哪个玩家 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==========发牌完成============="); // 玩家一 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#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |