J'ai fait une roulette à Java.

L'histoire de la création d'un jeu de roulette en Java

introduction

SLP KBIT Advent Calendar 2018 12/5 J'ai fait une roulette en utilisant Java dans une expérience universitaire, je vais donc la présenter. GitHub. À l'origine, je prévoyais d'introduire un autre artefact, mais je n'ai pas pu le terminer car je n'avais pas assez de temps.

Qu'est-ce qu'une roulette

Celui du casino. Wikipédia. Il y a le style américain et le style européen. Dans le style américain, 0/00 existe en plus des chiffres 1 à 36. Le style européen n'est que de 0. Cette fois, pour la commodité de la programmation, j'ai pensé qu'un nombre pair était plus pratique, j'ai donc adopté le style américain.

Langue

Nous avons confirmé l'opération avec Java> = 9. La raison de l'utilisation de Java est qu'il a été spécifié dans l'expérience. lourd.

Règle d'origine

Certaines règles ont été simplifiées par souci de simplicité.

Flux de jeu

  1. Définissez où et combien le joueur mise
  2. Loterie
  3. Traitement des paiements
  4. Jugement de faillite si (faillite) va 6
  5. goto 1.
  6. Terminer

Dessin original

Il y a des endroits spéciaux dans la roulette tels que SMALL et RED. Ceci est exprimé sous la forme d'un type int en utilisant les valeurs suivantes. Je veux le remplacer par enum.

Nombres valeur
0 0
... ...
36 36
37 00
38 SMALL
39 MIDDLE
40 LARGE
41 LOW
42 HIGH
43 PARILLINEN(Même)
44 PARITON(Impair)
45 RED
46 BLACK

État pendant le fonctionnement

  1. Tableau des paris picTable.png

  2. Disque de roulette picBall.png

Conception de classe

Progress

InforMation

AnyNumMoney Il existe les variables suivantes.

De plus, en tant que variable statique, l'endroit où vous pariez et le nombre de fois où vous gagnez de l'argent sont enregistrés séparément. En traitant cela comme un tableau, il est possible de gérer où et combien vous pariez, et vous pouvez obtenir le nombre dans le tableau où la valeur suivante est stockée. Il y a réinitialisation en tant que méthode publique. Cela initialise toutes les valeurs.

Table

Utilisez la méthode anyNumNomeyNormailize pour normaliser le tableau AnyNumMoney. En effet, l'élément qui enregistre uniquement la place pour parier ou uniquement l'argent et ne sauve pas l'autre est inutile et est annulé. Les méthodes publiques sont les suivantes.

  1. void setLock(beelean) Vous ne pourrez pas parier. Dans un casino réel, vous ne pouvez pas parier en raison de la limite de temps. Réalise-le.

  2. beelean getLock() Obtenez si vous pouvez maintenant parier.

  3. AnyNumMoney[] getNumMoney() Renvoie un tableau qui stocke où et combien vous pariez actuellement.

Number

NumbersTable

  1. public static SpecialNumbers getSpecialNumberByAddress(int)
    Lancez une valeur et prenez une énumération dans un endroit spécial.

Roulette

  1. int getIntRouletteValue() Prenez avec int.

  2. String getStringRouletteValue() Prenez avec String.

MyColor Renvoie le type de couleur.

Ball

Appelez la classe BalMain en tant que Windows. Puisque la fenêtre BallMain fonctionne dans un thread séparé, si vous l'appelez directement à partir de la méthode Main, le traitement de la méthode Main se poursuivra avant la fin de la roulette. Pour éviter cela, utilisez la méthode ckDoingBallMain () pour vérifier si l'animation est actuellement en cours. Une fois terminé, fermez la fenêtre et revenez à la méthode Main.

Ce qui suit est utilisé comme classe privée. Ou donnez-moi une structure.

dPoint En tant que public, il a des variables de type double x et y.

iPoint Comme dPoint, il a des variables de type int x et y.

Cast Arrondissez x et y en dPoint pour faire iPoint.

NumOrder Enregistrez la disposition du disque. Les disques de roulette sont déterminés par ordre croissant de «5,22,34, ...» au lieu de «0,1,2, ...». Une classe pour le sauver.

  1. int search(int)
    Une méthode qui renvoie le numéro de la valeur de l'argument. Par exemple, search (5) renvoie 0.

BallMain

  1. beelean getThreadStatus()
    Renvoie par T / F si le thread est en cours d'exécution.

Payment Effectue le traitement monétaire des utilisateurs et des concessionnaires.

  1. void calcEach(Player, Player, int) Calculez en léchant l'endroit où l'utilisateur a misé.

  2. void clac(Player, Player, int, AnyNumMoney) Le pari intérieur et le pari extérieur sont jugés en fonction du lieu où l'utilisateur parie.

Wallet Économisez l'argent du joueur et du croupier.

  1. Wallet(int) Définissez le montant d'argent dont vous disposez.

  2. int getCache() Obtenez l'argent que vous avez.

  3. void Cache(int) Effectuer un paiement. Le montant de l'argument est déduit du montant d'argent dont vous disposez.

  4. boolean isInsolvency() Renvoie si elle est en faillite par T / F.

Player Classes sur les joueurs et les concessionnaires.

Dealer Il hérite juste de Player.

Liste des fichiers

Liste des fichiers


.
├── ButtonIMG/  #Fichier image pour remplacer le bouton
├── README.md   
└── roulette/
    ├── Makefile  #Construire, pour exécution
    ├── bin/  #Généré.la classe est automatiquement placée
    └── src/  #fichier source
        ├── 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 Après git clone, déplacez le répertoire avec cd roulette. Après cela, exécutez ce qui suit pour l'opération que vous souhaitez effectuer.

Compilez et exécutez à la fois


$ make

compiler


$ make class

Courir


$ make exe

Supprimer le fichier de classe


$ make clean

Générer un fichier jar


$ make jar

Perspectives d'avenir

Résumé

Nous avons introduit l'application de roulette créée. Je vais coller l'image en cours d'exécution ou bientôt. Pour le moment, il est possible de jouer, alors veuillez jouer. Je serais très heureux si vous pouviez me donner des critiques.

Recommended Posts

J'ai fait une roulette à Java.
J'ai fait une annotation en Java.
J'ai créé un programme de jugement des nombres premiers en Java
J'ai créé un jeu Janken en Java (CLI)
J'ai essayé la métaprogrammation avec Java
J'ai fait un jeu de problèmes de calcul simple en Java
J'ai envoyé un e-mail en Java
J'ai créé un PDF avec Java.
J'ai créé une application shopify @java
J'ai écrit le théorème de Gordobach en java
J'ai essayé d'utiliser JWT en Java
Jeu de devinettes d'âge réalisé avec Java
Distributeur automatique d'échantillons fabriqué avec Java
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
J'ai fait un "Sunshine Ikezaki game" que j'ai vu sur Twitter en Java.
J'ai essayé d'utiliser l'API Elasticsearch en Java
J'ai créé StringUtils.isBlank
Partition en Java
J'ai essayé le nouveau yuan à Java
Changements dans Java 11
Janken à Java
Échantillon de distributeur automatique fabriqué avec Java (classification)
J'ai fait l'étalonnage de la caméra OpenCV en Java
J'ai créé un nouvel outil de déploiement Java
Taux circonférentiel à Java
[* Java *] J'ai participé au JJUG CCC 2019 Spring
FizzBuzz en Java
J'ai créé un outil Diff pour les fichiers Java
Outil GUI refactorisé réalisé avec Java8 + JavaFX en 2016
Je souhaite envoyer un e-mail en Java.
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai écrit un programme de jugement des nombres premiers en Java
J'ai créé une bibliothèque d'extension Ruby en C
rsync4j --Je veux toucher rsync en Java.
Ce que j'ai appris en Java (partie 2) Que sont les variables?
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de créer une compétence Alexa avec Java
J'ai écrit un programme de factorisation prime en Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
Joindre des tableaux en Java
J'ai d'abord touché Java ②
"Hello World" en Java
Interface appelable en Java
J'ai d'abord touché Java ③
Commentaires dans la source Java
Fonctions Azure en Java
J'ai d'abord touché Java ④
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java