安野光雅しりとりファンのブログ5
ちょっと筆休めに?ターミナルで遊べるゲームにしてみました。
キーボードから入力された単語が
1 空でないか
2 単語リストに載ってない単語でないか
3 (2ページ以降)しりとりになっているか
4 (15ページなら)ゴールできる単語か
の順にチェックしてそれぞれの処理をJudgementクラスで行います。
「じどうしゃ」の小さい「ゃ」を大きい「や」に直すため、ゃゅょ判定を入れてます。
(前回までは横着のため、最初から「じどうしや」としてリストに載せていました。)
import java.io.*;
class Gamesiritori{
public static void main(String[] args){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Judgement judge=new Judgement();
int t=0;
int n=0;
while(n<judge.word.length){
judge.print1(n);
judge.jud=0;
String ans=in.readLine();
int len=ans.length();
if(len==0) judge.print4();//入力なしの場合
else if(judge.search(n,ans)!=0){
judge.print3();//リストにない単語の場合
}
else if(t==0){
judge.print5();//最初のみ実行
judge.putin(t,ans);
n++;
t++;
}
else if(judge.comp(ans)!=0){
judge.print2();//次の単語とつながらない場合
}
else if(n==judge.word.length-2){//ゴールできるか判定
judge.putin(t,ans);
if(judge.goal()!=0){
judge.print1(judge.word.length-1);
judge.print6();//最初に戻る場合
n=0;
t++;
}
else{
judge.print5();//ゴールにすすむ場合
judge.putin(t,ans);
n++;
t++;
}
}
else{
judge.print5();//つぎにすすむ場合
judge.putin(t,ans);
n++;
t++;
}
}
System.out.println("ゴール!おめでとう");
int i=0;
while(judge.result[i]!=null){
System.out.print(judge.result[i]+"→");
i++;
}
}catch(Exception ie){
System.out.println("エラーです");
}
}
}
class Judgement{
String[][]word={
{"さる","きびだんご","くま","しるこ","こあら","すもも","そば","ごま","せなか","あさひ","うし","えんどうまめ","いわし","おに","けんびきょう","かれーらいす"},
{"かじか","るーれっと","ばすけっと","すし","にんにく","めがね","ものほしざお","ごぼう","ます","らむね","しか","ひしもち","うみがめ","こなや"},
{"すもう","かけす","やじろべえ","くつ","おかめ","とうがらし","かめ","ねじりあめ","ちからこぶ","とけい","からす","ねずみ","うめ","しじみ","めぐすり"},
{"しんでれら","いぬ","うきわ","りんごのき","めんたいこ","めがね","つるはし","ぶるどっぐ","めかくし","すずめ","みつば","えんま","するめ","めざし","みそ"},
{"ばす","そば","ぐらんぷり","しらうお","まらかす","らっぱ","こだいこ","ねこ","しまうま","めだか","きうい","しらさぎ","わまわし","ぬすびとはぎ"},
{"しろ","こめ","いなほ","こま","ぎょうじ","すもう","ばんぺい","かっぱ","りんご","おっとせい","かいこ","まき","すいか","ぎんぱい","ぱんけーき"},
{"じんちょうげ","いど","ほね","いか","めざし","きもの","ぱんだ","ごりら","ろうそく","いも","かずのこ","きのこ","うぐいす","まさかり","こたつ","かっぱのこ"},
{"くびわ","すべりだい","つき","だんご","こんぶ","もも","のこぎり","げた","りす","かぶと","らっきょう","ねぎ","こうもりがさ","しま","どうだんつつじ"},
{"わかめ","たいこ","さい","じしゃく","ぶーつ","とかげ","ぎんか","きのこ","うま","すずめ","まんねんひつ","もみじ","りんどう","ごま","いしがき"},
{"かに","じどうしゃ","めいろ","こがたな","つくえ","つきみそう","こすもす","げた","まんとひひ","めじろ","きじ","くつ","まんと","いけ","うずら"},
{"ひこうき","らっぱ","にじ","じんべい","えもんかけ","すのこ","けむし","ろば","うき","とき","たいこ","やし","ろうそく","つきみ","なす"},
{"いす","す","こぶ","しない","くつべら","こもり","ばけつ","きんこ","きつつき","けいと","じしゃく","みつばち","ぱーま","きつね","しらぎく"},
{"くものす","こおろぎ","きんのしゃちほこ","りす","ちえのわ","すべりひゆ","ぶらんこ","ねこ","とうもろこし","いんき","つぼ","らくご","まつ","すいか","くじら"},
{"ゆうれい","すみ","わさび","すいか","ぼんぼり","かたばみ","こいし","こども","らくだ","ぎんこう","ごみばこ","つきみそう","こまつな","しい","きんもくせい"},
{"しめなわ","かものはし","うみう","みそさざい","うめぼし","だいがく","いのこづち","うずら","こおり","ももたろう","なきむし","みちしるべ","びわ","いわ","りんご","いも"},
{"りぼん","らん","ちょうちん","もん","べーこん","わん"}
};
void print1(int a){
for(int i=0;i<word[a].length;i++) System.out.print(word[a][i]+"/");
System.out.println();
}
void print2(){
System.out.println("▲しりとりになってないよ");
}
void print3(){
System.out.println("▲のってないことばだよ");
}
void print4(){
System.out.println("▲にゅうりょくしてね");
}
void print5(){
System.out.println("つぎにすすむよ");
}
void print6(){
System.out.println("▲ゴールできないよ");
System.out.println("さいしょから "+bottom);
}
int search(int n,String st){
int k=word[n].length;
int flag=0;
for(int i=0;i<k;i++){
String word2=word[n][i];
flag=word2.compareTo(st);
if(flag==0) break;
}
return flag;
}
String bottom;
String[]result=new String[100];
void putin(int t,String st){
int len=st.length();
bottom=st.substring(len-1,len);
result[t]=st;
String ya="ゃ";
String yu="ゅ";
String yo="ょ";
int small;
small=bottom.compareTo(ya);
if(small==0) bottom="や";
small=bottom.compareTo(yu);
if(small==0) bottom="ゆ";
small=bottom.compareTo(yo);
if(small==0) bottom="よ";
System.out.println(bottom);
}
int jud;
int comp(String st){
jud=bottom.compareTo(st.substring(0,1));
return jud;
}
int goal(){
int g=0;
for(int i=0;i<6;i++){
String st=word[15][i];
g=bottom.compareTo(st.substring(0,1));
if(g==0) break;
}
return g;
}
}
実行結果です。
ひらがなしか受け付けないので入力が少し面倒です。
でも作ったものが動くと嬉しいですね!!
さる/きびだんご/くま/しるこ/こあら/すもも/そば/ごま/せなか/あさひ/うし/えんどうまめ/いわし/おに/けんびきょう/かれーらいす/
▲にゅうりょくしてね
さる/きびだんご/くま/しるこ/こあら/すもも/そば/ごま/せなか/あさひ/うし/えんどうまめ/いわし/おに/けんびきょう/かれーらいす/
かわうそ
▲のってないことばだよ
さる/きびだんご/くま/しるこ/こあら/すもも/そば/ごま/せなか/あさひ/うし/えんどうまめ/いわし/おに/けんびきょう/かれーらいす/
さる
つぎにすすむよ
る
かじか/るーれっと/ばすけっと/すし/にんにく/めがね/ものほしざお/ごぼう/ます/らむね/しか/ひしもち/うみがめ/こなや/
るーれっと
つぎにすすむよ
と
すもう/かけす/やじろべえ/くつ/おかめ/とうがらし/かめ/ねじりあめ/ちからこぶ/とけい/からす/ねずみ/うめ/しじみ/めぐすり/
とうがらし
つぎにすすむよ
し
しんでれら/いぬ/うきわ/りんごのき/めんたいこ/めがね/つるはし/ぶるどっぐ/めかくし/すずめ/みつば/えんま/するめ/めざし/みそ/
しんでれら
つぎにすすむよ
ら
ばす/そば/ぐらんぷり/しらうお/まらかす/らっぱ/こだいこ/ねこ/しまうま/めだか/きうい/しらさぎ/わまわし/ぬすびとはぎ/
らっぱ
つぎにすすむよ
ぱ
しろ/こめ/いなほ/こま/ぎょうじ/すもう/ばんぺい/かっぱ/りんご/おっとせい/かいこ/まき/すいか/ぎんぱい/ぱんけーき/
ぱんけーき
つぎにすすむよ
き
じんちょうげ/いど/ほね/いか/めざし/きもの/ぱんだ/ごりら/ろうそく/いも/かずのこ/きのこ/うぐいす/まさかり/こたつ/かっぱのこ/
きもの
つぎにすすむよ
の
くびわ/すべりだい/つき/だんご/こんぶ/もも/のこぎり/げた/りす/かぶと/らっきょう/ねぎ/こうもりがさ/しま/どうだんつつじ/
のこぎり
つぎにすすむよ
り
わかめ/たいこ/さい/じしゃく/ぶーつ/とかげ/ぎんか/きのこ/うま/すずめ/まんねんひつ/もみじ/りんどう/ごま/いしがき/
りんどう
つぎにすすむよ
う
かに/じどうしゃ/めいろ/こがたな/つくえ/つきみそう/こすもす/げた/まんとひひ/めじろ/きじ/くつ/まんと/いけ/うずら/
うずら
つぎにすすむよ
ら
ひこうき/らっぱ/にじ/じんべい/えもんかけ/すのこ/けむし/ろば/うき/とき/たいこ/やし/ろうそく/つきみ/なす/
らっぱ
つぎにすすむよ
ぱ
いす/す/こぶ/しない/くつべら/こもり/ばけつ/きんこ/きつつき/けいと/じしゃく/みつばち/ぱーま/きつね/しらぎく/
ぱーま
つぎにすすむよ
ま
くものす/こおろぎ/きんのしゃちほこ/りす/ちえのわ/すべりひゆ/ぶらんこ/ねこ/とうもろこし/いんき/つぼ/らくご/まつ/すいか/くじら/
まつ
つぎにすすむよ
つ
ゆうれい/すみ/わさび/すいか/ぼんぼり/かたばみ/こいし/こども/らくだ/ぎんこう/ごみばこ/つきみそう/こまつな/しい/きんもくせい/
つきみそう
つぎにすすむよ
う
しめなわ/かものはし/うみう/みそさざい/うめぼし/だいがく/いのこづち/うずら/こおり/ももたろう/なきむし/みちしるべ/びわ/いわ/りんご/いも/
うめぼし
し
りぼん/らん/ちょうちん/もん/べーこん/わん/
▲ゴールできないよ
さいしょから し
さる/きびだんご/くま/しるこ/こあら/すもも/そば/ごま/せなか/あさひ/うし/えんどうまめ/いわし/おに/けんびきょう/かれーらいす/
しるこ
つぎにすすむよ
こ
かじか/るーれっと/ばすけっと/すし/にんにく/めがね/ものほしざお/ごぼう/ます/らむね/しか/ひしもち/うみがめ/こなや/
こなや
つぎにすすむよ
や
すもう/かけす/やじろべえ/くつ/おかめ/とうがらし/かめ/ねじりあめ/ちからこぶ/とけい/からす/ねずみ/うめ/しじみ/めぐすり/
やじろべえ
つぎにすすむよ
え
しんでれら/いぬ/うきわ/りんごのき/めんたいこ/めがね/つるはし/ぶるどっぐ/めかくし/すずめ/みつば/えんま/するめ/めざし/みそ/
えんま
つぎにすすむよ
ま
ばす/そば/ぐらんぷり/しらうお/まらかす/らっぱ/こだいこ/ねこ/しまうま/めだか/きうい/しらさぎ/わまわし/ぬすびとはぎ/
まらかす
つぎにすすむよ
す
しろ/こめ/いなほ/こま/ぎょうじ/すもう/ばんぺい/かっぱ/りんご/おっとせい/かいこ/まき/すいか/ぎんぱい/ぱんけーき/
すいか
つぎにすすむよ
か
じんちょうげ/いど/ほね/いか/めざし/きもの/ぱんだ/ごりら/ろうそく/いも/かずのこ/きのこ/うぐいす/まさかり/こたつ/かっぱのこ/
かずのこ
つぎにすすむよ
こ
くびわ/すべりだい/つき/だんご/こんぶ/もも/のこぎり/げた/りす/かぶと/らっきょう/ねぎ/こうもりがさ/しま/どうだんつつじ/
こんぶ
つぎにすすむよ
ぶ
わかめ/たいこ/さい/じしゃく/ぶーつ/とかげ/ぎんか/きのこ/うま/すずめ/まんねんひつ/もみじ/りんどう/ごま/いしがき/
ぶーつ
つぎにすすむよ
つ
かに/じどうしゃ/めいろ/こがたな/つくえ/つきみそう/こすもす/げた/まんとひひ/めじろ/きじ/くつ/まんと/いけ/うずら/
つくえ
つぎにすすむよ
え
ひこうき/らっぱ/にじ/じんべい/えもんかけ/すのこ/けむし/ろば/うき/とき/たいこ/やし/ろうそく/つきみ/なす/
えもんかけ
つぎにすすむよ
け
いす/す/こぶ/しない/くつべら/こもり/ばけつ/きんこ/きつつき/けいと/じしゃく/みつばち/ぱーま/きつね/しらぎく/
けいと
つぎにすすむよ
と
くものす/こおろぎ/きんのしゃちほこ/りす/ちえのわ/すべりひゆ/ぶらんこ/ねこ/とうもろこし/いんき/つぼ/らくご/まつ/すいか/くじら/
とうもろこし
つぎにすすむよ
し
ゆうれい/すみ/わさび/すいか/ぼんぼり/かたばみ/こいし/こども/らくだ/ぎんこう/ごみばこ/つきみそう/こまつな/しい/きんもくせい/
しい
つぎにすすむよ
い
しめなわ/かものはし/うみう/みそさざい/うめぼし/だいがく/いのこづち/うずら/こおり/ももたろう/なきむし/みちしるべ/びわ/いわ/りんご/いも/
いのこづち
ち
つぎにすすむよ
ち
りぼん/らん/ちょうちん/もん/べーこん/わん/
ちょうちん
つぎにすすむよ
ん
ゴール!おめでとう
さる→るーれっと→とうがらし→しんでれら→らっぱ→ぱんけーき→きもの→のこぎり→りんどう→うずら→らっぱ→ぱーま→まつ→つきみそう→うめぼし→しるこ→こなや→やじろべえ→えんま→まらかす→すいか→かずのこ→こんぶ→ぶーつ→つくえ→えもんかけ→けいと→とうもろこし→しい→いのこづち→ちょうちん→%