我用Java做了一个轮盘赌游戏

我们谈论一次使用Java创建轮盘赌游戏的经历。

首先

SLP KBIT 2018年度圣诞倒数日 12/5
我在大学实验中使用了Java制作了一个轮盘,现在来介绍一下。GitHub链接。
其实我原本计划介绍另一个项目,但由于时间实在太紧,没能完成。

轮盘游戏是什么?

在赌场里,维基百科有关于这个的内容。
有美式和欧式两种方式。
美式是在1~36的数字上额外添加了0/00。而欧式只有一个0。
这次由于编程的方便考虑,我们选择了美式。

话语

我已经确认了Java>=9的运行情况。
选择使用Java的原因是因为实验要求如此。它很费劲。

原始规则

为了简化创建过程,我们简化了一些规则。

    • ディーラーが破産したら勝ち,自分が破産したら負けである.

 

    • 掛け金がなくなるか,胴元の破産で終了.

 

    線の上には掛けない.

游戏的进行

    1. 设定玩家下注的地点和金额

 

    1. 抽奖

 

    1. 支付处理

 

    1. 如果(破产)则判定为破产,跳至6

 

    1. 跳至1

 

    结束

自己独立的设计

在轮盘赌中,存在一些特殊的位置,如SMALL和RED。这些可以使用以下的值来用int型表示。
其中,我想用枚举替代它。

数字値00……3636370038SMALL39MIDDLE40LARGE41LOW42HIGH43PARILLINEN(偶数)44PARITON(奇数)45RED46BLACK

这个词可以用汉语做如下解释:行动中的状态。

picBall.png

班级设计

进步

    • ゲームの全体進行を行う

 

    Mainメソッドはここ.

資訊

    • ゲームの説明をする.

 

    ベットできる残り時間を表示する.

任意金额

有以下的变量。

    • 初期化用変数

 

    • 賭けた場所

 

    賭金

同样,可以将赌注的地点和次数分别保存为静态变量。
通过将其作为数组来处理,可以方便地获取在哪里以及下注多少,还可以获取将下一个值保存在数组的第几个位置。
作为公共方法,还有一个reset方法,该方法用于将所有的值初始化为初始值。

桌子

    • ユーザが賭ける場所と金額を設定する.

 

    JButtonを多用

通过anyNumNomeyNormailize方法来对AnyNumMoney数组进行规范化。
这是为了去除只保存赌注或只保存金钱的元素,因为保存另一方面的元素是多余的。
public方法包括以下内容。

    1. void setLock(beelean)

 

    1. 设定锁定(beelean为真时)

 

    1. 在实际的赌场中,由于时间限制,将无法进行投注。将其实现。

beelean getLock()
获取当前是否可以进行投注。

AnyNumMoney[] getNumMoney()
返回保存了当前在哪里以及下了多少赌注的数组。

数字

    enum定義や,NumbersTableの値の取得メソッド

数字表格

    ArrayListで,番号,SML,色を保存する.
    通过地址获取特殊数字的静态方法。

轮盘赌

    乱数生成をする.
    1. 获取整数值的函数

 

    1. 获取整数值。

 

    1. 获取字符串值的函数

 

    获取字符串值。

我的颜色

返回Color类型。

    • 乱数によって決まった値まで,ボールを円盤状で流すアニメーション

 

    コンストラクタの引数で,止める数字を取る.

用 ckDoingBallMain() 方法来检查当前动画是否正在进行,如果动画结束,则关闭窗口并返回主方法进行处理。

请使用以下作为私有类。或者,给我一个结构体。

作为公共变量,拥有双精度类型的x和y变量。

我要点评

与dPoint相同,具有整型x和y变量。

演员

将dPoint中的x和y分别四舍五入,得到iPoint。

订单编号

保存圆盘的布局。轮盘圆盘的顺序不是按照0、1、2等规则性较高的顺序确定的,而是按照5、22、34等规则较低的顺序确定的。这个类用来保存它。

    搜索函数(search)返回参数的值在第几个位置。例如,search(5) 将返回 0。

主要的球

    • 円盤状でボールを回すクラス.

 

    • ボールを回すアニメーション自体には,スレッドにより動作する.

 

    • コンストラクタの引数に,止める値と縦横のサイズを取る.

 

    • 止める値は,円盤状の何番目か, NumOrder.search(int) で求める.

 

    黒魔術コードで絶妙に止まる.
    1. 蜜蜂获取线程状态()

 

    返回当前线程是否正在运行的布尔值,以T/F表示。

支付

向用户和经销商进行金钱处理。

    1. void calcEach(Player player1, Player player2, int betAmount)

 

    1. 计算玩家下注的位置。

 

    1. void clac(Player player1, Player player2, int betAmount, AnyNumMoney betMoney)

 

    根据玩家下注的位置,判断内围投注和外围投注。

钱包

儲存玩家和莊家的資金。

    1. 钱包(int)

 

    1. 设置持有的金钱。

 

    1. int 获取现金()

 

    1. 获取持有的金钱。

 

    1. void 支出(int)

 

    1. 进行支付,从持有的金钱中扣除给定金额。

 

    1. 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,我进行了介绍。
我会贴上正在运行中的图片之类的东西。
总之,可以玩游戏,希望大家玩耍。
如果能给个评价,我会非常高兴。

广告
将在 10 秒后关闭
bannerAds