Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

人工知能 TensolFlowのインストール

以下のサイトを参考にして実行しています。

Installing TensorFlow on Mac OS X  |  TensorFlow

MacOsXへのインストール方法になります。
①-1ターミナルを立ち上げて以下のコマンドで「pipコマンド」をインストール
Pythonのインストールです。
>sudo easy_install pipf:id:Takunoji:20170422214940p:plain

①-2 virtualenvのインストール
>
sudo pip install --upgrade virtualenv

f:id:Takunoji:20170422215021p:plain

 

②virtualenvの作成(指定のフォーマットで。。。詳細は分かりませんでした。)
>virtualenv --system-site-packages targetDirectory(対象ディレクトリ)

f:id:Takunoji:20170422215050p:plain

③virtualenvのアクティベート(activate)

>source 「virtualenvのインストールしたディレクトリ」/bin/activate
もしくは
>source 「virtualenvのインストールしたディレクトリ」/bin/activate.csh
※使用できるもので良い(csh or tcsh)
実行後に以下の様な表示が出ればオッケ⭐︎

f:id:Takunoji:20170422220632p:plain

自分の実行結果は以下のとおり

f:id:Takunoji:20170422220601p:plain

f:id:Takunoji:20170422215951p:plain

もし「pipコマンド」が2.7とか3.??の場合はアップグレードして最新版にしてください


④「(tensol)」が表示されている状況がtensolflowの実行状態
終了するときは、以下のコマンドを実行する
>deactivate

⑤アンインストールはインストールディレクトリを削除する

その他。。。バイナリも(ウィンドウズで言う所の「exeファイル」)あるらしい
詳細は参考元のサイトをご参照されたし(笑)

Macでマインクラフトを起動する 

前回、ダウンロードしてきたマインクラフト(マイクラ)を起動してみます。

f:id:Takunoji:20170416105229p:plainこの様なアイコンがアプリケーションフォルダにありました。

クリックすると....こんな感じで起動処理が走ります。

f:id:Takunoji:20170416105425p:plain

そして、ログイン画面が開きます。

f:id:Takunoji:20170416112147p:plain

ここからログイン時のアカウントの作成が必要になるのですが。。。
Minecraftサーバーを立てるのにもアカウントの作成が必要なのだろうか?
フリーで提供するときは大体ユーザー登録などを要求するものですが(ユーザーを増やすといいことがあるからです)
ここは深く考えずに行くか?ちょいと調査してから判断しよう⭐︎

マインクラフトのインストール for mac

マインクラフトのインストールをやります。
ここのサイトからダウンロードします(無料版) Macでも可能みたい⭐︎

download.cnet.com


downloads.tomsguide.com

そして、Mincraft Forgeをインストール

files.minecraftforge.net

 

一応確認、起動するためにはJavaが必要になります。
現在自分の端末にはJDK1.8が入っています。

javaのダウンロード、及びインストールについては、こちらを参照ください

Java SE ダウンロード 最新版は英語のサイトから落とします(笑)

さらにjavaのバージョン確認を行います。

ターミナルを立ち上げて「java -version」と入力してenter keyを押下

f:id:Takunoji:20170415234310p:plain

上記の様にバージョンが確認できます。

実際にはJDK1.6(javaSE6)が必要だったので下記のサイトからダウンロードしました。

ダウンロード - Java for OS X 2015-001


次回は、マインクラフトを起動してみます。

UML クラス図を作る

前回はステートマシン図を作成したので今回はクラス図を作成します。
※astah*を使用して作成しています。

アプリケーションとしては、ファイル読込→動画の表示とシンプルなものなので
クラス図もシンプルです。(悲)

f:id:Takunoji:20170408110241p:plain

メインクラスにメインメソッド(今回は省略しました。)Qtを使用して作成する予定なのですが「どの言語でも作成できる様に設計する」ためにQtの部品などは記載しておりません。。。
そして、String, Listを使用するので<<include>>を上部に記載しております。

【キモになる部分】
MainClassより関連線が伸びております。これは、MainClassで関連先のクラスを保持
Java的に表現するなら「フィールド」、C++的に表現するなら「メンバ変数」(Javaでもその様に呼びますが。。。)

共通部品に関して、使用するフレームワーク、ライブラリ部品があるので記載はしませんが、ノート(青だか、紫だかわかりませんが(笑))で触れておきました。

UML ステートマシン図を書く

前回はオブジェクト配置図を書きましたので、今回はステートマシン図を書きました。
ズバリ、処理フロー図です(笑) 「状態マシン」とかいろんな言い方が書籍でありましたが、まとめると上記の様に解釈しました。

やっぱりこれも技術なので、「習うより慣れろ」の世界だと思います
細かい部分は調べればすぐにわかると思いますのでサンプルとして...

f:id:Takunoji:20170407230800p:plain

はじめに開始状態「●」が来るのですが、アプリケーションの起動=ラズパイの起動
を想定しているため開始状態にスイッチオン状態を記載しております。
起動トリガーが走り、設定ファイル読込。。。と処理が走ります。
図だけではビミョウ。。。とか感じたら「ノート」を使用します。(ピンク色)

割と詳細に近づいてきたかな?といった感じです。処理概要としては見やすいと思いました。

astah* community UML作成

前回は、astah*のダウンロードまでやりましたので、今回は作図を行おうと思います。
感想としては、オープンソースとして。。。を抜きにしても使いやすいと思います。

今回作成したのはラズパイにデプロイして画面をディスプレイに表示するアプリの設計を行いました。

線を引く、ノートを書く、クラス図(オブジェクト)を書くなどが直感的にわかるUIでした。
マウスを乗っけてやると名前が表示されるのが素晴らしい☆

f:id:Takunoji:20170406220024p:plain

苦労的なものはなく、難なく以下の様なオブジェクト図を作成できました。

f:id:Takunoji:20170406220126p:plain

1.ラズパイに画面を起動するアプリケーションを配置
2.設定を読み込みアクセスするサーバー(ローカルフォルダ)の動画ファイルを表示する

という様なシンプルなアプリケーションの設計になります。
オブジェクトの配置図なので詳細部分がわからないと思います。

 

次回は、ステートマシン図を作成したいと思います。

takunoji.hatenablog.com

設計ツール astah* インストール

for  Mac

eclipse UML DesingnerでのUML作成にてシーケンス図が書けなかったので「astah*」を

インストールしてやり直そうと考えております。

ダウンロードは左記のサイト

Login | ChangeVision Members

結局のところ、ユーザー登録が必要です。
ダウンロードするのは astah_communityになる、迷ったが無料と書いてありました。
mac版、windows版、Linux版までありました。
今回はmac版のインストールを行いました。

f:id:Takunoji:20170403215029p:plain

 

UMLを使う

UMLは、プログラム設計を一定のルールをもってみんなにわかる様にしたものです。

早い話が、みんなにわかるプログラム設計が出来るという事です。

ちょいと言いかたを変えると

考えを絵にできる

という事が出来るという事です。

どーゆー事ですか?って質問に答えるとプログラム設計、もしくはプログラム作成では、「何を」「どーして」「何をするのか」を導き出す事に終始します。

それを絵にするという事は…

という事です。これを出来る様になると生きていくのが少し楽になりました。

是非是非、理解して使える様な人が増えたら良いな…と思う次第です。

しかしながら、提案書とか企画書はUMLで書く事は出来ないのが残念です。分類としてはプログラミング言語と同じなので…

 

でわでわ。。。

Gitへソースを追加する

Gitの設定ができたら、今度はリポジトリに資源(ソースとか画像ファイル)を追加します。
対象のファイルをコミット(ローカルリポジトリへのコミットになります。)
そして、コミットしたファイルをリモートリポジトリへとプッシュします。

f:id:Takunoji:20170402114018p:plain

プッシュ後の確認

f:id:Takunoji:20170402114151p:plain

Gitは、リポジトリをローカル(自分のpc)とリモート(Git hubのサーバー)の2つを使って資源の管理を行います。

ローカルとリモートに分ける事で、サーバーの負担を減らし、資源の管理をよりやりやすくします。

余談

昔は、CVSというのがありました。これもバージョン管理システムですが時代とともに、CVSSVN→Gitと進化してきました。現状(2019年)は落ち着いて来ていて付随する(連携する)アプリが増えてきました。

そのうちの有名なものは

  1. Redmineとは — Redmine.JP
  2. Jenkins

などがあり、連携する事でチーム開発をスムーズに行うことができます。

個人的に利用している人もいて、アイデア次第で楽しい事が出来るかもしれません。

次回は、UML作成に着手します。

でわでわ。。。

takunoji.hatenablog.com



TortoiseGitのセットアップ

for Windows

Qtのセットアップが完了したので、資源(ソース)管理の準備をしたいと思います。
下記のサイトからMSIファイルを落とします。

Download – TortoiseGit – Windows Shell Interface to Git

MSIファイルを叩きます。

f:id:Takunoji:20170402111532p:plain

f:id:Takunoji:20170402111546p:plain

f:id:Takunoji:20170402111659p:plain

このままNextを押します。下の赤線を確認してFinish

f:id:Takunoji:20170402111740p:plain

セットアップが走ります。このまま初期値でNextを押します。

f:id:Takunoji:20170402112430p:plain

Git.exeがあることを確認してください。

f:id:Takunoji:20170402112449p:plain

あとは初期値でNext...
インストールが終わったら設定を確認

f:id:Takunoji:20170402112834p:plain

リモートリポジトリが指定のリポジトリ(GitHub)に設定されていることを確認します。

f:id:Takunoji:20170402113023p:plain

これで、準備OK☆次回はソースの登録方法です。

takunoji.hatenablog.com

関連ページ

PGボックス〜ゲームとプロジェクトとプログラミング基礎〜

PGボックス〜ゲームとプロジェクトとプログラミング基礎〜

PGボックス〜ゲームとプロジェクトとプログラミング基礎〜

Qt Test GoogleTesting Framework

悪戦苦闘の末、結局「Windows10 Iot Core」はあきらめました。が。。。
※古いラズパイは使えないようだ。バージョンなど確認する必要があるのかも?

Qt開発は引き続き・・・

テストを行いながら、テスト駆動型開発でやっていこうと考えております。
なので、テストコードから先に作成していきます。

使用するのは表題の「Google Testing Framework」です。

Running Autotests | Qt Creator Manualを参考にして作成いたします。

Testプロジェクトを作成します。
ファイル→ファイル/プロジェクトの作成→そのほかのプロジェクト

f:id:Takunoji:20170402093707p:plain

f:id:Takunoji:20170402093721p:plain

f:id:Takunoji:20170402093742p:plain

上記のように作成します。
途中、バージョン管理用のリポジトリ設定がありますが、今回は割愛いたします。

作成した、プロジェクトは以下のように表示されます。

f:id:Takunoji:20170402094110p:plain

対象プロジェクト/UnitTestの構成でUTプロジェクトを作成しております。
そのほうが管理が楽だと思ったので(笑)