アンパンマン 無駄な考察その1
アンパンマンと聞いて、大抵の人が思い浮かべることは「バイキンマンという悪者をアンパンマンというヒーローがやっつける」だとか「困った住民をアンパンマンが助ける」といった内容を思い浮かべるかもしれない。
アンパンマンは善でバイキンマンは悪。それは本当なのだろうか。「アンパンマンは実は悪である」なんて展開があったら面白いのではないかとアンパンマンについて自分なりに考察してみた。
バイキンマン編
・バイキンマンは実は凄く良い奴なのかもしれない
バイキンマンには「ドキンちゃん」という仲間がいる。
ドキンちゃんはバイキンマンにやたらとわがままを言ってくるが、バイキンマンは嫌々ながらもドキンちゃんが注文した物を探しに行く。バイキンマンはドキンちゃんに注文された品を得るために他人から物を奪うときもあるし、悪さをするときもあるので、これはかなり迷惑な話だなぁ。
しかし、これは考えようによってはバイキンマンは、「自分の事を犠牲にしてまでドキンちゃんに尽くす凄く良いやつ」という事になりそうだ。なにせバイキンマンは自分が嫌われたりアンパンマンにぼこぼこにされてしまうリスクを冒してまでドキンちゃんに注文された物を全力で得ようとするからだ。
バイキンマンは自分勝手な理由で悪さをすることがあるが、ドキンちゃんのために自分の身を犠牲にしているときも結構多い。
ドキンちゃんが「おなかすいた」と言って、バイキンマンが何か食べ物を取りに行く光景をアンパンマンのアニメでよく見たが、バイキンマンは何だかお人好しだなとさえ思えてくる。
・バイキンマンは努力家でその上精神的にタフ
アンパンマンには、「顔が変われば元気百倍」になり、たったのパンチ一発で重量が何十トンもありそうなバイキンマンのメカを吹っ飛ばす。というチート級な能力を持ち合わせていて、その上しょくぱんまんカレーパンマンジャムおじさんその他色々とたくさんの仲間がいて、いつでも仲間に甘えることができる。
実際に、アンパンマンは自分がピンチになると必ずジャムおじさんが新しい顔を持ってきてくれる状態だ。
それに比べてバイキンマンは、一緒に戦ってくれる仲間がカビルンルンぐらいであまり強い戦闘員がいない。また、ドキンちゃんはほとんど戦闘に参加しない。
バイキンマンにはアンパンマンのようにパンチ一発でメカを吹っ飛ばす力もなければ顔を変えて復活する能力もない。また、ジャムおじさんのパン工場という大きな権力がバックにあるわけでもない。
しかし、バイキンマンはそんな圧倒的不利な状況にもかかわらず、屈することはない。
バイキンマンは誰にも頼らずに自分の持っている知識と技術力でメカを作って、それでアンパンマンに立ち向かって負ける。そして何度負けてもめげずに試行錯誤を繰り返し、新たなメカを何度も作ってはアンパンマンに立ち向かう。
アンパンマンはチート級の力やたくさんの仲間などを持っているにもかかわらず、バイキンマンは底なしの精神力と今までに積み上げてきた技術力だけでアンパンマンとの圧倒的な力の差を埋めているようなので、バイキンマンってかなり凄いやつなんじゃないかなと思う。
バイキンマンはコツコツと技術力を磨き続けてアンパンマンに勝てるように努力を続けている。顔が変われば元気100倍になれるからといって、バイキンマンの襲撃からなんの学習もせずに何の対策をしていない。そして毎回似たような手に引っかかってしまい住民や自分自身をピンチに追いやってしまうアンパンマンはいつかバイキンマンに負けてしまうかもしれない。
マリオに出てくる敵キャラ
マリオアンドルイージRPG2ゲドンコ星人 落書き
マリオアンドルイージRPG2にでてくるゲドンコ星人 pic.twitter.com/aXx5imuzqf
— らくがき人間 移動式 (@idoushiki) 2016年6月25日
なんとなく頭にこいつが思い浮かんだのでうろ覚えで描いてみた。
えんくりぷしょん
ファイルの暗号化フリーソフト「えんくりぷしょん」
前回このブログで紹介した暗号化プログラムの「えんくりぷしょん」c言語 シーザー暗号による暗号化プログラム2 - 移動式のブログをVectorで公開しました。
中古パソコンにLinuxをいれる
中古パソコンにcentosをインストールしてみた
最近、osの入っていないジャンク品のPCを買ってみて、使えるかどうかを試してみました。
値段は約3000円。かなり安い(このパソコン、発売当初は20万円ぐらいしたらしい)。
スペック
CPU PentiumM 740 1.73GHz
メモリ 1.5GB
HDD 100GB
スペック的には今となってはおもちゃレベルのパソコンです。
centosやubuntuなどのLinux系osは無料でインストールできるので、centosをインストールすることにしました。
Index of /pub/Linux/CentOS/6.7/isos/x86_64←centosはここでダウンロードすることができます。
たまたまデータの入っていない空のCDがあったので、CD版のものをインストールしてCDに焼きました。
centosのCDをパソコンに入れて電源を入れたら無事起動した。
これで起動しなかったら3000円でゴミを買ったことになりますね。
しかし、中古のぼろいパソコンも何気に使えるという事が確認できました。
↑中古品なだけあってファンの排気口のところに大量の埃がたまっています。
一瞬、もともとスポンジみたいなフィルターがついているのかと思ったが、ほこりのかたまり!
このパソコンを起動したときにやたらと変なにおいがしてその上部屋がほこりっぽくなった原因は多分これ。
このほこりは掃除機で吸い取りました。
↑細かいところは綿棒で掃除。綿棒もこのざまですよ。
c言語 winsock通信プログラム 2
c言語 winsock通信プログラム 受信側
通信するプログラムの受信側のソースコード。
#include<stdio.h> #include<winsock2.h> int main(void){ while(1){ WSADATA wsaData; WSAStartup(MAKEWORD(1,0),&wsaData); struct sockaddr_in client, server; char buf[2]; int a,b,c; a=socket(AF_INET, SOCK_STREAM,0); memset((char*)&server,0,sizeof(server)); server.sin_family=AF_INET; server.sin_addr.s_addr=htonl(INADDR_ANY); server.sin_port=htons(ポート番号をここに入力する); bind(a,(struct sockaddr*)&server),sizeof(server); listen(a,1); c=sizeof(client); b=accept(a,(struct sockaddr*)&client,&c); recv(b,buf,2,0); printf("%s",buf); closesocket(a); closesocket(b); WSACleanup();} return 0; }
bind(a,(struct sockaddr*)&server),sizeof(server); listen(a,1); c=sizeof(client); b=accept(a,(struct sockaddr*)&client,&c); recv(b,buf,2,0);
bind関数でソケットを開き、listenで受信の準備をする。
acceptで受信待機状態にする。
recvで送信側から送信されたデータを受信する。
c言語 winsock通信プログラム
c言語 通信プログラム クライアント側
二つのパソコンを用意して、クライアント側からサーバー側に文字を送るプログラムを本やサイトを参考にして組んでみました。
上の図のように、パソコンを二つ用意してLANケーブルで繋ぎ、クライアント側からサーバー側に文字を送るプログラムを組めるようにしたいと思います。
ウインドウズのPCなら、「winsock」を使えばTCP通信、UDP通信をすることができます。
「winsock」について詳しくはこちら→
Geekなぺーじ:winsockプログラミング
winsockには、winsock.hとwinsock2.hの2種類が存在しますが、今回はwinsock2を使っています。
VisualStudioでwinsockを使うには設定が必要です。
プロジェクトのプロバディで、
「構成プロバディ」→「リンカー」→「入力」を選んで、「追加の依存ファイル」に
「ws2_32.lib」と入力して「適用」を押せば、winsock2.hを利用することができます。
ソースコード クライアント側
#include <stdio.h> #include <winsock2.h> int main(void) { while(1) { WSADATA wsaData; // winsock2の初期化 WSAStartup(MAKEWORD(1,0), &wsaData); struct sockaddr_in server; char buf[2]; int a; fgets(buf,2,stdin); a=socket(AF_INET, SOCK_STREAM, 0); memset((char *)&server,0,sizeof(server)); server.sin_family=AF_INET; server.sin_addr.s_addr=inet_addr("相手のIPアドレスをここに入れる"); server.sin_port=htons(ポート番号をここに入れる); connect(a,(struct sockaddr *) &server, sizeof(server)); send(a,buf,2,0); closesocket(a); // winsock2の終了処理 WSACleanup();} return 0; }
このプログラムは、クライアント側のパソコンで入力した文字をサーバー側のパソコンに送信するプログラムのクライアント側です。
・送信する文字の数を設定する
char buf[2];←[]の中の数字を変更して送信できる文字の量を調節する。 int a; fgets(buf,2,stdin);←真ん中の数字(2)はbufの[]内の数字と同じにする。
fgetsで入力した文字をbufに格納して、sendでデータをサーバー側に送る
send(a,buf,2,0);←真ん中の数字(2)はbufの[]内の数字と同じにする。
・winsockの初期化
WSADATA wsaData; WSAStartup(MAKEWORD(1,0), &wsaData);
winsockで通信をするためにはまず↑のコードで初期化をする必要がある。
MAKEWORD()かっこの中の二つの数字は、winsockのバージョンを表しているので、今回は(1,0)に設定してある。
.socketの設定
a=socket(AF_INET, SOCK_STREAM, 0); memset((char *)&server,0,sizeof(server));
socket関数でsocketを用意して、memset関数で(server)を0で初期化する。
・サーバー側と通信
connect(a,(struct sockaddr *) &server, sizeof(server)); send(a,buf,2,0);
connectでサーバーに接続する。
sendで、サーバーにbufを送信する。
・通信終了
closesocket(a); WSACleanup();
closesocketでソケットを閉じる。(fcloseみたいな感じ)
WSACleanupでwinsockを終了する。