ズン・ズン・ズン・ドコ、キヨシ! を作ってみた

 

Twitterでバズっていた Javaの講義、試験が「自作関数を作り記述しなさい」って問題だったから
「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力した後終了って関数作ったら満点で単位貰ってた
 というの僕もやってみました。言語はjsです。大分お粗末な、処理だと思っています。

実装

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

</head>

<body>

<script language="JavaScript">

//ズンかドコを入れていく空っぽの配列
var array_result = [];

//配列の合否を比較するための配列
var zun_zun_array = ["ズン", "ズン", "ズン", "ドコ"];

//無限のループ
for(;;) {

//0から
var min = 0 ;

//1までの
var max = 1 ;

//乱数を乱数をランダムで生成
var random = Math.floor( Math.random() * (max + 1 - min) ) + min ;

//どちらかがランダムで取り出される為の配列
var array_zun = ["ズン", "ドコ"];

//乱数で割り出した番号の配列の値を空の配列にアップエンド
array_result.unshift(array_zun[random]);

//配列の数が三つ以上になったらTRUEのif文
if(array_result.length > 4){

//配列を空っぽに初期化
array_result = []

}

//判定用の配列と、生成された配列を比較
if( array_result.toString() == zun_zun_array.toString()){

console.log(array_result);
console.log("キ・ヨ・シ!")

//生成された配列の中身が["ズン", "ズン", "ズン", "ドコ"]だった時点で無限ループ終了
break;

}else{

//console.log(array_result);
//console.log("不正解")

}
}

</script>

</body>

</html>

振り返り

if(array_result.length > 4){
    array_result = []
}

の部分がよくないと思った。配列を初期化したら、余分にまたループしてしまう。一番お尻を押し出すような処理にすれば、よりループ回数を減らして実行できると思った。それから、配列の中身がドコが1つ以上入っていたら、ドコを決してズンを入れるとかにすればもっと早くなるかも。また、 var zun_zun_array = ["ズン", "ズン", "ズン", "ドコ"] みたいな感じで、安宅じめ配列を定義しておくのは、かっこうよくないような気がする。ループの中で、ズンが三つ、ドンが一つ揃ったら、ズンを一番前にするとして、その状態をtrueにすれば、あらかじめ var zun_zun_array = ["ズン", "ズン", "ズン", "ドコ"] を定義しなくて済むかな

実行

スクリーンショット 2017-10-17 1.44.26.png

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事