【Java】【初心者】しりとりプログラム~その⑤~(メソッド化してみた)
こんばんは。
駆け出しプログラマーのakhです。
前回は、コンピュータの動きをメソッド化して、
コンピュータ同士での対戦をすることができました。
今回は、
プレイヤーメソッドを作って、
もう一度、コンピュータ対プレイヤー(1対1)の
しりとりプログラムを作ってみたいと思います。
試行錯誤して、できたのがこちら!!!
package practice4; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Siritori16 { public static void main(String[] args) { boolean flag = true; List<String> playerUsed = new ArrayList<>(); List<String> comUsed = new ArrayList<>(); //最初の言葉をランダムで出す int count =0; int a = new Random().nextInt(50); String firstWord = new String(); try{ File file = new File("C:\\辞書\\sakura.txt"); FileReader fr = new FileReader(file); BufferedReader bfr = new BufferedReader(fr); while(bfr.ready()){ firstWord = bfr.readLine(); firstWord = toUpper(firstWord); firstWord = remove(firstWord); if(count == a){ break; } count ++ ; } } catch (IOException e) { e.printStackTrace(); } System.out.println("最初の言葉は..."); System.out.println(firstWord); String data = firstWord; String inputstr = new String(); int i = 0; while(i<5){ if(flag){ System.out.println((i+1)+"回目"); inputstr=player(inputstr,data); System.out.println("player:"+inputstr); //全角カタカナで入力 if(Katakana(inputstr)==false){ continue; } //前の言葉から繋がっているかどうか if(!(data.charAt(data.length()-1) == inputstr.charAt(0))){ System.out.println(""); System.out.println("だめです。続く言葉を入れてください。"); flag = false; break; } comUsed.add(firstWord); data=computer(data,inputstr,comUsed); //語尾に「ん」があるかどうか if(checkStr(inputstr)){ flag = false; break; } //2回使ったかどうか if(playerUsed.contains(inputstr)){ System.out.println("一度使いました。"); flag = false; break; } if(playerUsed.contains(data)){ System.out.println("同じ言葉を使ってしまいました…"); flag = true; break; } if(data==firstWord){ System.out.println("最初と同じ言葉を使ってしまいました"); flag = true; break; } if(data==null){ flag = true; break; } playerUsed.add(firstWord); playerUsed.add(inputstr); playerUsed.add(data); i++; } } if(!flag){ System.out.println("----------------------------------------------------------------"); System.out.println("あなたの負けです。"); } //5回ループしたとき if(i==5){ System.out.println("----------------------------------------------------------------"); System.out.println("5回ループしました。"); System.out.println("あなたの勝ちです。"); } } //プレイヤーメソッド private static String player(String inputstr,String data){ List<String> used = new ArrayList<>(); inputstr = new java.util.Scanner(System.in).nextLine(); used.add(inputstr); inputstr = toUpper(inputstr); inputstr = remove(inputstr); return inputstr; } //コンピュータメソッド private static String computer(String data,String inputstr,List<String> comUsed){ String word = new String(); try { // ファイルのパスを指定する File file = new File("C:\\辞書\\sakura.txt"); // ファイルが存在しない場合に例外が発生するので確認する if (!file.exists()) { System.out.print("ファイルが存在しません"); } // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); while ((data = bufferedReader.readLine()) != null) { word = data; data = toUpper(data); data = remove(data); if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ if(!comUsed.contains(data) ) { System.out.println("com:"+data); comUsed.add(data); //System.out.println(comUsed); break; } } } if(data == null) { System.out.println(" "); System.out.println("辞書にもうありません。"); } // 最後にファイルを閉じてリソースを開放する bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } return data; } //カタカナ小文字を大文字に変換するメソッド private static String toUpper(String str) { str = str.replace("ャ","ヤ"); str = str.replace("ュ","ユ"); str = str.replace("ョ","ヨ"); str = str.replace("ァ","ア"); str = str.replace("ィ","イ"); str = str.replace("ゥ","ウ"); str = str.replace("ェ","エ"); str = str.replace("ォ","オ"); return str; } //語尾に「ー」があったら、取るメソッド private static String remove(String str2){ if(str2.substring(str2.length()-1).equals("ー")){ str2 = str2.substring(0,(str2.length()-1)); } return str2; } //語尾に「コウサン」、「ン」があるかどうか確認するメソッド private static boolean checkStr(String checkStr){ boolean result = true; if(checkStr.equals("コウサン")){ System.out.println("「コウサン」しました。"); }else if(checkStr.substring(checkStr.length()-1).equals("ン")){ System.out.println("「ン」がつきました。"); }else{ //「ン」が付かない場合は検証結果をfalseにする return false; } return result; } //入力の言葉が「全角カタカナ」及び長音付「ー」かどうか確認するメソッド private static boolean Katakana(String str3){ if(str3 == null || !str3.matches("^[ァ-ヶー]*$")){ //一致しない場合、エラー System.out.println("全角カタカナで入力してください。"); return false; } return true; } }
表示画面は、こんな感じ
最初の言葉は... センベイ 1回目 イタチ player:イタチ com:チータ 2回目 タヌキ player:タヌキ com:キシヤ 3回目 ヤリ player:ヤリ com:リンゴ 4回目 ゴマ player:ゴマ com:マンゴ 5回目 ゴリラ player:ゴリラ com:ラクダ ---------------------------------------------------------------- 5回ループしました。 あなたの勝ちです。
いやぁ、ここまでくるのには、相当な時間かかりました…
【Java】【初心者】しりとりプログラム~その④~(コンピュータ同士での対戦)
こんばんは。
駆け出しプログラマーのakhです。
今回は、コンピュータのメソッドを使って
コンピュータ同士での対戦をさせました。
完成したコードがこちらです。
package practice4; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Siritori13 { public static void main(String[] args) { boolean flag = true; List<String> used2 = new ArrayList<>(); //最初の言葉をランダムで出す int count =0; int a = new Random().nextInt(50); String firstWord = new String(); try{ File file = new File("C:\\辞書\\sakura.txt"); FileReader fr = new FileReader(file); BufferedReader bfr = new BufferedReader(fr); while(bfr.ready()){ firstWord = bfr.readLine(); firstWord = toUpper(firstWord); firstWord = remove(firstWord); if(count == a){ break; } count ++ ; } } catch (IOException e) { e.printStackTrace(); } System.out.println("最初の言葉は..."); System.out.println(firstWord); String data = firstWord; String inputstr = data; int i = 0; while(i<10){ System.out.println((i+1)+"回目"); inputstr=computer(data,inputstr); if(used2.contains(inputstr)){ System.out.println("一度使いました。"); break; } used2.add(inputstr); i++; } } //コンピュータメソッド private static String computer(String data,String inputstr){ List<String> used = new ArrayList<>(); String word = new String(); try { // ファイルのパスを指定する File file = new File("C:\\辞書\\sakura.txt"); // ファイルが存在しない場合に例外が発生するので確認する if (!file.exists()) { System.out.print("ファイルが存在しません"); } // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); while ((data = bufferedReader.readLine()) != null) { word = data; data = toUpper(data); data = remove(data); //辞書に言葉があるか検索 if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ if(!used.contains(word) ) { System.out.println("com:"+data); used.add(word); break; } } } used.add(inputstr); // 最後にファイルを閉じてリソースを開放する bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } return data; } //カタカナ小文字を大文字に変換するメソッド private static String toUpper(String str) { str = str.replace("ャ","ヤ"); str = str.replace("ュ","ユ"); str = str.replace("ョ","ヨ"); str = str.replace("ァ","ア"); str = str.replace("ィ","イ"); str = str.replace("ゥ","ウ"); str = str.replace("ェ","エ"); str = str.replace("ォ","オ"); return str; } //語尾に「ー」があったら、取るメソッド private static String remove(String str2){ if(str2.substring(str2.length()-1).equals("ー")){ str2 = str2.substring(0,(str2.length()-1)); } return str2; } //語尾に「コウサン」、「ン」があるかどうか確認するメソッド private static boolean checkStr(String checkStr){ boolean result = true; if(checkStr.equals("コウサン")){ System.out.println("「コウサン」しました。"); }else if(checkStr.substring(checkStr.length()-1).equals("ン")){ System.out.println("「ン」がつきました。"); }else{ //「ン」が付かない場合は検証結果をfalseにする return false; } return result; } //入力の言葉が「全角カタカナ」及び長音付「ー」かどうか確認するメソッド private static boolean Katakana(String str3){ if(str3 == null || !str3.matches("^[ァ-ヶー]*$")){ //一致しない場合、エラー System.out.println("全角カタカナで入力してください。"); return false; } return true; } }
表示画面は、こんな感じになりました。
最初の言葉は... ドラヤキ 1回目 com:キシヤ 2回目 com:ヤギ 3回目 com:ギンガミ 4回目 com:ミミズ 5回目 com:ズッキーニ 6回目 com:ニンニク 7回目 com:クルミ 8回目 com:ミミズ 一度使いました。
ここでは、コンピュータの区別を付けていないので、
一度使った言葉が出てきた時点で、終了とさせました。
今まで、メソッドや引数の意味が分かっていなかったのですが、
試行錯誤しながら作っていくうちに、なんとなくですが分かるようになってきました。
そしてさらに!
最初の言葉は「シリトリ」から始めていましたが、
今回、Randomクラスを使って、辞書データの中から
ランダムに言葉を出せるようになりました(^O^)/
↓
//最初の言葉をランダムで出す int count =0; int a = new Random().nextInt(50); String firstWord = new String(); try{ File file = new File("C:\\辞書\\sakura.txt"); FileReader fr = new FileReader(file); BufferedReader bfr = new BufferedReader(fr); while(bfr.ready()){ firstWord = bfr.readLine(); firstWord = toUpper(firstWord); firstWord = remove(firstWord); if(count == a){ break; } count ++ ; } } catch (IOException e) { e.printStackTrace(); }
【Java】【初心者】しりとりプログラム~その③~
おはようございます。
駆け出しプログラマーのakhです。
その②からの続きです。
今回、しりとりプログラムをつくる中で、
⁇でいっぱいだったのが、、、
コンピュータは、外部の辞書データから読み込んで出力する。
ということです。
これを聞いて、「え?自動的にコンピュータが言葉を返してくれないの?」
と思いました。そうです。ゼロから作るから、返してくれるわけありません。
さっそくググるところから始めました(笑)
私が参考にしたサイトはこちらです。↓↓↓↓↓↓↓↓↓
【Java】FileReader、BufferedReaderでテキストファイルを読み込む> https://www.sejuku.net/blog/20924>
Let'sプログラミング >https://www.javadrive.jp/start/stream/index1.html>
いろいろググってみて、分かったこと
・ファイルを読み込むには「FileReaderクラスのreadメソッド」や 「BufferedReaderクラスのreadLineメソッド」がある。 ・「FileReaderクラスのreadメソッド」は、文字を一文字ずつ読んでいくときに使う。 ・「BufferedReaderクラスのreadLineメソッド」は、 テキストファイルを一行ずつ読み込むときに使う。
なので、今回は、「BufferedReaderクラスのreadLineメソッド」
を使うことにしました。
以下、記述したコードです。
try { // ファイルのパスを指定する File file = new File("C:\\辞書\\sakura.txt"); // ファイルが存在しない場合に例外が発生するので確認する if (!file.exists()) { System.out.print("ファイルが存在しません"); return; } // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); while ((data = bufferedReader.readLine()) != null) { word = data; data = toUpper(data); data = remove(data); //辞書に言葉があるか検索 if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ if(!used.contains(word) ) { System.out.println("com:"+data); break; } } } // 最後にファイルを閉じてリソースを開放する bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); }
BufferedReaderクラスのreadLineメソッドを使うときには、
エラー発生時の処理である、「例外」を記述しなければなりません。
ここでいう、エラー発生時とは、
BufferedReaderクラスのメソッドであるreadLine()を実行するときに、
「IOException」という例外が発生する可能性があるのに対処されていません、というエラーです。
try-catchのブロックを使うことで、エラーに対する処理を書くことができました(^O^)/
【Java】【初心者】しりとりプログラム~その②~
こんばんは。
駆け出しプログラマーのakhです。
その①からの続きです。
しりとりプログラムの勝ち負けの判定ですが、
今回は、boolean型のflagを使いました。
boolean flag = true;
これで、プログラム全体がtrueになりました。
逆に、語尾に「ン」が付いていたり、前の言葉から
つながっていなかったりした場合は、
if(checkStr(inputstr)){ flag = false;
として、勝敗判定に持ち込みました。
//勝敗判定(勝敗が付かない場合は無限ループの先頭に戻る) if(flag && data == null) { System.out.println("あなたの勝ちです。"); break; }else if(!flag){ System.out.println("あなたの負けです。"); break; }else{ used.add(word); System.out.println("入力してください。"); i++; continue; }
while文の中に書いたので、判定ができ次第、
breakを使って、処理を終了させました。
今まで判定に、if文のif文のif文…
と、
ネストだらけになっていたのですが、
少しすっきりしたコードが書けたと思います。
まだごちゃついてるので、
次はコンピュータやプレイヤーの働きを
メソッド化していきたいと思います。
その③へ続く…
【初心者】【Java】しりとりプログラム~その①~
こんにちは!
駆け出しプログラマーのakhです。
なんと、
ついに、、
とても苦戦していた「しりとりプログラム」が
完成しました(^O^)/
といっても、コンピュータとの一対一ですが。
(最終目標は、8人プレイ)
初心者にとっては、ベリーハードでした。
以下、コードです。
package practice4; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class Siritori12 { public static void main(String[] args) { boolean flag = true; String word = new String(); System.out.println("言葉を入力してください"); System.out.println("シリトリ"); String data = "シリトリ"; List<String> used = new ArrayList<>(); //5どちらかが敗北条件に達するor5回ループするまで繰り返す int i = 0; while(i<5){ //プレーヤーの場合、言葉を入力してもらう String inputstr; //String data = new String(); inputstr = new java.util.Scanner(System.in).nextLine(); if(Katakana(inputstr)==false){ continue; } //前の言葉から繋がっているかどうか if(!(data.charAt(data.length()-1) == inputstr.charAt(0))){ System.out.println("だめです。続く言葉を入れてください。"); flag = false; //continue; } //語尾に「ん」があるかどうか if(checkStr(inputstr)){ flag = false; //break; } if(used.contains(inputstr)){ System.out.println("その言葉は一度使いました。"); flag = false; //break; } used.add(inputstr); inputstr = toUpper(inputstr); inputstr = remove(inputstr); if(flag) { System.out.println((i+1)+"回目"); System.out.println("自分:"+inputstr); try { // ファイルのパスを指定する File file = new File("C:\\辞書\\sakura.txt"); // ファイルが存在しない場合に例外が発生するので確認する if (!file.exists()) { System.out.print("ファイルが存在しません"); return; } // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); while ((data = bufferedReader.readLine()) != null) { word = data; data = toUpper(data); data = remove(data); //辞書に言葉があるか検索 if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ if(!used.contains(word) ) { System.out.println("com:"+data); break; } } } // 最後にファイルを閉じてリソースを開放する bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } if(data == null){ System.out.println("辞書にもうありません。"); } //勝敗判定(勝敗が付かない場合は無限ループの先頭に戻る) if(flag && data == null) { System.out.println("あなたの勝ちです。"); break; }else if(!flag){ System.out.println("あなたの負けです。"); break; }else{ used.add(word); System.out.println("入力してください。"); i++; continue; } } //5回ループしたとき if(i==5){ System.out.println("----------------------------------------------------------------"); System.out.println("5回ループしました。"); System.out.println("あなたの勝ちです。"); } } //カタカナ小文字を大文字に変換するメソッド private static String toUpper(String str) { str = str.replace("ャ","ヤ"); str = str.replace("ュ","ユ"); str = str.replace("ョ","ヨ"); str = str.replace("ァ","ア"); str = str.replace("ィ","イ"); str = str.replace("ゥ","ウ"); str = str.replace("ェ","エ"); str = str.replace("ォ","オ"); return str; } //語尾に「ー」があったら、取るメソッド private static String remove(String str2){ if(str2.substring(str2.length()-1).equals("ー")){ str2 = str2.substring(0,(str2.length()-1)); } return str2; } //語尾に「コウサン」、「ン」があるかどうか確認するメソッド private static boolean checkStr(String checkStr){ boolean result = true; if(checkStr.equals("コウサン")){ System.out.println("「コウサン」しました。"); }else if(checkStr.substring(checkStr.length()-1).equals("ン")){ System.out.println("「ン」がつきました。"); }else{ //「ン」が付かない場合は検証結果をfalseにする return false; } return result; } //入力の言葉が「全角カタカナ」及び長音付「ー」かどうか確認するメソッド private static boolean Katakana(String str3){ if(str3 == null || !str3.matches("^[ァ-ヶー]*$")){ //一致しない場合、エラー System.out.println("全角カタカナで入力してください。"); return false; } return true; } }
何が難しかったかというと、自分が入力した文字の
末尾の言葉を
(例えば「リンゴ」を入力した場合、「ゴ」)
自作の辞書データの中から検索して出力するところです。
while文を使って、辞書データを一行ずつ読んでいきました。
while ((data = bufferedReader.readLine()) != null) {
if文を使い、もしも入力した言葉の最後の一文字が、
辞書データの最初の一文字と一致していたら画面に出力しました。
if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ System.out.println("com:"+data); break; } }
まだまだ学んだことがあるのですが、
つづきはその②へ!!
【初心者】【JavaでHigh&Lowゲームをつくってみた】~その②~
前回の続きです。
その①とは、違う方法で書きました。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Random; public class MyHi { static final String REGEX_NUMBER = "^[H,h,L,l]$"; public static void main(String[] args) { //ユーザの入力を取得する為のバッファリーダーを構築する BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int times = 0; //試行回数を記憶するための領域 Random rnd = new Random(); //乱数作成クラス int left = rnd.nextInt(13)+1; while(true){ //あとで数値を作るとイカ様っぽいので先に数値を作る int right = rnd.nextInt(13)+1; System.out.println("今回の数値:"+left); System.out.println(""); String ind = ""; System.out.println("High or Low? H:High,L:Low"); try { //コンソールからユーザーの入力を受け取る ind = br.readLine(); } catch(IOException e){ System.out.println("エラーが発生しました"); return; //例外が発生した場合、処理を終了する } if(!ind.matches(REGEX_NUMBER)){ //HまたLに等しくないとき System.out.println("Please, Hit, H or L"); continue; //入力喚起を促し、処理の先頭に戻る } /* 結果の判定を先に行う*/ boolean bAnswer = false; boolean bHigh = true; //HorLフラグ(trueがHigh, falseがLowとする) boolean bLow = false; //Highが指定された場合 if((ind.charAt(0) == 'H') || (ind.charAt(0) == 'h')){ bHigh = true; if( left<= right){ //右辺が左辺以上の場合 bAnswer = true; //正解とする } } //lowが指定された場合 if((ind.charAt(0) == 'L') || (ind.charAt(0) == 'l')){ bLow = true; if( left>= right){ bAnswer = true; } } if( left == right){ if(bHigh){ System.out.println("結果:"+ left + "<=" + right); } else { System.out.println("結果:"+ left + ">=" + right); } } else if(left<right){ System.out.println("結果:"+ left + "<=" + right); } else { System.out.println("結果:"+ left + ">=" + right); } if(bAnswer){ times++; System.out.println(times + "回目、正解"); }else { System.out.println("不正解 正解した回数は" + times + "回でした"); break; } left = right; System.out.println("******************************************"); } } }
今回初めて知ったこと
static final String REGEX_NUMBER = "^[H,h,L,l]$";
finalを使って、変数(REGEX_NUMBER)を宣言することで、
一度だけしか値を代入できなくなる。。
正規表現を使い、「H,h,L,I」のどれかにマッチしたら
それぞれの処理に移る。
表示画面
今回の数値:1 High or Low? H:High,L:Low h 結果:1<=6 1回目、正解 ****************************************** 今回の数値:6 High or Low? H:High,L:Low h 結果:6>=3 不正解 正解した回数は1回でした
個人的には、その①の方が分かりやすかったです。
(表示画面の見た目的に…)
【初心者】【JavaでHigh&Lowゲームをつくってみた】~その①~
こんばんは。
駆け出しプログラマーのakhです。
最近は、しりとりプログラムでつまっています…
さて、
Javaでトランプゲームの
High&Lowゲームをつくってみました。
以下、概要です。
概ね以下の技術をつかう ・乱数作成処理 ・標準入力の受け付け ・if文、while文の使い方 【ゲームのルール】 1.1~13までの数値を乱数で生成し、その数値を元値とする 2.1~13までの数値を乱数で生成し、その値を比較値とする 3.プレイヤーに元値と比較値のどちらが大きいか解答させる 4.プレイヤーが正解の場合は、正解数を1追加し、 現在の比較値を元値とし、2の処理へ戻る。 プレイヤーが間違えた場合は正解回数を出力しゲームを 終了する。 補足:元値と比較値が同じ値の場合は正解とすること。
以下、コードです。
import java.util.Scanner; public class TranpGame { public static void main(String[] args) { System.out.println("************"); System.out.println("*High & Low*"); System.out.println("************"); System.out.println(""); Scanner sc = new Scanner(System.in); while(true){ int leftCard = (int)(Math.random()*9)+1; int rightCard = (int)(Math.random()*9)+1; System.out.println(" [問題表示] "); System.out.println("***** *****"); System.out.println("* * * * *"); System.out.println("* "+leftCard+" * * * *"); System.out.println("* * * * *"); System.out.println("***** *****"); System.out.println(" High or Low?(h/l)>"); String select = sc.nextLine(); if(select.equals("h")){ System.out.println("→Highを選択しました。"); }else{ System.out.println("→Lowを選択しました。"); } System.out.println(""); System.out.println(" [結果表示] "); System.out.println("***** *****"); System.out.println("* * * * *"); System.out.println("* "+leftCard+" * * "+rightCard+" *"); System.out.println("* * * * *"); System.out.println("***** *****"); String result = null; if(leftCard<rightCard){ result="h"; }else if(leftCard>rightCard){ result="l"; }else{ result = select; } if(select.equals(result)){ System.out.println("→You Win!!!!"); }else{ System.out.println("→You Lose..."); System.out.println("--ゲーム終了--"); break; } } } }
今回は、
・乱数作成の仕方
・whileでループし続ける、break文を使って
処理を終わらせること
を学びました。
表示画面
***** ***** High or Low?(h/l)> h →Highを選択しました。 [結果表示] ***** ***** * * * * * * 3 * * 4 * * * * * * ***** ***** →You Win!!!! [問題表示] ***** ***** * * * * * * 2 * * * * * * * * * ***** ***** High or Low?(h/l)> h →Highを選択しました。 [結果表示] ***** ***** * * * * * * 2 * * 7 * * * * * * ***** ***** →You Win!!!! [問題表示] ***** ***** * * * * * * 4 * * * * * * * * * ***** ***** High or Low?(h/l)> l →Lowを選択しました。 [結果表示] ***** ***** * * * * * * 4 * * 4 * * * * * * ***** ***** →You Win!!!! [問題表示] ***** ***** * * * * * * 5 * * * * * * * * * ***** ***** High or Low?(h/l)>