ズン・ズン・ズン・ドコ、キヨシ! を作ってみた
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おすすめ記事
);
//配列の数が三つ以上になったら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 = ["ズン", "ズン", "ズン", "ドコ"]
を定義しなくて済むかな