• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#使用二维数组模拟斗地主

C#使用二维数组模拟斗地主

作者:森林森 字体:[增加 减小] 来源:互联网 时间:2017-05-28

森林森 通过本文主要向大家介绍了c#中数组的使用,c#数组的使用,c#怎么使用数组,c#二维数组的使用,c#二维数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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));
 }
}
</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用二维数组模拟斗地主

相关文章

  • 2017-05-28C#如何通过RFC连接sap系统
  • 2017-05-28C#获得文件属性信息的实现方法
  • 2017-05-28C#进度轴控件分享
  • 2017-05-28C#中数组Array,ArrayList,泛型List详细对比
  • 2017-05-28C#类中的属性使用总结(详解类的属性)
  • 2017-05-28C#生成随机ArrayList的方法
  • 2018-08-22C#三层设计模式总结
  • 2017-05-28C#使用winform简单导出Excel的方法
  • 2017-05-28使用windows控制台调试服务的方法
  • 2017-05-28C#获取上个月第一天和最后一天日期的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#计算字符串相似性的方法
    • 深入理解C#中new、override、virtual关键字的区别
    • 测试框架nunit之assertion断言使用详解
    • asp.net之生成验证码的方法集锦(一)
    • C#定时器和随机数
    • VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案
    • c#读写App.config,ConfigurationManager.AppSettings 不生效的解决方法
    • c# 泛型类型参数与约束的深入分析
    • C#实现类似qq的屏幕截图程序
    • 深入理解StringBuilder的使用方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有