博饼程序制作教程

任务分析

制作一个博饼程序,模拟日常博饼中随机掷出六个骰子,并根据骰子的点数判断来判断胜负。

一.思路解析

按照此思路,我们开始进行博饼程序的编写

二.界面设计

2.1骰子的制作

思路,使用SetCursorPosition函数对骰子定位,在相应位置将骰子打印出来即可。将每个骰子看成9个部分,建立一个二维数组string[,] digital = new string[6, 3],将六个骰子表现出来。因为此次任务比较简单,所以我只有一个类,将其他功能打包成函数,实现整个程序。

上代码:

//画出骰子static void Displaynum(int num, int x, int y){Console.ForegroundColor = ConsoleColor.White;string[,] digital = new string[6, 3] {{"      ","  ●  ","      " },//1{"      ","●  ●","      " },//2{"●    ","  ●  ","    ●" },//3{"●  ●","      ","●  ●" },//4{"●  ●","  ●  ","●  ●" },//5{"●  ●","●  ●","●  ●" },//6};for (int i = 0; i < 6; i++){if (i == num-1){for (int j = 0; j < 3; j++){Console.SetCursorPosition(x, y + j);Console.WriteLine(digital[i, j]);}break;}}}

至于为什么要用二维数组制造骰子,则是因为SetCursorPosition函数仅对当前行有效如果直接打印的话,骰子会非常难看。

2.2具体的运行界面

因为没准备做form界面,而控制台又比较丑,所以就单单实现了基本的提示,满足了运行程序的基本功能。

            while (true){Start();string aa=Console.ReadLine();if (aa == "q"){break;}Console.Clear();}

while循环保证博饼程序在不主动退出情况下一直运行,Console.Clear();则是为了不断的更新界面是控制台仅显示当前最新的骰子。if语句则是为了输入q主动退出程序。

三.基础算法

3.1随机数产生

C#中随机数非常容易产生,直接调用C#的random类即可,至于产生1-6的的随机数直接取模即可

//生成一个1-6的随机数,并将数存入数组Random rd = new Random();for (int i = 0; i < 6; i++){int k = rd.Next();k = (k % 6) + 1;a[i] = k;Displaynum(k, 28 + 10 * i, 4);}

3.2博饼算法

使用string中的count函数统计不同数字出现的次数,根据数字出现的次数判断博饼的结果。同时,如果从一秀开始讨论,则会考虑很多情况十分不便。所以为了方便起见,从最简单的状元,六杯红等简单的开始,由于是使用if else 语句当这些情况被列举时之后就无需考虑,是情况讨论变得十分简单。

//统计数字的出现次数,以便于判断博饼情况int one = number.Count(r => r == '1');int two = number.Count(r => r == '2');int three = number.Count(r => r == '3');int four = number.Count(r => r == '4');int five = number.Count(r => r == '5');int six = number.Count(r => r == '6');//判断先从简单的开始if else语句可以将情况多的在后面else出来if (four == 6) Console.WriteLine("六杯紅");else if (four == 4 && one == 2) Console.WriteLine("狀元插金花");else if (one == 6) Console.WriteLine("遍地錦");else if (six == 6 || five == 6 || three == 6 || two == 6) Console.WriteLine("六杯黑");else if (four == 5 && one == 1) Console.WriteLine("五紅");else if (six == 5 || five == 5 || three == 5 || two == 5 || one == 5) Console.WriteLine("五子登科");else if (one == 1 && two == 1 && three == 1 && four == 1 && five == 1 && six == 1) Console.WriteLine("對堂");else if (four == 4) Console.WriteLine("四点紅");else if (one == 4 || two == 4 || three == 4 || five == 4 || six == 4) Console.WriteLine("四進");else if (four == 3) Console.WriteLine("三紅");else if (four == 2) Console.WriteLine("二舉");else if (four == 1) Console.WriteLine("一秀");else Console.WriteLine("謝謝參與");

四.总结

这次博饼程序介绍就到这里了,总的来说难度不大,关于博饼判断算法还有一种思路就是使用正则表达式判断博饼,但是难度反而更大,不是很实用。之后有时间,或许会试着做做。

博饼程序制作教程 C#相关推荐

  1. HTML5+CSS大作业——简单的程序员个人博客(7页) 大学个人博客网页制作教程 表格布局网页模板

    HTML5+CSS大作业--简单的程序员个人博客(7页) 大学个人博客网页制作教程 表格布局网页模板 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家 ...

  2. 个人怎么制作微信小程序,微信小程序可以免费制作吗?微信小程序制作教程

    微信小程序 微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应 ...

  3. 抖音记事本代码html,抖音表白程序制作教程 抖音表白代码制作分享-记事本文件...

    抖音表白程序制作教程 抖音表白代码制作分享 抖音是一款短视频软件,上面有很多新奇而富有创意的玩法,比如最近很火的利用弹窗表白,那么抖音表白程序应该怎么制作呢?下面小编给大家带来抖音表白程序制作教程分享 ...

  4. 厦门中秋博饼程序!(JAVA编写)

    /*博饼,这是一个Applet程序,要求:记录已经获取的每种奖品的数目,如果某种奖品用完了,再博出的相应点数不获奖. 游戏结束的条件是:状元已经产生,而且奖品已经用完.跟踪每个获奖过程,一直到游戏结束 ...

  5. 完全免费的小程序制作教程

    微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用.从2017年的上线到现在的2018年,不得不说小程序小程序迅速占领用 ...

  6. 关于网站、微商城和小程序制作教程指导协助说明

    关于网站.微商城和小程序,甚至系统自带的宣传海报系统的操作使用步骤,我们都一一进行提供专业教程指导,目的只有一个让各位网友自己熟练掌握,多项技能,少花费用. 定力不足,半途而废 但是,我们逐渐发现不少 ...

  7. 多商户商城源码_多商户小程序开发搭建?开达应用多商户入驻商城小程序制作教程...

    多商户小程序如何搭建?多商户入驻商城小程序快读搭建教程 多商户设置 前言:多商户是配合商城主应用才能使用 基础设置 支持选择提现方式,多商户的用户在申请提现时使用 客服图标(开启) 商户距离排序(开启 ...

  8. 新手微信小程序制作教程步骤详解!

    制作微信小程序方法: 1.在微信公众平台上申请一个小程序账号,申请完成之后需要进行微信认证,并且需要缴纳300元的认证费用.如果不缴纳300元的费用,微信小程序商城没有开通支付功能. 2.新建一个空白 ...

  9. 手机点餐怎么做_分享微信点餐小程序制作教程

    现在扫码点餐的小程序都非常普遍,开发制作手机点餐小程序方法如下: 直接购买成熟的手机扫码点餐小程序系统,一般模板的点餐小程序价格费用在2000-4000元左右. 个性定制开发,如果老板对手机点餐小程序 ...

最新文章

  1. 引导直觉解决数学猜想难题,DeepMind登上《Nature》封面
  2. oracle函数,oracle编写函数
  3. 一、预备知识―程序的内存分配
  4. linux shell 数组倒序
  5. Linux基础优化之SElinux和iptables项
  6. C/C++ 之 C发展史及 各标准特性说明
  7. 文件查找_tar_ext34_swap
  8. Entity Framework 实体关系总结(转)
  9. 内向的人可以做产品经理吗?
  10. vi 中插入当前时间
  11. Eclipse SQL Explorer
  12. 不懂技术的小白,使用电商网站建设工具有什么注意事项?
  13. HCIE 习题整理 含解释
  14. 怎么彻底删除users下的文件夹_c盘用户文件夹特别大,c盘users文件夹可以删除吗...
  15. 语义错误和语法错误的区别
  16. ElasticSearch for GIS应用
  17. echarts4.8.0最新版本下载,亲测可用
  18. Criteria使用指南
  19. linux下微信/qq的aud、silk音频文件格式与mp3格式互转,获取音频时长的方法,附问题分析和java代码。
  20. Nginx下本机多项目虚拟主机配置[一个端口多个站点]

热门文章

  1. 国内汽车融资租赁ABN市场破冰 首单总注册额度20亿元花落易鑫
  2. 第一节云计算课程的感想
  3. 深度强化学习+启发人类的决策智能,专访一家有愿景的中国企业「启元世界」...
  4. 使用python随机生成IP+域名并写入excel表
  5. 一个简单的Arm开发板的制作过程
  6. 安卓USB开发教程 <五> 安卓 AOA 1.0
  7. Genesis 社区答疑—第一期
  8. 爬虫“学前班”,记住这些不踩坑!
  9. 人工智能开启数字化新征程,智能语音全速向前
  10. mysql+distinct+max_MySQL 中 distinct 和 group by 性能比较-Fun言