見出し画像

なでしこさんで元素記号?スロット

今週も、結局アレを書くための作業ができなかった。
頭ついてない。
にゃーん。

というわけで、雑プログラムで繋ぎます。

今回やったこと

なでしこで「元素記号?スロット」を作った。

「英大文字1個」と「英小文字1個、または空文字列」をそれぞれランダムに選び、繋げて表示する。
存在する元素記号になっていればラッキー!?

プログラム

元素記号?スロット (プログラム貯蔵庫)

ポイント

画面を用意する

DOM親要素の「行揃え」に「中央」をDOMスタイル設定。
スロット欄は空のラベル作成。
それの「文字サイズ」に「500%」をDOMスタイル設定。
改行作成。
リトライボタンは「次!」のボタン作成。

選択結果を表示するラベルと、再選択を行うためのボタンを用意する。

選択する候補を用意する

大文字配列は空配列。
文字でASC("A")からASC("Z")まで繰り返す
  大文字配列にCHR(文字)を配列追加。
ここまで。
大文字リストは大文字配列を配列只結合。
大文字リストを小文字変換。
小文字リストはそれと「 」を連結。

「A」以上「Z」以下の文字コードの文字を並べ、それらを結合することで1文字目の候補リストを作成する。
それを小文字に変換し、さらに空文字列を表す空白を連結することで、2文字目の候補リストを作成する。

ランダム選択を行う関数を用意する

●(Sから)ランダム文字抽出とは
  1から(Sの文字数)までの乱数範囲。
  Sでそれから1文字抜き出して戻す。
ここまで。

文字列から、ランダムな1文字を取り出して返す。
乱数範囲」で取り出す位置を選び、「文字抜出」で実際に抜き出す。
なでしこでは、配列は 0-origin だが、文字列は 1-origin であることに注意する。

●スロットとは
  定数の一文字目は大文字リストからランダム文字抽出。
  定数の二文字目は小文字リストからランダム文字抽出。
  一文字目と二文字目を連結してトリム。
  スロット欄にそれをテキスト設定。
ここまで。

用意した「ランダム文字抽出」で1文字目と2文字目をそれぞれ選び、結合する。
さらに、「トリム」で空白を削除することで、「空文字列を表す空白」を実際の空文字列に変換する。
結果をラベルで表示する。

ランダム選択を行う

スロット。
{関数}スロットでリトライボタンをクリックした時。

起動時、および再選択ボタンが押された時、選択処理を実行する。

おわりに

なでしこで、「英大文字1字」と「英小文字1字、または空文字列」をランダムに選び、繋げて表示することができた。
今回は、面倒なので、選択結果が元素記号になっているかの判定は行わない。

いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
なでしこさんで元素記号?スロット|みけCAT
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1