イントロダクション
前回までに、占い(数秘術)と社会人基礎力の調査を行い、占いから社会人基礎力のパラメータを算出する方法を作成しました。
今度は、それをプログラムで実装しようというわけです。
設計
数秘術の数字の算出方法は占いの手順をそのまま行うので良いのですが、各数字(人格数、運命数。。。)から「社会人基礎力」の算出に関しては、理論も何もないので「直感」で割り振りました。下のような感じになります。詳細は前回の記事に記載しております。
<社会人基礎力>
1:「目的」
2:「学び」
3:「統合」
<ルール>
「人格数」: 1:「目的」と2:「学び」に割り振る
「運命数」: 3:「統合」に割り振る
「ハート数」: 1:「目的」に割り振る
「意思数」: 2:「学び」に割り振る
「成熟数」: 3:「統合」に割り振る
処理手順について
処理手順は前回の記事に記載した、算出方法がそのまま適用されます。
つまり、以下のような手順になります。
手順
- 数秘術で各数字(人格数など)を算出
- 社会人基礎力への変換表に付け合わせて値を割り振る
しかし、この手順ではプログラムに落とすことができません。視点が人間目線なので機械のレベルまで掘り下げてやる必要があります。
人間目線(高レベル)→機械目線(低レベル)というようなイメージです。そして、世間でよく言われている「高レベルAPI」という言葉は人間目線に近いAPIという意味です。逆にいうと細かい部分の操作ができません(笑)
レベルを下げる
初めの手順ではレベルが高い位置にあるので、これを下げて機械レベル(PCレベル)に近づけていきます。
上の手順を「PC操作でやろうとした時にどのように操作するか?」を考えます。そうすると下のようになると思います。
- 数秘術で算出するのに必要な「名前」と「生年月日」を入力する(名前はローマ字 or アルファベット)
- 入力されたアルファベット(ローマ字を含む)より、数秘術の計算を行う
- 各数字(人格数など)を算出し、社会人基礎力のマップに照らし合わせて、各項目に対しカウントアップ(割り振り)を行う
以上のような手順になります。
プログラムにすると
大雑把に下のような形になります。もちろん他にも方法はありますし、このサンプルが気に入らなければ他のやり方でも結構です。むしろアイディアを聞かせて欲しいくらいです(笑)
とりあえずは、このような形でプログラムを作成していけばゴールにはたどり着けるであろうというものです。
関連ページが下の方にあるのでよかったらどうぞ。
public class CreatePlayerParam implements CommandIF {
/**
* CommandIFを実装する、コマンドクラス。
*
* @see jp.zenryoku.sample.lv3.refactor.CommandIF#execute()
*/
@Override
public void execute() {
// 標準入力
Scanner input = new Scanner(System.in);
System.out.println("あなたの名前をローマ字(ヘボン式)で入力してください: ");
// 入力された文字列
String inStr = input.nextLine();
// 母音を切り取る
String boIn = cutOffBoin(inStr);
// 子音
String shiIn = inStr;
// 人格数
int jinkakuSu = getJinkakuSu(boIn, shiIn);
// 運命数
int unmeSu = getUnmeSu(boIn, shiIn);
// ハート数
int heartSu = getHeartSu(boIn, shiIn);
// 意思数
int ishiSu = getIshiSu(boIn, shiIn);
// 成熟数
int seijukuSu = getSeijukuSu(boIn, shiIn);
/* 社会人基礎力の算出 */
}
public String cutOffBoin(String inStr) {
// 未実装
return null;
}
public int getJinkakuSu(String boIn, String shiIn) {
// 未実装
return 0;
}
public int getUnmeSu(String boIn, String shiIn) {
// 未実装
return 0;
}
public int getHeartSu(String boIn, String shiIn) {
// 未実装
return 0;
}
public int getIshiSu(String boIn, String shiIn) {
// 未実装
return 0;
}
public int getSeijukuSu(String boIn, String shiIn) {
// 未実装
return 0;
}
}```
以前作成したCommandIFを使用して、このクラスをロードしてパラメータを算出するような実装にしようと思っているので。このクラスのみを作成すれば、今まで作成していたコンソールアプリに組み込むことができます。詳細は上記のリンクを参照してください。
CommandIF(インタフェース)を使用したポリモーフィズムの実行動画があります。
でわでわ。。。
関連ページ
-
Java Mid Basic 〜Lv1Javaの基本を理解する(ゲームループ付き)〜
-
Java Mid Basic 〜Lv2_Javaの基本(コードの書き方)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_1_Javaの基本(四則計算)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_2_Javaの基本(リファクタリング)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_3_Javaの基本(リファクタリング実践)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_4_Javaの基本(Dirコマンドを作る)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_5_Javaの基本(コマンド履歴を作る)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_6_Javaの基本(プロパティファイルを読む)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_7_Javaの基本(ファイルを読む)ゲームループ付き〜
-
Java Mid Basic 〜Lv2_8_Javaの基本(Mapを使う)ゲームループ付き〜
-
Java Mid Basic〜リファクタリングLv2構成を考える〜
-
Java Mid Basic〜リファクタリングLv2 処理の整理とクラス分け(準備編)〜
-
Java Mid Basic 〜Lv3_2_Javaの基本(リファクタリングLv2)ゲームループ付き
-
Java Mid Basic〜Lv3_3_リファクタリングLv2 Mainメソッドを作る〜
-
Java Mid Basic〜リファクタリングLv2 プロパティファイルで無修正ものを作る〜