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

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

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

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

Q&A

解決済

2回答

3253閲覧

Java ブラックジャックの作成についてのエラー

kixx

総合スコア14

Java

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

0グッド

0クリップ

投稿2020/01/08 02:45

前提・実現したいこと

Java初心者です。以下の問題について取り組んでいますが、エラーが出てどこを直したら良いのか分からなくなってしまいました。アドバイスをいただきたいです。よろしくお願いします。

【問題】
トランプゲームのBlackJackを作成します。
今回作成するBlackJackは、以下の条件を満たしていればOKです。
・トランプのマークは意識しなくても良いです。1-13×4の52枚。
・チップの概念は不要です。
・1は1と11で計算可能ですが、1に固定してもOKです。
・全自動でOKです。Hitの判断を手動でさせる必要はありません。
・全てのメソッドにアクセス修飾子publicをつけてください。
・全てのフィールドにアクセス修飾子protectedをつけてください。

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

【BlackJack.java】 メソッド elseif(boolean) は型 BlackJack で未定義です

該当のソースコード

BlackJack

1package blackjack; 2import java.util.ArrayList; 3 4public class BlackJack { 5 public static void main(String[] args) { 6 Dealer dealer = new Dealer(); 7 User user = new User(); 8 9 10 System.out.println("カードを配ります"); 11 12 ArrayList<Integer>deal = new ArrayList<Integer>(); 13 dealer.deal(); 14 System.out.println(dealer.deal()); 15 16 ArrayList<Integer>hit = new ArrayList<Integer>(); 17 dealer.hit(); 18 19 while(user.checkSum() == true) { 20 dealer.hit(); 21 } 22 23 while(dealer.checkSum() == true) { 24 dealer.hit(); 25 } 26 27 if(user.open() == 21) { 28 System.out.println("ブラックジャック!あなたの勝ち"); 29 }elseif(user.open() <= 21 && dealer.open() > user.open()){ 30 System.out.println("あなたの勝ち"); 31 }elseif(user.open() > 21){ 32 System.out.println("バースト!あなたの負け"); 33 }elseif(user.open() < dealer.open()){ 34 System.out.println("あなたの負け"); 35 }elseif(user.open() == dealer.open()){ 36 System.out.println("引き分け"); 37 } 38 } 39}

Human

1package blackjack; 2import java.util.ArrayList; 3 4public abstract class Human { 5 //手札の合計値を計算して戻す 6 abstract public int open(); 7 8 //引いたカードを手元に追加する 9 abstract public void setCards(); 10 11 //手札の合計値によってまだ引くべきかを決定する 12 abstract public boolean checkSum(); 13 14 //UserとDealerの持つ手札の情報 15 ArrayList<Integer> myCards = new ArrayList<Integer>(); 16 17} 18

Dealer

1package blackjack; 2import java.util.ArrayList; 3import java.util.Collections; 4 5public class Dealer extends Human { 6 //全てのトランプを持たせてシャッフルする 7 ArrayList <Integer> cards = new ArrayList<Integer>(); 8 public void allCards() { 9 for(int n=1;n<=3;n++) { 10 for(int i=1;i<=13;i++) { 11 cards.add(i); 12 } 13 } 14 Collections.shuffle(cards); 15 } 16 17 protected ArrayList<Integer> deal(){ //ディーラーがカードを配る 18 ArrayList<Integer>deal = new ArrayList<Integer>(); 19 //山札cardsから2枚取って配列dealの0,1を入れる 20 deal.add(cards.get(0)); 21 deal.add(cards.get(1)); 22 return deal; 23 } 24 25 protected ArrayList<Integer> hit(){ 26 ArrayList<Integer>hit = new ArrayList<Integer>(); 27 //山札から1枚取る 28 hit.add(cards.get(2)); 29 return hit; 30 } 31 32 public void setCards() { 33 ArrayList<Integer> deal = new ArrayList<Integer>(); 34 myCards = deal; 35 } 36 37 public boolean checkSum() { 38 if (open() <= 15) { 39 return true; 40 }else{ 41 return false; 42 } 43 } 44 45 public int open() { 46 int total_cards = 0; 47 for(int i=1;i<=myCards.size();i++) { 48 if(10 <= myCards.get(i)) { 49 myCards.set(i, 10); 50 } 51 total_cards += myCards.get(i); 52 } 53 return total_cards; 54 } 55} 56

User

1package blackjack; 2 3public class User extends Human { 4 public void setCards() { 5 6 } 7 8 public int open() { 9 int total_cards = 0; 10 for(int i=1;i<=myCards.size();i++) { 11 if(10 <= myCards.get(i)) { 12 myCards.set(i, 10); 13 } 14 total_cards += myCards.get(i); 15 } 16 return total_cards; 17 } 18 19 public boolean checkSum() { 20 if (open() <= 15) { 21 return true; 22 }else{ 23 return false; 24 } 25 } 26} 27

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

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

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

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

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

guest

回答2

0

ベストアンサー

elseとifの間に半角スペースを入れてください。

投稿2020/01/08 02:51

swordone

総合スコア20651

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

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

0

else if
では(半角スペースが必要)

投稿2020/01/08 02:51

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問