RIOT_ON_THE_KEYBOARD 新米プログラマ奮闘記

うつ病と向き合いながらプログラマとして社会人デビューするも、病気の悪化により無念のリタイア。 そんな管理人が社会復帰に向け、徒然なるままに綴るブログです。過去記事へのコメント・トラバも大歓迎!

FC2カウンター

カレンダー

03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

プロフィール

必作仕事人マオマオ

Author:必作仕事人マオマオ


沖縄在住。2X歳・男
進路が定まらないまま大学を卒業。公共職業訓練に通うも、在籍中に「うつ病」を発症。

ココロの病気と向き合いながら、ついに内定ゲット。’06年4月からはプログラマとして社会人デビュー。

しかしながら病気の悪化で無念のリタイア。

現在は沖縄でノンビリと療養中。

そんな管理人「必作仕事人マオマオ」が、日々の出来事・職業訓練・闘病記・果ては下ネタ妄想まで(笑)、タイトル
"RIOT_ON_THE_KEYBOARD"
(キーボード上の暴動)

の通り、徒然なるままに綴るブログです。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

--/--/-- --:--|スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2006/02/13 14:37|職業訓練TB:0CM:5






ただ今、『10日でおぼえるC言語入門教室』というテキストで、C言語プログラミングの勉強をしております。

このテキスト、色んなゲームをプログラミングしながら、C言語を体系的に学べるよう編集されています。

で、今日は2日目の内容、「ジャンケンゲーム」のプログラムを組みました。

ソースコードは以下の通り。

#include <stdio.h>
#include <time.h>/*srand関数の引数をランダムにするために必要なヘッダファイル*/
#include <stdlib.h>/*srand関数を使うのに必要なヘッダファイル*/

//ジャンケンゲーム実行(繰り返しなし)
main () {
int player = 0, computer; //変数宣言
/*プレイヤーの手は0に初期化 コンピュータは乱数表示させるので、初期化の必要なし*/

//乱数の種を蒔く
srand(time(NULL));
/*1秒おきに表示する乱数を変化させる*/

printf("【ジャンケンゲーム】\n");

//プレイヤーの手の入力
printf("ジャンケン・・・(グー:1 チョキ:2 パー:3を入力)> ");
scanf("%d" , &player); //プレイヤーの手を10進数で取り込み

//コンピュータの手の入力
computer = rand()%3 + 1;
/* %3 + 1 :コンピュータが出した数値を3で割り、その余り(0~2)に1を足す*/
printf("コンピュータは");
if(computer == 1) { printf("グー");}
else if(computer == 2) { printf("チョキ");}
else if(computer == 3) { printf("パー");}
printf("! ");
/* ==:比較演算子、==の両辺が等価であることを表す
=だと「代入」になってしまうので注意!*/

//勝敗の判定と結果表示
if(computer == player) {printf("あいこ\n");}
else if(player == 1 && computer == 2) {printf("プレイヤーの勝ち\n");}
else if(player == 2 && computer == 3) {printf("プレイヤーの勝ち\n");}
else if(player == 3 && computer == 1) {printf("プレイヤーの勝ち\n");}
else {printf("コンピュータの勝ち\n");}
/* A && B :AかつBであれば */

return 0;

}

このプログラムをDOS窓で実行しますと、以下のようになります。

【ジャンケンゲーム】
ジャンケン・・・(グー:1 チョキ:2 パー:3を入力)>3
コンピュータはパー! あいこ

うーん、地味
正直言って地味です。
ゲームと言えばプレステ2。3DCGてんこ盛りの世界でSu-37を駆り、大空を飛び回ったり、放課後の教室で、「いやぁん、先輩の、太いよぅ」と後輩を陵辱したりはしないけども、とにかく派手なグラフィックに慣れた人間としては、DOS窓の文字だけのゲームなんて、地味でしょうがないです。

でも、自分が実際に組んだプログラムが正常に動くってのは、嬉しいものがありますね。


記事を読んで「面白い」とお思いになった方、1クリックお願いします。
人気ブログランキングへ→人気ブログランキングへ
スポンサーサイト
2006/01/23 04:22|職業訓練TB:0CM:3
たかだか倒れたバイクを起こしただけなのに、猛烈な筋肉痛に襲われております。
オマケに最近疲れが溜まっているのか、家の中で寝てばかりいます。
自律神経もイカレまくっているのか、散々眠った挙句真夜中に起きてしまいました。

今回も職業訓練の話です。

オイラの参加したコースは、訓練内容上、女性の割合が非常に低いコースでありました。(クラス20人中、女性は2人)
そのうち相対的にカワイイ方(強いて言えば小野真弓に似てる)が喫煙者でして、煙草を吸いながら二言三言談笑する機会もありました。
あの時ほど、「煙草吸ってて良かった」と思ったことはありません。

んな事は置いといてですね、クラスでは2人1組になって1台の机をシェアし、授業を受けていたんですよ。(パソコンは1人1台ありましたが)

で、オイラの隣に席をとったのは、Sさんという方で、今まではプログラマーとしてゲーム業界を渡り歩いてきた方でした。

このSさん、かなりの曲者でして、授業中もiPodで音楽を聴きながら寝てばかりいる人でした。

起きてる時もあるんですが、何をやっているのかというと、インターネットで株価のチェック。もしくはエクセルを開いて外貨のチェック

昼食時に一緒になって、「低金利の時代、資産運用は大事だよ」などと聞かされまして、「資産運用云々よりも、あなたは失業者でしょうが! まず就職先を確保しなさい!」とツッコミたくなりましたが、オイラも同じ身の上、グッと我慢しました。


そんなSさんの極めつけな趣味が、萌え画像の収集


こんな感じの絵ばっかりネット上で集めてました。

授業もプログラミング実習に入り、分からない所が出てきます。
「え? これどうやってプログラムしたらいいの? Sさん、助け・・・」
萌え画像開いてるー!!
Σ(; ̄□ ̄)

てなわけで、孤軍奮闘を余儀なくされました。(泣


その後もSさんの暴走はとどまることを知らず、授業中に課題そっちのけでゲームを開発するというレヴェルにまで発展しました。

で、その作品を見せてもらったんですが、内容は「ぷよぷよ」を真似た落ちモノパズル。背景はもちろん、美少女萌え画像
勝ったら後ろの女の子がバンザイするように改良したいんだけどねー」などと、本人は言っておりました。

そんなSさんを見兼ねて、講師の先生も「Sさん、授業中に株はやめてよ」などと注意していたのですが、最終的には、「周りの迷惑にならなければ、何やってもいいよ」というあきらめモードに入ってしまいました。

そんな人と隣りあわせで、オイラの職業訓練は展開していったのです。


記事を読んで「面白い」とお思いになった方、1クリックお願いします。
人気ブログランキングへ→人気ブログランキングへ


編集後記:今回、記事に使う「萌え画像」をネット上で検索しました。
サーチエンジンに「萌え画像」と入力したところ、危ないサイトばかりヒットしました。
ゲームのデートイベントごときに熱中してるくらいならまだマトモと、再認識した次第です。
2006/01/14 21:32|職業訓練TB:0CM:1
8月後半から職業訓練も休みがちになりましたが、9月からはC言語を習うということで、心機一転、「頑張って通おう」ということで、また出席し始めました。

それまでは、訓練所のパソコンでは、OSにWindowsを使ってたんですが、C言語用にLinuxに付け替えられました。

OSを変えた理由は、「Linuxの方がC言語の学習環境が整っているから」だそうです。


でもって、早速実習開始。

最初のうちは、「モニター上に自分の名前を表示しなさい」なんて簡単な課題だったんですが、そのうちあり得ない進度で授業が進んでいきましてポインタだの、構造体だの、共用体だの、ポインタのポインタだの、やっぱり訳分かるかああああ!な展開になっていきました。


ちなみに、OSがLinuxになったおかげで、スクリーンセイバーとゲームは充実したものになりました

スクリーンセイバーで気に入ったのは、「色んな化学化合物の3D分子モデルを表示する」ってやつですね。

隅っこの方に英語で化合物名が表示されるんですが、メタンフェタミンヘロイン(オイオイ、覚せい剤じゃねーか)やサリン毒ガスやんけ)なんてヤバイものばっかり表示してくれました(笑)

あとは、ゲームが充実したおかげで、居残りが圧倒的に増えましたね。

訓練は通常午後3時には終わりまして、午後5時までは居残り可能なんですけど、あの時期居残っていた人達の大半は、プログラミング練習ではなく、ゲームにその時間を充てておりました

かく言うオイラもゲームにハマったくちで、麻雀牌をつないで消していく「四川省」なるゲームにのめり込んでおりました


てなわけで、あの時期は、プログラミングよりもゲーム(四川省)が楽しみで通ってた時期ですね。(笑)


記事を読んで「面白い」とお思いになった方、1クリックお願いします。
人気ブログランキングへ→人気ブログランキングへ
2006/01/13 02:01|職業訓練TB:0CM:0
久しぶりに職業訓練の話を。

今回は2ヶ月目に受けたアセンブラについてお送りします。

具体的な内容に進む前に、プログラム言語における「高級言語」「低級言語」について説明させてもらいます。

プログラム言語には、C言語・C++(シープラスプラス:略してシープラプラ)・JAVA(ジャバ)・アセンブラなど、様々な言語があります。

どの言語も、コンピューターに対し、「こういう処理をしなさい」と命令している点に変わりはありません。

なら、その違いはどこにあるのかと言いますと、「プログラムが、組んでいる人間にとって理解しやすいものであるかどうか」と言うことになります。(他にも「クラス設定が必要」とか、各言語ごとに違いはありますが、ここでは省きます。)

例えばC言語ですと、“if else文”なんて文法が出てきます。
「もし入力された数値がAだったら、処理Xを実行しなさい。A以外の場合は、処理Yを実行しなさい。」といった命令文です。
これは、プログラムを組む人間にとっても理解しやすい表記法です。

しかし、このように英単語を用いて分かりやすく書かれたプログラムも、最終的にはコンピューターが分かる言語、すなわち、0(=電気を流さない)・1(=電気を流す)の組み合わせに変換されます

ちなみに、プログラムを0と1の電気信号に置き換える役割を担うものを、コンパイラと呼びます。
これも、一種のプログラムです。

話が込み入ってしまいましたが、プログラムにおいて、「人間が理解しやすい表記法を取るもの」を「高級言語」と呼び、「コンピューター側の視点に立ったもの」を「低級言語」と呼びます
「高級」・「低級」という呼称は、決して、プログラム的に優れている・劣っているを示すものではありません。

で、職業訓練2ヶ月目には、マイコンの1つ“SH3(エスエイチスリー)”と、それの処理に使われる低級言語の1つであるアセンブラについて学んだわけです。

これが難しいのなんのって・・・。


まず授業は、0と1の組み合わせからなる2進数について学びました。

2進数というのは、1桁目は2の0乗、2桁目は2の1乗、3桁目は2の2乗を表し・・・という数の記述法です。

例えば、10進数(日常で使われている、10になると桁が1つ繰り上がる表記法です)の“5”は、2進数に直すと、“2の2乗=4が1つ、2の1乗=2が0個、2の0乗=1が1つ”となり、“101”と表記される、と言った具合です。

ちなみに、2進数の1桁のことを“1ビット”と言い、8桁を一纏りとして“1バイト”と表現します

この“バイト”と言う表現は、CD-RやUSBフラッシュメモリの記憶容量として目にした方も多いと思います。
例えば256MBの記憶容量ですと、256×1024×1024×8=2’147’483’648、すなわち、21億4748万3648個の0と1のデジタル信号を記憶できる容量があると言うことになります。


この辺で頭がバクハツしかけてる人もいるでしょうが、まだまだ続きますよ。(笑)

さらに、2進数では桁が大きくなるので、2進数4桁分を1つにまとめた16進数なる表記法も習いました。

これは、0~9までは普通の10進数と同じ、後は、A=10、B=11、C=12、D=13,E=14、F=15とみなして表記するという方法です。


さて、16進数まで習ったところで、いざプログラミング実習開始。

でもこれが、さっぱり分からないんです

アセンブラと言うのが、マイコン向けに開発された低級言語なので、どんな処理をやってるのかさっぱり分からないんです。

SH3というマイコンには、データを保存しておく“レジスタ”と呼ばれる部分があるそうなんですが、「mov命令を用いてレジスタ間でデータのやり取りを行え」って、やってられるかああああ! 意味分からんわ!

その頃は、うつ病が悪化して、理解力も記憶力も何もかも低下していた時期でした。

でもってこの超難解なアセンブラ。

精神的に健康な他の受講生の方々も、口をそろえて「難しい」と言っていたこの言語。

・・・無理だって。
ただでさえ頭の回転が鈍っているオイラに、この言語を理解するのは無理だって。


と言うわけで、合格通知を受け取ったときの決意はどこへやら。
盆休みを挟んで後半からは、授業も休みがちになりました。


ちなみにこのアセンブラ、現在は先ほど述べたコンパイラ(プログラムをコンピューターが理解できる0と1の電気信号に置き換える装置)の性能が向上したことにより、実際のマイコン開発の現場では使われることが少なくなっているそうです。
ホッとする話です。


記事を読んで「面白い」とお思いになった方、1クリックお願いします。
人気ブログランキングへ→人気ブログランキングへ

2006/01/05 23:48|職業訓練TB:0CM:1
3回にわたってお送りする「電気の世界」も、今回が最終回です。

今回は職業訓練・電気編の終盤に用いたPLDボードを紹介します。



これがPLDボード

"PLD"とは、”Programmable Logic Device”(プログラムが可能な論理回路)の略です。

050728_124334[2].jpg

これがPLD

このPLDに対し、「専用の回路設計用ソフトを用いて回路図を作成し、パソコンとプリンタの接続に使われるケーブルを通してその情報を送信、そして設計した回路を焼き付ける」、と言う操作を行うことができます。

050728_165601[2].jpg

これが回路の設計図


通常IC(Integrated Circuit:集積回路)というのは、何らかの専門性を帯びています。
例えば、(前回の“0”と“1”を思い出してください)「電気信号が0から1に変化する時だけ動作する」とか、その逆に「1から0に変化するときだけ動作する」、あるいは、「※7セグメントLEDの操作に使用する」と言った具合に。

※7セグメントLED
 ⑤
① ③
 ⑥
② ④
 ⑦
の7つの部分に分かれ、対応する部分を光らせて0~9までの数字を表示させるLED。
例えば③と④を点灯させれば、

となり、“1”を表します。
ちなみに“LED”とは、“Light Emitting Diode”の略で、「発光ダイオード」(電気エネルギーを光に変えるダイオード)を意味します。
携帯電話のモニターのバックライトや信号機など、幅広い分野で使われています。


説明が込み入って話が脇道に逸れてしまいましたが、PLDには、回路の設計次第でどんなICの特性も持たせることが出来るのです。


そんなPLDにプログラムを施してつくったのが、下の写真にあるスロットマシン
050729_121434[2].jpg


数字がそろえばブザーが鳴るオマケ付きです。


そして、遊び心からプログラムして作り上げたのが、
下の写真にある、メッセージを表示させる回路。

050729_120540[2].jpg

“JIA YOU”とは中国語で漢字に直すと“加油”
すなわち、「がんばれ」って意味です。


ま、こんな感じで電気編は割合楽しく勉強できたんですけど、就職先がマイコン関係ではなく、一般のシステム開発業のため、せっかくの知識も無駄になりそうです。


・・・・・・とほほ。


人気ブログランキングへ→人気ブログランキングへ

カテゴリー

リンク

メールフォーム

名前:
メール:
件名:
本文:

ブログ内検索

RSSフィード

Copyright(C) 2006 RIOT_ON_THE_KEYBOARD 新米プログラマ奮闘記 All Rights Reserved.
Powered by FC2ブログ. template designed by 遥かなるわらしべ長者への挑戦.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。