![見出し画像](https://assets.st-note.com/production/uploads/images/146856486/rectangle_large_type_2_14b4d5a63fc6d839107dcb51bda9fff0.png?width=1200)
JavaScript+html+Canvas でゲーム作成(麻雀作ってみた)
「JavaScript+html+Canvas でゲーム作成」で培った技術でこんなものも作れますよという一例です。
ちなみに「閑話休題」ではシューティングゲームも公開しています。
今回作ったのは、コンピュータ相手の二人対戦麻雀。
AIにはほど遠いコンピュータを相手にしています。
私のAIのイメージとしては前提として学習能力があると思っているのですが、このゲームの対戦相手には学習能力がありません。
将来的にはそこまでできたらいいなとは思っています。
麻雀ゲームのURLは以下
麻雀のベースは、昔私がZ80アセンブラで作成した麻雀エンジン。
今回は、アセンブラからJavaScriptに移植しているのですが、移植しにくいところは作り直しています。
表示部分はCanvasとなるので表示は全部作り直しています。
外部画像ファイルは使わず、「ドットアニメーション」で使った方法を使用しています。
それでもプログラムサイズが大きくなったのでプログラムソースをファイル分割、公開時には簡易難読化しています。
JavaScriptのライブラリは使用していません。
この麻雀はパソコンのブラウザで動かすことを想定して作っています。
なので入力は、マウスクリック、または、キーボード操作がメイン。
Canvasの左上を画面上に表示させないとマウスクリックが失敗します。
一応ジョイパッドでも操作可能のはず。
麻雀の基本的なルールは組み込んだはずですが地方ルールは把握しきれないので、あれはあるけどこれは無いというものがあるかと思いますがそこは大目に。
これで完成というわけでもなく、まだまだ成長中のシロモノです。
なにしろ、気が向いたときにひとりでだらだら作成してるので不具合も多々残っていると思います。
おまけ:
この「麻雀作ってみた」では、アセンブラからJavaScriptへの移植をしています。
アセンブラって何っていうのは検索すれば出てくるかと思いますが、いわゆるプログラム言語です。
今やメインで使っている人はかなり少ないのではないかと思います。
すでに、「おすすめのプログラム言語」や「習得したいプログラム言語」には出てきません・・・
使用するCPUによってレジスタや文法が変わったりしてめんどくさいのは事実です。
組込系では習得しておくとデバッグする時、リセット時の解析や最適化などで重宝しますよ!(と言ってみる)
記:2024.07.10 sanbunnoichi
この記事が気に入ったらサポートをしてみませんか?