我用Java做了一个轮盘赌游戏
我们谈论一次使用Java创建轮盘赌游戏的经历。
首先
SLP KBIT 2018年度圣诞倒数日 12/5
我在大学实验中使用了Java制作了一个轮盘,现在来介绍一下。GitHub链接。
其实我原本计划介绍另一个项目,但由于时间实在太紧,没能完成。
轮盘游戏是什么?
在赌场里,维基百科有关于这个的内容。
有美式和欧式两种方式。
美式是在1~36的数字上额外添加了0/00。而欧式只有一个0。
这次由于编程的方便考虑,我们选择了美式。
话语
我已经确认了Java>=9的运行情况。
选择使用Java的原因是因为实验要求如此。它很费劲。
原始规则
为了简化创建过程,我们简化了一些规则。
-
- ディーラーが破産したら勝ち,自分が破産したら負けである.
-
- 掛け金がなくなるか,胴元の破産で終了.
- 線の上には掛けない.
游戏的进行
-
- 设定玩家下注的地点和金额
-
- 抽奖
-
- 支付处理
-
- 如果(破产)则判定为破产,跳至6
-
- 跳至1
- 结束
自己独立的设计
在轮盘赌中,存在一些特殊的位置,如SMALL和RED。这些可以使用以下的值来用int型表示。
其中,我想用枚举替代它。
这个词可以用汉语做如下解释:行动中的状态。
班级设计
进步
-
- ゲームの全体進行を行う
- Mainメソッドはここ.
資訊
-
- ゲームの説明をする.
- ベットできる残り時間を表示する.
任意金额
有以下的变量。
-
- 初期化用変数
-
- 賭けた場所
- 賭金
同样,可以将赌注的地点和次数分别保存为静态变量。
通过将其作为数组来处理,可以方便地获取在哪里以及下注多少,还可以获取将下一个值保存在数组的第几个位置。
作为公共方法,还有一个reset方法,该方法用于将所有的值初始化为初始值。
桌子
-
- ユーザが賭ける場所と金額を設定する.
- JButtonを多用
通过anyNumNomeyNormailize方法来对AnyNumMoney数组进行规范化。
这是为了去除只保存赌注或只保存金钱的元素,因为保存另一方面的元素是多余的。
public方法包括以下内容。
-
- void setLock(beelean)
-
- 设定锁定(beelean为真时)
-
- 在实际的赌场中,由于时间限制,将无法进行投注。将其实现。
beelean getLock()
获取当前是否可以进行投注。
AnyNumMoney[] getNumMoney()
返回保存了当前在哪里以及下了多少赌注的数组。
数字
- enum定義や,NumbersTableの値の取得メソッド
数字表格
- ArrayListで,番号,SML,色を保存する.
- 通过地址获取特殊数字的静态方法。
轮盘赌
- 乱数生成をする.
-
- 获取整数值的函数
-
- 获取整数值。
-
- 获取字符串值的函数
- 获取字符串值。
我的颜色
返回Color类型。
球
-
- 乱数によって決まった値まで,ボールを円盤状で流すアニメーション
- コンストラクタの引数で,止める数字を取る.
用 ckDoingBallMain() 方法来检查当前动画是否正在进行,如果动画结束,则关闭窗口并返回主方法进行处理。
请使用以下作为私有类。或者,给我一个结构体。
点
作为公共变量,拥有双精度类型的x和y变量。
我要点评
与dPoint相同,具有整型x和y变量。
演员
将dPoint中的x和y分别四舍五入,得到iPoint。
订单编号
保存圆盘的布局。轮盘圆盘的顺序不是按照0、1、2等规则性较高的顺序确定的,而是按照5、22、34等规则较低的顺序确定的。这个类用来保存它。
- 搜索函数(search)返回参数的值在第几个位置。例如,search(5) 将返回 0。
主要的球
-
- 円盤状でボールを回すクラス.
-
- ボールを回すアニメーション自体には,スレッドにより動作する.
-
- コンストラクタの引数に,止める値と縦横のサイズを取る.
-
- 止める値は,円盤状の何番目か, NumOrder.search(int) で求める.
- 黒魔術コードで絶妙に止まる.
-
- 蜜蜂获取线程状态()
- 返回当前线程是否正在运行的布尔值,以T/F表示。
支付
向用户和经销商进行金钱处理。
-
- void calcEach(Player player1, Player player2, int betAmount)
-
- 计算玩家下注的位置。
-
- void clac(Player player1, Player player2, int betAmount, AnyNumMoney betMoney)
- 根据玩家下注的位置,判断内围投注和外围投注。
钱包
儲存玩家和莊家的資金。
-
- 钱包(int)
-
- 设置持有的金钱。
-
- int 获取现金()
-
- 获取持有的金钱。
-
- void 支出(int)
-
- 进行支付,从持有的金钱中扣除给定金额。
-
- boolean 是否破产()
- 以T/F的方式返回是否破产。
选手
关于玩家和荷官的类。
经销商
只是继承了Player而已。
文件清单
.
├── ButtonIMG/ # そのうちボタンを置き換える用の画像ファイル
├── README.md
└── roulette/
├── Makefile # Build,実行用
├── bin/ # 生成される.classが自動で配置される
└── src/ # ソースファイル
├── AnyNumMoney.java
├── Ball.java
├── Dealer.java
├── InforMation.java
├── MyColor.java
├── Number.java
├── NumbersTable.java
├── Payment.java
├── Player.java
├── Progress.java
├── Roulette.java
├── Table.java
├── Wallet.java
└── WalletTest.java
Makefile制作文件
克隆git后,使用cd命令进入roulette目录。
然后,执行以下操作。
$ make
$ make class
$ make exe
$ make clean
$ make jar
未来的展望
-
- インターネット対戦の実装.
- テーブルやルーレット円盤のリアリティを高める.
总结
关于我制作的轮盘App,我进行了介绍。
我会贴上正在运行中的图片之类的东西。
总之,可以玩游戏,希望大家玩耍。
如果能给个评价,我会非常高兴。