Portfolios

2022年3月8日更新

Github Twitter Qiita LinkedIn

img
Task Management App

ユーザーが設定した目標を管理するWebAppです。目標に対してタスクを設定し、進捗を管理します。 目標・タスクは、こちらようにシェアすることができ、ログインすれば他の人の目標・タスクを取り入れることができます。 VPSを借りて、WebサーバーとDBサーバーを分離して構築しました。

img
Tree Visualizer

二分木と連結リストを動的に可視化するオープンソースのJavaScriptライブラリーです。 Recursionで使用していただいています。

img
ポーカー、ブラックジャック

初めてMVCを学んだアウトプットとして、ブラックジャックとポーカーのどちらも遊べるソフトウェアを開発しました。 ポーカーをより楽しんでもらうため、 NPC が自動で最適な役を揃えられるように簡易的なモンテカルロ法を実装しました。 具体的には、NPCのカード交換前に、別セットのカードからランダムでカードを複数回引き、役のそれぞれの確立の逆数を役の点数とし、その点数が一番多くなるカードを交換するようにしました。 また、call、 rise、 dropのような基本的な操作が可能で、掛け金をかけて楽しめます。

img
CLI

ディレクトリの階層構造を作り、pwd、mkdir、cd 等のコマンドを文字列として受け取り、 操作が可能です。ほかにも、ユーザーをつくる、パスワードを設定する、ディレクトリのパーミッションの設定が可能です。特に、画像のようなtreeコマンドはより本物のコマンドラインに近づけました。

img
Clicker Empire Game

クッキークリッカーのようなインクリメンタルゲームです。Recursionの課題の一環で作成しました。 フロントデザインはRecursionから提供されたものを参考にしましたが、ゲームロジックなどコードはすべてオリジナルです。

img
Distributed System Gamer(作成中)

分散システムを構築して、SNS サービスを運営する会社を大きくするインクリメンタルゲームです。Web サーバーは Round Robin等の分散方式を選択でき、DB サーバーは MasterSlave 方式を活かし、高可用性を持つシステムを維持しながら、ユーザー数を増やしていくゲームです。 添付画像のように、WebサーバーやDBサーバーの負荷状況を見つつ、サーバーをメンテナンスしながら、サービスを落とすことなくユーザー数を増やしていくため、未経験者には事前に経験することが難しい分散システムの基本的な考え方を身に着けられます。

img
分子シミュレーション

大学院では計算化学系の研究を行っていました。 画像のような分子シミュレーションを行う上で、計算に必要な原子固有のパラメータを、遺伝的アルゴリズムという最適化手法を用いて推定していました。 コードはFortran、並列化計算にOpenMPを使用して計算しました。

img
恐竜ゲーム自動操作(物理的)

光センサーで障害物を検知し、サーボモーターでキーボードを物理的に操作しています。 Arduinoを使って作成しました。 一時期Twitterで他の方が作成されていたのを見て、作ってみたく挑戦しました。