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

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

目標達成アプリ ガイド

目標達成アプリ(アナログ版)のガイドです。

メインページ

https://zenryokuservice.github.io/GoalAchievement/

手順1

「大目標〜実現項目までを入力する」

これの手順、考え方をご説明申し上げたいと思います。

 

「大目標」

キホン的にはなんでも良い、が、単純な事や簡単に出来る事には余り意味が無いと思います。

継続して初めて効果が出る様な事や達成までに道のりが長いものに効果を発揮する想定です。
以下の例には目標達成アプリ作成時の目標を設定した時の場合も記載してます。


 <大目標の例>

目標達成アプリを作る、10キロ痩せるetc…

 

 「準目標」

大目標の達成の為に必要な事を3つ挙げます。 


<準目標の例>

「目標達成アプリ」{
汎用画面APを作る、

目標達成までの道のりをまとめる(ロードマップ作成)ツールを作る、

自分のやった事でどれだけ目標に近づいたか分かる(進捗管理)ツールを作る

}
「10キロ痩せる」 {
運動する、食事を調整する、新習慣を付ける

}
その他…

目標の為に必要な事柄、作り上げるもの

習慣や記録など…

 

「実現項目」

上にあるそれぞれの準目標を達成する為に必要な「やるべき事」を3つずつ挙げます


<実現項目の例>

「汎用画面AP:c++ 、Qt、UMLの勉強」
「目標達成までの道のり…:実際にアナログでやってみる、ロードマップ作成ツール作成、情報整理ツール作成」
進捗管理ツール:日記を書く為のツール、ブログなどへの連携、進捗メーターなど描画技術」

「運動をする:食前に腕立て伏せ、腹筋を10回やる、ウォーキングetc」
「食事を調整する:油分のない食事(食事制限)、和食中心にする、朝のパン食をやめる」
「新習慣をつける:日記を付ける、一日5分の座禅をする、一日のスケジュールを見直す」

 

Gitにまとめてみました。

https://zenryokuservice.github.io/GoalAchievement/

C++ 環境変数の名前を取得する

早速実装に入ります。
今回実装するのは、「環境変数の名前を取得する」処理です。
"Human.h"は使用していません。。。失礼
extern char** environ; →「extern」はファイルを超えて使用できるという意味らしい

 結論的に char** environ;は環境変数の名前と値を保持しているであろうと思う。

※確定まで行きませんでした。。。
<実装>

f:id:Takunoji:20170305203322p:plain
<出力結果>

f:id:Takunoji:20170305204039p:plain

上記の"="より左が環境変数の名前、右が値になります。
でも、他にも定義している"JAVA_HOME", "DERBY_HOME"が出力されないのはなんでだろう?

環境変数に設定していませんでした。。。

余談ですが。。。

c++はゲーム〜スマホアプリ、OSまで、殆どのアプリを作成する事が出来ます。Javaも追いつけ追い越せと頑張っています。

手近な所では以下の様な物もあるので是非一度やってみてはどうでしょうか?

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


とりあえずは、ここまでということで。。。

目標達成アプリ(アナログ版)

表題の様なアプリを作ろうといています。

以下に手順を示します。

図の上から順に大目標~実現項目まで四角の中を埋めて

概要ロードマップと詳細ロードマップに従いやり続けるだけです。

続けるのが大変ですが(笑)

【手順】
1.各項目をリストアップ:大目標~実現項目を下図のように書き出す

2.概要ロードマップ:各実現項目を実行する順番に並べる(準備、成果物、人脈も)

3.詳細ロードマップ:実現項目の実行順序をロードマップにする

4.進捗日記  ※達成感が感じられればなんでも良い

 【図にするとこんな感じ】目標達成アプリ ガイドを作りました。

f:id:Takunoji:20170307220653p:plain

 上の図、黄色部分が概要ロードマップになります。
概要ロードマップの各実行項目の実行順を『詳細ロードマップ』と呼ぶことにします。

詳細ロードマップの書き方

1.準備する為にやる事を書き出します

2.人脈を広げる、作る為にやる事を書き出します(不要であれば何も書きません)

3.概要ロードマップで記載した成果物を作る手順を書き出します

※補足

ロードマップを進む時の行動サイクルを作るとやりやすい

<例>

前調査⇒設計⇒テストコード⇒ブログにアップ⇒実装⇒設計確認⇒前調査…


進捗に関しては、日記形式で以下のように記載する。
・「今日やった事」 → 現状に対する考え(現状の良い所と悪い所)
・「次回やること」 → 今後に対する考え(今後に対してどの様に行動するか?)
・「ロードマップのどこまで進んでいるか?」

週に一度、やった事(日記参照)を省みてブラッシュアップ(出来れば…)次の週に臨む…

 

ここら辺の細かい部分は人工知能に頼っても良いのでは?と思いました。

 

<実行項目の仕分>

毎日続けるものと一歩ずつ進んで行くものに仕分ます。

そしてスケジューリングします。

 

未確定事項の決定次第、内容を更新していきます。

C++ OS名を取得する

前回は「Qt使い方 画面作成 mainメソッド 」をやりました。
今度は、OS名の取得実装です。
下記のファイルをインクルードします。

どうやら標準ライブラリと呼ばれるものでしょうか? →後ほど調べます...oz...
<sys/utsname.h>
<stdlib.h>
C++勉強する上で必要になりそうだなぁ。。。
<実装>

f:id:Takunoji:20170305211129p:plain

<出力結果>

f:id:Takunoji:20170305211149p:plain

OSの名前は”ダーウィン"だったとは.....

次回は、デバイスサイズの取得をやります。

Qt使い方 画面作成 mainメソッド

前回は、Qtのインストールをおこないました。
まずは、どんな画面を作成するのか?については今度にして...
※画面テンプレートのイメージ作成が間に合いませんでした。。。

画面作成に必要な情報を取得する部分の処理について記載いたします。

JavaもCもまず動くのはMainメソッドです。
(Javaサーブレットもサーバーアプリ内にあります。。。記憶が正しければですが(笑)

まずは設計の確認

f:id:Takunoji:20170306204300p:plain

小さくて見づらいですが、「汎用画面AP」クラス内にMainメソッドがあります。
汎用画面APの機能一覧より起動時に以下の情報を取得します。
・OS名
・デバイスサイズ

まだ詳細は決めていませんが大雑把にこんなコードになります(Java的に)

public static final String SETTEI_XML = "設定ファイルへのパス";
private 画面コンテキスト gamenCtx;
public static void  main(String[] args) {

   gamebCtx = new 画面コンテキスト();
   SystemPropertyUtil.OS名取得(gamenCtx);
   SystemPropertyUtil.デバイスサイズ取得(gamenCtx);
   FileUtil.ファイル読み込み(SETTEI_XML, gamenCtx);

  // TODO:その他必要な設定値があればそれを取得する

  // 画面を表示する処理
  this.exeHanyoGamenAP(gamenCtx);
}

次回は、Qtでのデザイン作成をやります。
その次に、OS名の取得をC++でやります。

WifiはつながるのにLANはつながらない

それは、突然やってきます。
「ネットワーク接続ができません」。。。

解決するまでは「やばい、やばい、ヤバイ.....」と焦ります。
いろんなケースがあるのですが、

今回の「つながらない」ケースは
ある、ルータを挟んでそれ以降のPCが接続できなかったケースです。

【イメージ】
「接続できる」                   |      「このルータから先は接続できない」
<ブロードバンド・ルータ> → <内部ルータ> → PC

【対応】
ルータを再起動したら治った。。。

毎回のことですが、なおしてみると「なんだこんなことかぁ(笑)」となるのですが
回数を重ねると悔しいものがあります。。。

慣れましたが(笑)

Qtの使い方 インストール

前回JavaとC++の実装比較を行いました。
次は、C++での画面作成に「Qt」を使用しようと思い立ち...

早速。。。Qtの仕様などは割愛します。 別のサイトを参照してください。

Qt - Home (Japanese) ← 日本語版です。

上記のフレームワークを使用するうえでの注意は
ざっくりと、商用で使用するなら「お金を払いましょう」
      無料でやるなら「ソースを公開しましょう」
という認識です。

<ダウンロードについて >
開発で使用するのは「Qtクリエーター」です。(結構重いです)

Qtの実装ではノートPCでなく
デスクトップPCでの開発で行こうと思います。

<インストーラについて>
windows用のインストーラ、その他のプラットホーム..と別れています。
間違うと結構手間(ダウンロードに時間がかかりますので注意)
ダウンロードした後にインストーラーを起動したら、
あとはスルンと行きます(笑)

<Qt起動>

f:id:Takunoji:20170305113607p:plain

新しいプロジェクトを選択すると下記のように表示されます。

f:id:Takunoji:20170305112556p:plain

今回作成しようとしているのは「汎用画面AP」なので
「Qtウィジェットアプリケーション」を選択します。

f:id:Takunoji:20170305113511p:plain

f:id:Takunoji:20170305113429p:plain

f:id:Takunoji:20170305113531p:plain

f:id:Takunoji:20170305113543p:plain

f:id:Takunoji:20170305113731p:plain


ここからC++出の実装が始まります。
余談ですが「オブジェクト指向」を学ぶのに画面作成はとても入りやすいし
理解もしやすいと思います。

プログラム実行結果 → オブジェクトの表示
を直接目で確かめることができるからです。

次回は開発を始めたいと思います。

javadb Derby インストール

javaDB⇒「Derby」のインストール手順
1.アパッチのサイトにアクセスして derbyをダウンロードします。
   Apache Derby    Downloadページ

2.JAVA_HOMEを設定して、パスを通す
Windowsの場合は"$VAL"を"%VAL%"に読み替えてください

・~/.bash_profileに JAVA_HOME=jdkへのパス と記載する
・同様にPATH = $JAVA_HOME/bin:$PATH  と記載する

3.ダウンロードしたderby-binに環境変数を設定:derbyは使用しやすい場所に配置
 ※JDKの中に入っているのでそちらでも良い(JAVA_HOME/db/lib/derby.jar)
>sudo vi(vim) ~/.bash_profile
   DERBY_HOME = ダウンロードしたderbyのフォルダへのパス/bin

   CLASSPATH=$SERBY_INSTALL/lib/derby.jar:$DERBY_INSTALL/lib/derby-tools.jar

>source ~/.bash_profile →これでPATHを反映する

3.DERBYをインストールした場所に移動してセットアップバッチ(シェル)を叩く

>cd $DERBY_INSTALL /bin
>. setEmbeddedCP


4.インストール確認にDerby情報を出力する
java org.apache.derby.tools.sysinfo

f:id:Takunoji:20170304123607p:plain

以上で、セットアップ完了です。

C++ PostgreSQL library インストール

参考にしたページは以下になります

www.tutorialspoint.com


このページ
よりダウンロードしたいファイルを選ぶ

以下のコマンドでインストールする

wget http://pqxx.org/download/software/libpqxx/libpqxx-4.0.tar.gz
tar xvfz libpqxx-4.0.tar.gz
cd libpqxx-4.0
./configure
make
make install

libpqxx-」の後ろにバージョンが示されています

f:id:Takunoji:20170302215104p:plain

wget http://pqxx.org/download/software/libpqxx/libpqxx-2.5.5.tar.gz

一番上のファイルをダウンロードするコマンドになります。

例えばターミナルを開いて、カレントディレクトリ→「pwd」コマンドで表示されます

ターミナルで現在開いているディレクトリ=カレントディレクトリになります。
引き続き「tarコマンド」x, v, f, zと4つのオプションをつけて実行します。(実行結果)

f:id:Takunoji:20170302220557p:plain

tarファイルを解凍するコマンドになります。
カレントディレクトリに解凍されます。


 

 

mac wgetコマンド インストール方法

はじめに、「brewコマンド」がMacにインストールされていませんでした。
その代わり、「rubyコマンド」はインストールされていましたので
ruby -help」とターミナルにコマンドを入力してやるとインストールされていれば下記の様に画面に出力されます。

f:id:Takunoji:20170302212715p:plain
rubyコマンドが使用できるのであれば、以下の様にコマンドを入力(コピペ可能)

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

実行結果

f:id:Takunoji:20170302213146p:plain
※上記の部分で「Enter」キー以外を押下すると処理が止まります。

f:id:Takunoji:20170302213725p:plain
上の様な表示が出力されていればインストール成功

では目的の「wget」をインストールします。

brew install wget

確認のため「wget -h」でヘルプが表示されていればインストール完了