1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JavaScript/初学者向け】打倒!ズンドコキヨシ(前半戦)

Last updated at Posted at 2020-09-26

こんにちは!どいこです。

初Qiita投稿です。

現在JavaScript絶賛勉強中のため
「fizzBuzz問題」をクリア後、「ズンドコキヨシ問題」にも手を出してみました。

(参考)フィズバズ問題 (FizzBuzz問題)とは

まさに今、キヨシと戦いながら書いています。

#ズンドコキヨシとは

「ズン」「ドコ」のいずれかをランダムで出力し続けて
「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら
「キ・ヨ・シ!」って出力した後終了する

#手順その①
###「ズン」「ドコ」のいずれかをランダムで出力し続ける

・ 「ズン」と「ドコ」を配列(wordList)にする

const wordList = ['ズン','ドコ']

・ 配列(wordList)のインデックス([0] or [1])をランダムで出現させる
  ランダムな値はMath.floor()Math.random()を使って作る

wordList[Math.floor(Math.random() * wordList.length)]
//wordList[0]('ズン') またはwordList[1]('ドコ')

・ 出力する値は「ズン」「ズン」「ズン」「ズン」「ドコ」なので
  要素数が5個の配列を用意

const elementsLength = 5
const randomOutput = [...Array(elementsLength)]
// [undefined, undefined, undefined, undefined, undefined] (未定義の要素×5の配列ができる)

・ この配列に先ほどのランダムな値(`wordList`の`[0]` or `[1]`)   =すなわち「ズン」or「ドコ」を代入する
randomOutput[0] = wordList[Math.floor(Math.random() * wordList.length)]

・ 要素数5個の配列にしたいので、for文の繰り返しで入れていく

for (let i = 0; i < randomOutput.length; i++) {
  randomOutput[i] = wordList[Math.floor(Math.random() * wordList.length)]
}
// randomOutputのインデックス0~4それぞれについて
// ランダムな値(「ズン」or「ドコ」)を代入

・ ここでいったん出力

console.log(randomOutput)
// [ 'ズン', 'ドコ', 'ドコ', 'ズン', 'ズン' ]

問題なくランダムな値が出力されるようになりました。

よし。あとはこのランダムな配列をforループで出力して、
「ズン」「ズン」「ズン」「ズン」「ドコ」って出た時に
「キ・ヨ・シ!」と叫んであげたらええんや!:blush:

と、この時の私は簡単に考えていた・・・。

##次回、「城之内死す」 次回予告

目の前に立ちはだかるキヨシの灰色の牙城!!

ここはなんとかして「キ・ヨ・シ!」と叫ぶ機会を得たい!

さあ、スタンドのパワーを全開だッ!!:revolving_hearts:

次回・後半戦はこちらから

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?