知識のアップデートは時々必要。わたしの好きなプログラミング言語JavaScriptも常に進化しているので、新しい部分を勉強していたら千と千尋の神隠しに出てくる湯婆婆が色々なプログラミング言語で実装(プログラムで実現)されていることを知った。

【毎日自動更新】湯婆婆 LGTMランキング! - Qiita
この記事は @Nemesis さんのJavaで湯婆婆を実装してみるよりはじまった「湯婆婆」関連記事のリンク集です"title:湯婆婆 OR tag:湯婆婆"で検索していますLGTM数順に並べてい…
すでにJavaScriptでも実装されているが、わたしも自分なりに作ってみた。
処理はいたって簡単。
1.名前を入力する
2.新しい名前を湯婆婆が決定する(ランダムで1文字抽出)
3.湯婆婆が新しい名前を告げる
一応、わたしなりのエラー対策として名前を入力しないで記すボタンを押したときは、勝手に1文字の名前(虚・空・無 の中から適当に選択)をつけるようにした。
ソースコード
yubaba.html
5 | < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > |
15 | let btnChihiro, yubabaResult; |
17 | document.addEventListener("DOMContentLoaded", function(){ |
19 | btnChihiro = document.getElementById("btnChihiro"); |
20 | yubabaResult = document.getElementById("yubabaResult"); |
23 | btnChihiro.addEventListener("click", function(){ |
25 | let myname = document.getElementById("myname").value; |
29 | if(myname === ""){ // 入力なし |
30 | let choice = (v) => v[Math.floor(Math.random() * v.length)]; |
31 | myname = choice(["虚", "空", "無"]); |
33 | yubaba += `フン。名無しってかい。じゃあいいよ。< br >`; |
36 | yubaba += `フン。< strong >${myname}</ strong >というのかい。贅沢な名だねぇ。< br >`; |
40 | let new_name = myname.charAt(Math.floor(Math.random() * myname.length)); |
41 | new_name = "< strong >" + new_name + "</ strong >"; |
44 | yubaba += `今からお前の名前は${new_name}だ。いいかい、${new_name}だよ。< br >`; |
45 | yubaba += `分かったら返事をするんだ、${new_name}!`; |
47 | yubabaResult.innerHTML = yubaba; |
55 | < p >契約書だよ。そこに名前を書きな。</ p > |
56 | < input type = "text" size = "10" id = "myname" >< button id = "btnChihiro" >記す</ button > |
57 | < p id = "yubabaResult" ></ p > |
コメント