今からはじめるプログラミング18

というわけで結構作ってしまった。

でも現状、なにぶんテキストが少ないので、ゲームとしてはわかりづらい。

まぁ何も考えずにドラクエっぽい要素を作っているだけなので、仕方がないと言えば仕方がない。

というわけで、何をしたのかメッセージを表示するようにしたい、と考えて、もう一つ特殊な画面を作る。

テキスト(文字列)を渡すとそれを表示していくだけの画面です。

コンソール表示でもいいといえばいいのだけれども、どちらかというとプログラムの動作を見るためのものという感じで使っているので、そちらとは別に、なんというかドラクエの戦闘時に「何をしてどうした。」みたいなメッセージが表示されているような、あれみたいな感じです。

そんなふうに考えて作ってみたものが、こちら。

MessageFrame

--------------------------------

package sample7;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Rectangle;
import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class MessageFrame extends JFrame {

//自分のインスタンスをもつ

private static MessageFrame messageFrame = null;

//テキストを表示するエリア

private JTextArea textArea = null;

//インスタンス取得

public static MessageFrame getInstance() {

if (messageFrame == null) { messageFrame = new MessageFrame();

}

return messageFrame;

}

//コンストラクタprivate

private MessageFrame() {

init();

}

//初期化処理

private void init() {

Container container = this.getContentPane(); this.setLayout(new BorderLayout()); textArea = new JTextArea(); JScrollPane scroll = new JScrollPane(textArea); container.add(scroll, BorderLayout.CENTER);

// this.setSize(new Dimension(200, 300));

//他の画面とかぶらないように this.setBounds(200,400,200,100); this.setVisible(true);
}

//メッセージを設定するメソッド public void setMessage(String message) { this.textArea.setText(message);

}

//メッセージを追加するメソッド public void addMessage(String message) {

String value = this.textArea.getText();

value += message; this.textArea.setText(value);

}

//メッセージと改行を追加するメソッド

public void addMessageln(String message) {

String value = this.textArea.getText(); value += message +  "\r\n"; this.textArea.setText(value);

}
}

--------------------------------

使い方は簡単?インスタンス取得メソッドを呼び出して、addMessage()かaddMessageln()を呼び出せばいい。

クリアして表示したい場合はsetMessage()という感じです。

とりあえずあざらしくんに対して、なにかすることを実装してみたので、現段階のソースをgoogleDriveにあっぷしました。

sample.zip - Google ドライブ

 

できれば今日中にあざらしくんを仲間にしたい・・・あれ?ポケモン

 

ポケモンもすごいゲームですよね!息子と楽しく遊ばせていただきました。任天堂さんがんばれ。スクエニも。

 

それにしても昔大手外資Sierの仕事するのに、お客さんの面接に行った時のこと。プロジェクトには参加しなかったのだけれど、もうなんというか面接でメンタルがおれた。

場所は品川だったのだけれども、お客さんの面接時間とは2時間前くらいという早い時間に待ち合わせさせられ、なんでかな?とも思ったのだけれど。

品川の駅の高輪口で最初の面接の待ち合わせを行い、近くの喫茶店で担当者?と15分くらい面接して、さて?時間だとその担当者がいうので、今度は港南口に移動、すると担当者といっていた人物が別の人物へ引き合わせて、面接という。担当者ではなく営業だった。

でさらに15分くらい面接をして、同じようなやりとりとして、再び高輪口へ、(逆だったかもしれない)3回面接をして、ようやくお客さんのところへ向かうことになった。

つまり間に入っている業者全てと同日に面接をするという状態。

お客さんとの面接は、昔別のプロジェクトで同じ会社の仕事の形態やツールは知っていたので、特に問題もなく、しかし帰る頃には夜9時を回るという、どうしようもなく気疲れのする業界の闇というか非効率性というか。。。やらない業者よりマシ、ということもあるかもしれないけれど実際のプロジェクトの推進では技術者としては、ほぼなんの関わりももたない人物とのコミュニケーションはストレス以外の何者でもないというか、マージンをとる当時のIT業界(今もかもしれないけれど)は正直、気持ち悪くて仕方がなかった。

そして、プロジェクトの企画から参加するとお金の面から見れるようになるのだけれども、月200万という大金で自分の予算が組まれているとすると、大手外資Sierの人材開発(要は派遣)会社が大体間に入って、その間で50万のマージンがとられ、人材開発会社と取引のある中堅(大手もある)会社で30万、その下の中小IT業を名乗る会社で20万、そして最後?に自分の会社の売り上げとなって確か自分の会社は60万くらいだったかな?そして自分自身のサラリーはというと30万くらいだった。

技術者に渡るのが予算の2割にみたないとか。。。

まぁSEで150万、PGで100万という見積もりもかなり大きすぎる金額にも見えるけど。。。それくらい花形の職業だったとも言えるのかもしれない。

自分自身は儲かってないけれど。。。なので技術者として技術の研鑽に使えるお金が全然少なくて、本を何冊か買って勉強するぐらいしかできなかった。個人でワークステーションを買うとか無理。

できればプロジェクトで使う環境と同じものの縮小版でいいから環境作れるくらいの会社に努めたいものだった。

というわけで、僕みたいな中小企業のエンジニアはプログラミングこそそこそこできるかもしれないけれど、ハードウェアを含めた環境的なところはからっきし、という片手落ちな人間がたくさんいたような気がしますね。

いまだに制御系とかそういうの全くわかりません。

40を超えてはじめてパソコン作ったし。

・・・まぁそんな感じでした。ちなみに金額は上(200)と下(60と30)はあってると思うけど途中は直でみたわけではないので、違うこともあると思います。実際国内大手Sierの仕事をした時は同じような立場で、上(150)だったけど、下は(70と30)という感じで、間が少ない分、割合としては良かったりすることもあります。

僕としては、リスクの大きい仕事なのだから、大きいマージンよりも、技術者のための保険とかもっと別なお金の使い方をしてほしい業界だと思います。

次に暴露話する時は、リスクについてにしよう。

はっきりいって、IT業界のxxxはxxxですみたいな。