2025-04-22
2025年誕生の構造化プログラミング言語「Wirth(ヴィルト)」を、神山まるごと高専ITブートキャンプ2025ウェブアプリ講座で使い、課題にしたところ誕生した、神山まるごと高専雑学クイズ!


「神山まるごと高専雑学クイズ」
src on ES-Jam
10問出題されます。何問当てられる!?

課題として提出されたコードは、繰り返しを使わず、条件分岐のif文と変数のみで作られていましたが、繰り返しを使った方法の質問があったので、改良したものが上記です。


「順次繰り返し文 - Wirth」

Wirthにおける繰り返しは、変数で数える順次繰り返し、前条件繰り返し、後条件繰り返しの3パターン。今回は、順次繰り返しのfor文を使って実装しています。

<script type="module" src="https://code4fukui.github.io/Wirth/web.js"></script> <script type="text/wirth"> function bg, show from "https://js.sabae.cc/egadv.js" quiz <- [ ["神山まるごと高専の食堂の名前は「丸ごと食堂」である", "NO"], ["神山まるごと高専の校長である五十棲さんは「いそぷり」と呼ぶことを認めている", "NO"], ["神山まるごと高専がある「神領」の読み方は「じんりょう」である", "YES"], ["神山まるごと高専の事務局長は松坂さんである", "YES"], ["神山まるごと高専にはまだ4,5年生用の寮がない", "YES"], ["神山まるごと高専は他の高専と同じように男女比が4:1である", "NO"], ["神山まるごと高専の寮には大浴場がある", "NO"], ["神山まるごと高専の奨学金は株の運用益を使っている", "YES"], ["神山まるごと高専に入るとChatGPTの有料版が使える", "YES"], ["神山まるごと高専には部活がある", "NO"], ] b <- 0 for i <- 0 to quiz.length - 1 bg() a <- show((i + 1) + ". " + quiz[i][0], "YES", "NO") s <- "次の問題へ進む" if i = quiz.length - 1 s <- "結果発表へ進む" endif if a = quiz[i][1] show("正解!!おめでとう!!", s) b <- b + 1 else show("残念...", s) endif next bg(1968) show("結果は...") show(b + "問正解でした!!") </script>

(RUN on ES-Jam)
下記のポイントを踏まえてプログラムを読んでみましょう。 - 配列が0から始まること
- 配列の中に配列を入れられること
- 配列変数の後ろに「.length」を付けることで長さが分かること

ただ、繰り返しを使わず作っても全然OK!
面倒だなっと感じた時に便利にする方法があるってことだけ押さえておきましょう。

2025-04-21
モスバーガーのXでうれしいポスト!なんと、STL特別公開!
STLとは、Standard Triangle Language(標準三角形言語)の略で、3D空間の基本、三角ポリゴンをデータ化したもの。以前作った、STLビューワを元に表示と印刷を試みました。


公開されたデータは無料の3Dモデリングツール、Blenderで読めます。表示用にデシメートを使ってポリゴン数をぐっと削減。


「vr-burger」
src on GitHub
STLには色データがついていないので、それぞれに色を設定し、MeshToonMaterialを使って、アニメ風に表示!

const models = [ { name: "buns01_m.stl", color: [234, 183, 76], }, { name: "patty_m.stl", color: [120, 46, 27], }, { name: "tomato_m.stl", color: [182, 24, 34], }, { name: "lettuce_m.stl", color: [120, 182, 116], }, { name: "buns02_m.stl", color: [234, 183, 76], }, ];

色は、RGBでこのように設定しました。


3Dプリンターでの印刷。そのままだと20cmくらいあってBambu Lab A1 Miniでは収まらないので、33%に縮小。


PLAでサポート付きで印刷した結果、剥がすのが大変でレタスは諦めた半完成の様子。
半分に切って、サポートなし印刷&接着か、剥がれやすいサポートの研究が必要そう。

Xにはいろんな作例がたくさん!
企業によるオープンデータ活用的なマーケティングの成功例として紹介していきたいと思います。

links
- 驚くほどシンプルなフォーマット、3Dプリンター用データSTLの読み書きツールで任意サイズの箱作り
- STLビューワー、ドロップされたSTLデータの大きさを正規化してシンプルに表示するウェブアプリ

2025-04-20
OpenAIのAPIの価格表を見ていたら、無料のAPIを発見!

「Moderation - Pricing - OpenAI API」

gpt-4.1だと、1Mトークンあたり2ドルなど値付けが並ぶところ、モデレーションAPIはFree!


テキストから有害かどうか判定する「 Moderation API」は、どう有害なのか分野別の有害度合いの数値が返してくれます。(画像の判定は今は対応していない様子)


「code4fukui/openai-moderation」

Denoで使える関数と呼び出し方法をGitHubにまとめたので、ご活用ください!
OpenAIのAPIキーを取得して設定すれば、下記コードですぐ使えます。

import { fetchModeration } from "https://code4fukui.github.io/openai-moderation/fetchModeration.js"; console.log(await fetchModeration("元気?")); ESモジュール(JavaScriptモジュール)、便利ですね!
Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS