このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

TypeScriptでStateMachine

AI・Bot・algorithm

2021.05.16

この記事は最終更新日から1年以上が経過しています。

どもです。

最近は、立場も変わりコーディングする機会もめっきり減っちゃってりして、プライベートでもGolang、Rust、C++、Dart,アセンブリ、etc..と、所謂フロントエンドの言語を触る機会も減って来ている今日このごろでありまして、久々TypeScriptを書こうとしたら「あれ、どう書くんだっけ」状態になっちゃたりする訳なんですよ。(そこまでないが)

という事で、今回は、こちらのゲームAIの書籍から(ちょっと古めですが)抜粋しC++の言語からTypeScriptに変換しつつ、コンソールログやコメントをすべて日本語化してみました。といったものです。

 

実例で学ぶゲームAIプログラミング

 

ソースに関しては、すべてGitHubにアップしております。

WestWorld project

題2章はStateMachineと言うことなんですが、3部構成になっております。

まず最初はシンプルなFSM(Finite State Machine 有限状態機械)で、登場人物も一人となっております。

 

StateMachineクラスもない状態のFSMで、ボブの状態が変化していきます。

 

GitHub

https://github.com/webcyou-org/FSM-ts-west-world

WestWorld With Woman project

続いて、主役のボブの奥さんエルザも登場し2人構成のStateMachineとなっております。

 

奥さんの行動(状態)もランダムに変化し、2人の状態それぞれ変化していきます。

 

 

GitHub

https://github.com/webcyou-org/FSM-ts-west-world-with-woman

WestWorld With Message project

最後はボブと奥さんのStateMachineに加え、2人間のメッセージパッシングが含まれたプログラムとなっております。

Telegramクラスも登場し、UML状態クラス図も複雑となってきます。

 

2人の状態がそれぞれ変化していくのに加え、お互いメッセージを送信し、受信したら状態が変化するプログラムとなっています。

 

GitHub

https://github.com/webcyou-org/FSM-ts-west-world-with-messaging

すべて、

$ node ./dist/index.js

でプログラム実行となっております。

という訳で、プログラム言語を覚える際にも、存在するプログラムを別言語で書き直すのもありかもしれないですね。

 

ではではぁ。

Comment

Related Article

TypeScriptでStateMachine

2021.05.16

パックマン 解析プログラム動画から見る 追跡アルゴリズム

2020.09.23

5分で覚えるAI Minimax(ミニマックス)法とalpha-beta法

2016.05.14

JavaScriptでユークリッド距離とピアソン相関係数

2016.05.03

LINE BOT API Trial で WordPress + LINE BOT の Web帳BOT を作ってみました。

2016.04.30

CATEGORY LIST

LATEST NEWS

FLEXISPOT E3で作るスタンディング PCデスク

イベント

2022.09.18

NordVPNを使ってみた感想は?評判や口コミを徹底的に解説

tool

2022.07.26

Ubuntu 20.04 LTS サーバ構築 - DKIM、DMARCを設定する

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - Postfix Let’s EncryptでTLS化

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - Postfix SASL認証

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - Dovecotインストール

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - Postfixインストール

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - Let’s EncryptでSSL/TLS化

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 – Nginxインストール

ubuntu

2022.05.01

Ubuntu 20.04 LTS サーバ構築 - 初期セットアップ

ubuntu

2022.05.01

誰でも簡単に「ホームページ制作」が行える。というWix のサービスが進化しているという事で、あれから久しぶりに触ってみた!

tool

2022.04.12

Geth (Go Ethereum)でリクエスト送信「Invalid host specified」エラー対処

暗号通貨、ブロックチェーン

2022.03.06

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US