質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.45%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

390閲覧

JAVAでブラックジャックを作ってます

umi_33332

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2023/01/25 12:33

前提

JAVAでブラックジャックを作ってます

実現したいこと

リストに入っているenumの文字列をint型に変換したい
sumPointを作りたい

発生している問題・エラーメッセージ

enumが文字列なので値を計算することができない。

該当のソースコード

JAVA

1//Card.java 2interface InterfaceCard{}; 3class Card implements InterfaceCard { 4 private Rank number; 5 private Suit suit; 6 public Card(Rank n, Suit s) { 7 number = n; 8 suit = s; 9 } 10 public Order getNumber() { 11 return number; 12 } 13 14 public String getCardDisp() { 15 return suit.toString() + number.toString(); 16 } 17} 18 19enum Suit{ 20 SPADE("♤"),HEART("♡"),DIAMOND("♢"),CLUB("♧"); 21 private String suit; 22 private Suit(String s) { 23 suit = s; 24 } 25 public String toString() { 26 return suit; 27 } 28} 29enum Rank{ 30 ACE("A"),TWO("2"),THREE("3"),FOUR("4"),FIVE("5"),SIX("6"),SEVEN("7"),EIGHT("8"),NINE("9"),TEN("10"),JACK("J"),QUEEN("Q"),KING("K"); 31 private String order; 32 private Order(String o) { 33 order = o; 34 } 35 public String toString() { 36 return order; 37 } 38} 39 40import java.util.ArrayList; 41import java.util.Collections; 42import java.util.List; 43import java.util.Scanner; 44import java.util.Iterator; 45 46 47 48//Blackjack.java 49public class Blackjack implements InterfaceCard{ 50 51 public static void main(String[] args) { 52 53 System.out.println("ゲーム開始"); 54 //空の山札作成 55 List <String> deck = new ArrayList<>(52); 56 //山札をシャッフル 57 shuffleDeck(deck); 58 59 60 //プレイヤー・ディーラーの手札リスト生成 61 List <String> player = new ArrayList<>(); 62 List <String> dealer = new ArrayList<>(); 63 64 65 //プレイヤー・ディーラーがカードを2枚引く 66 player.add(deck.get(0)); 67 dealer.add(deck.get(1)); 68 player.add(deck.get(2)); 69 dealer.add(deck.get(3)); 70 71 72 //プレイヤー・ディーラーの手札のポイントを表示 73 System.out.println("あなたの1枚目のカードは" + toDescription(player.get(0))); 74 75 System.out.println("ディーラーの1枚目のカードは" + toDescription(dealer.get(0))); 76 77 System.out.println("あなたの2枚めのカードは" + toDescription(player.get(1))); 78 79 System.out.println("ディーラーの2枚めのカードは秘密です。"); 80 81 //プレイヤー・ディーラーのポイントを集計 82 int playerPoint = sumPoint(player); 83 int dealerPoint = sumPoint(dealer); 84 85 System.out.println("あなたの現在のポイントは" + playerPoint + "です。" ); 86 87 88 } 89 90 91 //山札に値を入れ、シャッフルするメソッド 92 private static void shuffleDeck(List<String> deck) { 93 94 Card[] cards = new Card[] { 95 new Card(Rank.ACE, Suit.SPADE), 96 new Card(Rank.TWO, Suit.SPADE), 97 new Card(Rank.THREE, Suit.SPADE), 98 new Card(Rank.FOUR, Suit.SPADE), 99 new Card(Rank.FIVE, Suit.SPADE), 100 new Card(Rank.SIX, Suit.SPADE), 101 new Card(Rank.SEVEN, Suit.SPADE), 102 new Card(Rank.EIGHT, Suit.SPADE), 103 new Card(Rank.NINE, Suit.SPADE), 104 new Card(Rank.TEN, Suit.SPADE), 105 new Card(Rank.JACK, Suit.SPADE), 106 new Card(Rank.QUEEN, Suit.SPADE), 107 new Card(Rank.KING, Suit.SPADE), 108 new Card(Rank.ACE, Suit.HEART), 109 new Card(Rank.TWO, Suit.HEART), 110 new Card(Rank.THREE, Suit.HEART), 111 new Card(Rank.FOUR, Suit.HEART), 112 new Card(Rank.FIVE, Suit.HEART), 113 new Card(Rank.SIX, Suit.HEART), 114 new Card(Rank.SEVEN, Suit.HEART), 115 new Card(Rank.EIGHT, Suit.HEART), 116 new Card(Rank.NINE, Suit.HEART), 117 new Card(Rank.TEN, Suit.HEART), 118 new Card(Rank.JACK, Suit.HEART), 119 new Card(Rank.QUEEN, Suit.HEART), 120 new Card(Rank.KING, Suit.HEART), 121 new Card(Rank.ACE, Suit.DIAMOND), 122 new Card(Rank.TWO, Suit.DIAMOND), 123 new Card(Rank.THREE, Suit.DIAMOND), 124 new Card(Rank.FOUR, Suit.DIAMOND), 125 new Card(Rank.FIVE, Suit.DIAMOND), 126 new Card(Rank.SIX, Suit.DIAMOND), 127 new Card(Rank.SEVEN, Suit.DIAMOND), 128 new Card(Rank.EIGHT, Suit.DIAMOND), 129 new Card(Rank.NINE, Suit.DIAMOND), 130 new Card(Rank.TEN, Suit.DIAMOND), 131 new Card(Rank.JACK, Suit.DIAMOND), 132 new Card(Rank.QUEEN, Suit.DIAMOND), 133 new Card(Rank.KING, Suit.DIAMOND), 134 new Card(Rank.ACE, Suit.CLUB), 135 new Card(Rank.TWO, Suit.CLUB), 136 new Card(Rank.THREE, Suit.CLUB), 137 new Card(Rank.FOUR, Suit.CLUB), 138 new Card(Rank.FIVE, Suit.CLUB), 139 new Card(Rank.SIX, Suit.CLUB), 140 new Card(Rank.SEVEN, Suit.CLUB), 141 new Card(Rank.EIGHT, Suit.CLUB), 142 new Card(Rank.NINE, Suit.CLUB), 143 new Card(Rank.TEN, Suit.CLUB), 144 new Card(Rank.JACK, Suit.CLUB), 145 new Card(Rank.QUEEN, Suit.CLUB), 146 new Card(Rank.KING, Suit.CLUB), 147 }; 148 for(Card card : cards) { 149 deck.add(card.getCardDisp()); 150 } 151 //山札をシャッフル 152 Collections.shuffle(deck); 153   private static int sumPoint() { 154 155 } 156 } 157 158 }

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2023/01/25 19:15 編集

件名は質問内容の要約を書いてください。 3-1. タイトルには要件を書きましょう https://teratail.com/help/question-tips#questionTips31 コードはファイル毎にマークダウンを分けてください。 enum は enum であって文字列ではありません。 どれを何にしたいのでしょうか。 enum の値をやたら並べて初期化していますが、 enum に定義されている全値は values() メソッドで配列として得られます。配列内の並びは、定義した順です。 同時に、その順が各値に ordinal として定義されており、 ordinal() メソッドで得られます。 【初心者向け】JavaのEnum型について解説!基本的なメソッドも紹介! https://www.tech-teacher.jp/blog/java-enum/ Card クラスがあるのに何故ゲームのメインの処理には文字列にしてしまうのでしょう。 deck も player/dealer も List<Card> で良いのではありませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.45%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問