制御構文で書いてみた。

今回は制御構文をけっこう勉強しました。

制御構文とは、ifとかwhileとかforなどをつかって、ループを作る事などです。要は、どのように計算するかの手順を簡単な命令をつかって、示してみることではないでしょうか。言語によってはdoループなんてものもあるそうですが。。

たとえば今日はこんなソースを作りました。

void draw(){
line(X,Y,0,0);
line(X,Y,0,30);
line(X,Y,0,60);
line(X,Y,0,90);
line(X,Y,0,120);
line(X,Y,0,150);
line(X,Y,0,180);
line(X,Y,0,210);
line(X,Y,0,240);
line(X,Y,0,270);
line(X,Y,0,300);
line(X,Y,0,330);
line(X,Y,0,360);
line(X,Y,0,390);
line(X,Y,0,420);
line(X,Y,0,450);
line(X,Y,0,480);
line(X,Y,0,500);

line(X,Y,30,0);
line(X,Y,60,0);
line(X,Y,90,0);
line(X,Y,120,0);
line(X,Y,150,0);
line(X,Y,180,0);
line(X,Y,210,0);
line(X,Y,240,0);
line(X,Y,270,0);
line(X,Y,300,0);
line(X,Y,330,0);
line(X,Y,360,0);
line(X,Y,390,0);
line(X,Y,420,0);
line(X,Y,450,0);
line(X,Y,480,0);
line(X,Y,500,0);

line(X,Y,500,30);
line(X,Y,500,60);
line(X,Y,500,90);
line(X,Y,500,120);
line(X,Y,500,150);


こんな調子で続いていきます。けっこうひどいコードです。

これをきちんとすると

for(A=0;A<=500;A+=30 )
{ line(X,Y,A,0);
line(X,Y,A,500);
line(X,Y,0,A);
line(X,Y,500,A);
}

となります。これがループの威力ですね。かなり圧縮する事が出来ました。実行結果も大体同じだと思います。

上の例を使って↓のようなプログラミングが出来ました


次回は数学を使ったプログラミングに挑戦したいです。^0^

ご拝読ありがとうございました!

Processing を触ってみたよ。

こんにちは〜。久しぶりです。ハンギです。

最近、こういう本を読みました。

「ジェネラティブ・アート -Processingによる実践ガイド」です。

別に他の本でも良いと思うんですけど、アーティストらしさがあふれるいい本でした。図版も比較的多かったですし。

この本によるとProcessingはアートや画像処理用に作られたアプリケーションのようです。

僕も美術予備校に通っていた時期もあるので、なかなか魅力的です。

それでさっそくやってみました。

サンプル。。

  

とまあなかなか面白そうです。

ミリタリーSFの楽しさ。

こんにちわ〜。最近ミリタリーSF読んでます〜。
ミリタリーSFは軍事的な話を何かに置き換えたり、古い科学を新しそうに見せたり(いわゆるスチームパンクもそうかも)、現実の軍隊が宇宙人と戦うような物としましょう。

このジャンルはアメリカとかがすごいです。作家さんも軍隊経験があったりするので、少なくとも現実の軍隊を対象とする限り、間違えた事は書いてないのでしょう。

たとえば「火星のプリンセス」がそうです。
これは1917年に執筆されたSFですが、主人公は南北戦争で敗北した、アメリカ南軍の大尉という設定で、彼が火星へとたどり着き、そこで英雄になる、という話です。歴史改変ものであり、また多少は軍事的な色彩もあります。

著者のエドガー・ライス・バローズは軍隊経験があり、父親が南軍の少佐だったそうです。親の無念を思い出して書いたのでしょうか。

最近は「ポズリーン・ウォー」シリーズがあります。邦訳されたのは、二作品のみ、全部で六巻です。意外と多いのですが、現在では主人公の娘が大きくなって宇宙人と戦っている小説も出ているそうで、海の向こうのアメリカでは息の長いシリーズみたいです。

スペースオペラには艦隊戦などが不可欠な要素とはいえ、だんだん軍事的なSFが多くなっていると言うか、SFにはこういう側面がある事は否定できないと思います。日本でも押井守が「ケルベロス 鋼鉄の猟犬」がありました。この本では、ヒトラーが暗殺され、まとも?になったドイツ軍に最後まで奮戦する呪われた部隊である、装甲猟兵という押井守氏独自の設定に基づく部隊を、登場させてきています。映画「人狼」でおなじみのあれを想像すれば良いと思います。藤原カムイもマンガ化に参加していますので、意外とビジュアルとしては固定していると思います。(映画もマンガも左翼運動が華やかな時を舞台にしている、ので舞台設定が異なると思いますが)

さて、私たちはそれで何を想像すればいいのか、という問題があります。

なんでミリタリーSFはこんなにも人気なのだろうか。軍隊や武器についての蘊蓄を語るミリタリーSFは大人気というほど広がってはいないですが、地味に人気があります。これはいったいどうして人気があるのでしょうか。しかも日本では銃を保有する事すら出来ないのに。

これは小説のカタログ化現象の1つだと思いますが、なぜか、ミリタリーSFは蘊蓄を傾ける小説という扱いを受ける事になるかもしれないです。「ヨルムンガンド」「虐殺器官」もわりとそうなのですが、想像力を刺激させる描写と言うよりも、事実や固有名詞をそのまま列挙して、話に現実味をもたらす方法がよく利用されている気がします。これはたぶん日本では銃が規制されている事と無関係ではなく、私たちにはかなり銃や軍事的な装備は身近なものではないので、その具体的イメージを喚起するためには、その説明に要する手間がかなり必要になるという事でしょう。情緒的ではなく、より即物的な描写が求められると言っていいかもしれません。

アメリカで生まれた「ポズリーン・ウォー」シリーズもかなり蘊蓄的なのですが、それはこれまで見た事のない(四つ足の)宇宙人が侵略してくるという主題なので、地球人の軍隊が取る戦略を一から説明しないといけない、という事情によるのではないでしょうか。(「火星のプリンセス」は特にそういう要素はないです)

少なくとも、ミリタリーSFの饒舌さというのは、軍事的な物になじみのない人にも作品を楽しめるようにするための配慮かもしれませんが、時々どちらがメインなのかがわからなくなります。それもミリタリーSFの楽しさかもしれませんが・・。^^;


    

パチンコっていいですね。

パチンコってどうも、社会的にはあまりいい目で見られていないですね。残念です。
僕は最近やるようになったんですけど、どこが面白いのか適当に書いてみます。^^;

まずパチンコは誰にでも出来る・・。単なる運だけを扱う遊戯です。
複雑なゲーム性がなく、この意味ではあまり個人差が出ないと思われます。
細かい所はあるのかもしれないのですが、僕が思いつくのは保留を作れるようになるくらいでしょうか。特に保留が途中で昇格する「ガンダム」では保留を作った方が、何かといい気がしますが、もしかしたら気休め程度かもしれないですね。

パチンコはマンガアニメのコンテンツがよく使われる。
この点は説明するまでもない事です。「宇宙戦艦ヤマト」、「エヴァンゲリオン」、「エウレカセブン」「ウルトラマンタロウ」、「コンバトラーV」なんてのもあります。特に有名な台詞がカットインで入る事もあるので、こういうコンテンツに詳しくなる事が出来ます。(それがそんなにいいのか?と言われたら困ってしまいますが^^;)

パチンコは遊戯の未来系である
これはどういうことかというと、最近何かと話題になっているグリーなどですが、どうもパチンコ(パチスロ)を元にゲームシステムを作っているのかなあ、と思っているのですが。(あ、僕はグリーのゲームをやった事はないのですが)パチンコは確率を主に扱うゲームです。確率が高ければ誰でも当たりを出す事が出来ますし、対戦相手なんてのもいないのですが、それだけに自分との闘いになりまして、その要素が非常に面白いのです。詳しく説明しましょう。

まずパチンコに当たった事がある事が前提です。過去、大当たりを出した事があって、二万円くらい儲かった事があると、また出るのではないか、という希望が捨てきれないです。それなので、とりあえずまたやりたくなる、もう一度当たってみたいな、という気分が捨てきれなくなるわけです。過去の自分の体験は、自分が体験しているだけに疑いようがありません。他人がパチンコで2万円勝った、という話を聞いても心は動かされないかもしれませんが、自分が体験した経験はそうはいかない。これは皆さんが日々経験する事です。

パチンコでうまくいった事がある、うまく勝ったことがあるのは単純に運がいいからです。それ以外の要素はあまりない。それにもかかわらずまたやってみたくなるのは、前に経験したのと同じくらい、あるいはそれ以上の勝ちを経験できるようになるのではないか?という淡い期待を持つからです。この期待は上限を知らないので、毎日10時〜23時までパチンコ屋に入り浸るかもしれない(笑。こうなったら人間はおしまいでしょうけど、確かにパチンコでは勝てるかもしれない。(もちろん負けるかもしれない)

馬鹿にするかもしれないですが、こういう過去の自分、過去の大当たりした自分との対決が、パチンコでは重要と言いますか、あまり他人との対戦は考えられていません。これが確率を導入しているものの、対戦という要素を取り入れているグリーのドリランドなどとは違う所なのではないでしょうか。つまり、ドリランドは確率というパチンコの要素に加えて、日本のダンジョン攻略ゲームのようなゲーム性をうまく結びつけたゲームを開発したのですね。これが日本のゲームの未来である、と僕は直感します。

確率の要素が入るとゲームがさらに運任せになります、これが面白いと言えば面白いです。ドラクエにも「パルプンテ」という呪文があり(古い!)、そこそこ人気がある呪文だったと思いますが、それは何が起きるか分からないからですね。確率はなぜか胸がわくわくします。日本政府もクールジャパンを売り出すなら、真っ先に売らないといけないのは、コンセプトとしてのパチンコです。パチンコの世界進出こそがいま求められているのではないでしょうか!

余談ですが、僕はパチンコのおかげで「連打」という日本のゲーム文化が生き残れた気がします。ボタンは一回押せば十分、という既成概念を打ち破って、連打、という文化が日本のゲームには存在します。連打とは普通の一回押しとは異なる場面で要求される、習熟度のチェックのようなものです。ゲーム世界のしきたりとも言っていい物です。それによって只のなんて事ないキックが百烈キックになったりするわけです。われわれは簡単に、連打によって日常から非日常へと迷い込む事が出来ます。特にパチンコでは連打成功によって、新しい可能性に満ちた未来が開かれるのですね。同じようなもので「長押し」があります。たぶんこの二つとも日本でできたのではないか、と思いますけども(日本人の情念が連打を作り出したのではないか)。その「連打」を団塊世代のおそらくゲームなどやった事ない人すらも、やっています。これは僕はパチンコのささやかな貢献だと思うわけです。

   

   

プログラミング言語の学習 (「プログラミング言語の仕組み」書評)

プログラミング言語の仕組み」黒川利明著、朝倉書店、1997年出版 を読んでみた。10年以上前なので、かなり内容が古いかなと思っていたけれど、そこは専門家というところで、むしろ新しい部分もあるのではないかと思う。

黒川利明さんは関数型言語Lispの入門書を書いているし、構造化プログラミングについても記述が割かれているし、JAVAにも目を配っており、偏らずに抽象的なプログラミング一般について述べている。やや特徴的なところがあるとすると、「朱唇」という日本語で記述できるプログラミング言語にけっこう入れこんでおり、「予約語(reserved word)」を「術語」と訳す様に、やや癖があるけど面白いと思った。(いま検索したところ、朱唇は公開されていないようだ。ダウンロードできたら面白かったのに。)

読んでみてよかったと思うのは、あまり気にしなかった部分の説明があったところだと思う。(ただ、最近実はプログラミング言語の本を読んでいないので、どれほど個性的かは実のところ良くわからない。別の本も読み比べてみたいと思う。以下の記述は僕の主観という事でお願いしたいです。)


プログラミング言語の基本データ型(整数、真理値、ポインタ、文字など)とデータ構造(文字列、配列、ファイル、レコード、グラフ、リスト、木など)という区別ができるようになったのはよかったと思う。基本データとは、単一のデータの要素で、それが組み合わさってできたのが、データ構造だと言う。ここで文字は基本データ型であり、文字列はデータ構造だとしているのは興味深いけど、著者はそこにあまり意味はないという。難しいと思ったのは、リストで、これはけっこう独特のものを示している。(日常語のリストとあまり重ならないと思う)C言語特有だと思うんですけどね。(LispPascalにはあるのだろうか・・?)

それと配列とレコードの違いというのも興味深かった。配列とは同じものであるが数値の表現が異なるものの集合であり、レコードは数種類の基本データ型をいれる構造だと言う。ちょっとこのあたりはわかりづらいけど、まあなんとか、という感じです。

それと文(statement)の種類の豊富さとかですかね。入出力文、代入文、条件文、ラベル付き文、飛越し文、繰返し文、手続き呼出し分、データ領域割当文、データ領域解放文、ブロック文、宣言文、注釈文をあげており、けっこう数が多いんだな、と思いました。正直、データ領域割当文とデータ領域解放文はそれぞれ独立しててもいいのかな、というのが素朴な疑問ですが。でも最近のアプリなどは一定時間あるいは一定の操作をすると、メモリがオーバーしてしまうらしくダウンするのですが、これなんかは割当の解放を行っていないからなんだろうと思うのですが、そういう部分の記述があるのは、有り難いなあと思いました。まあ文や式やデータを箇条書きにして、具体的な言語に即さず抽象的にそれぞれ説明するのは面白い試みだなあと思いました。

複数のプログラムをまとめたものとして、モジュールとライブラリが出てきますが、その違い、ということも言及しており、モジュールはおおまかに値や引数を渡せばよく、外部からの動きがわからないもの、ライブラリは一つ一つ明示的に使うもの、という違いがあるらしい。モジュールは中身の動きがあまり良くわからないが、ライブラリは使途用途に応じて使う、というところが違うそうだ。多分モジュールの方がサイズが大きいのでしょうね。JAVAで使われるクラスライブラリはモジュールとライブラリの中間らしい。あまりピンとはこないのですが、なるほどなあと。

今使われているかはわからないけど、BNF記法がプログラミングを記述する際にも出てきて勉強になった。wikiをみるとALgolと関係が深いようですね。遺物みたいなものはとりあえずは必要ではないけど、プログラミングのより深い部分を理解するために頭の隅にでも置いておきたいかな。

まとめてみると、Adaとかでてきたのはびっくりしたけど、手続き型、論理型、関数型についてバランスのいい記述になっているなあと思いました。ただこの一冊だけではまだプログラミングができる様にはならないでしょう。けっこう抽象度が高い本なので、時間があるときに見ればいいと思いました。


 

「アル・カーイダと西欧」 書評

 

アル・カーイダと西欧 打ち砕かれた「西欧的近代化への野望」」を読みました。ジョン・グレイ著、翻訳は金利光氏、版元は阪急コミュニケーションズという聞き慣れないところだ。訳文は読みやすくていいと思う。

 

ジョン・グレイは反グローバリズムの視点から、アル・カーイダを生み出したとする、西欧的近代を批判する。大きく言えば進歩主義一般への批判だろう。著者の視点にやや難があるとすれば、急進的イスラム主義者が西欧主義の鬼子というところだろうか。確かに著書の言う通り、イラクサダム・フセイン政権は西欧主義的政権であったことには同意したい(サダムの支持母体だったバース党共産主義を掲げている)。しかし、サダムは著書が認める通り、イスラム過激派とは一線を画しており、(ロシアの近代的形態であるところの)ソヴィエト→サダム・フセイン政権という流れを認める事はできても、ソヴィエト→イスラム過激派という流れはやや難しいのではないか。(ソヴィエトは確かにロシアにおける失敗した近代の所産だろう。著者の指摘する様に、ドイツの近代化はナチスであった様に。)

  

実際、アル・カイーダの首領、ビンラディン近代主義者とは言えないのは、彼らはソヴィエトの侵攻からアフガニスタンを防衛するという作戦に従事した事もあることから明らかだ。ソヴィエト主義者ではないし、彼らが標榜した近代主義者ではないのである。保守主義者のこじつけとしてはけっこう酷い部類になると思う。

 

どちらかというと、ビンラディン保守主義者であり、アメリカやソ連帝国主義的侵攻には煮え湯を飲まされる思いがした事だろう。だからこそ武器をとり、イスラム主義を信奉したのではなかったか?(学生を意味する、タリバン政権との親和性からも明らかだろう)彼の、サウジアラビア有数の富豪の子息として生まれ、高級車を乗り回したレバノンの学生時代からは、著者自身認めている様に噂ではあるが本当だとすると、急進主義者のものというよりは保守主義者のものである。(保守主義は金持ちが多い、この点では昨今の日本での心情的保守主義者とは歴史的文脈がそもそも異なるものである。)

 

だからそもそも、ビンラディンを西欧的理性の後継に据えようとする、著者・ジョン・グレイの試みは正しくない(近代兵器やネットを駆使するアル・カーイダがいくら近代的に見えようとも)。アメリカの押し付けがましい外交やひとりよがりの軍事的な指針こそが批難されるべきである。

 

もちろん、ジョン・グレイはこの方面では、中南米の軍事政権の手助けをしたアメリカを批判するのであり、正しいと思う。それと金融危機になった国に対してのIMFの姿勢はジョン・グレイの指摘するようなものであれば、批判すべきだと思う。無理な緊縮財政を強いる事で、さらにその国の状況を悪化させたらしい。しかもアメリカだけは例外的な扱いになっている。決して国際ルールはフェアになっていないのかもしれない。

 

また他にも、やや後ろ向きすぎるが、かれの政情判断は傾聴に値すると思う。ブッシュ政権において自由貿易は死に絶えたとする指摘がどれほど正しいかも、吟味すべきだろう。僕はかなり正しいと思いますが。。

 

結局、ジョン・グレイの保守主義はなにを目指しているのか、目指そうとしているのか、そこだけは欠落していたので、他の彼の本をあたってみたいと思った次第です。だいたい僕の感想では、多文化主義的な保守主義になると思う。この方面に期待したい。ただし、理性は死に絶える事はないと思うが・・

 

「石油をめぐる世界紛争地図」読了

 

石油というのは身近な資源になっているけれども、日本は産出国ではないので、どうやって獲得されているかはあまり良くわからない部分が多い。また石油マネーが産出国に与える影響も明らかになっていない。

 

その中でこの本は面白かったと思うのは、アメリカの石油をめぐる覇権主義(ブッシュJr.が石油会社の役員だった事にはふれてはいないが)、石油産出国の政治的不安定などに目配りができているところだろう。産出国はお金が儲かって、国が豊かになる反面、もうけの分配が王族や軍部に独裁されている状況から、格差や貧困が生まれ、政治的不安定をもたらしてしまっているようだ。基地や原発問題とも重ね合わせる事ができるかもしれない。

 

つまり産出国の貧困化であったり、不安定化は他国の資源消費に依存している状況であり、その比率は輸出で得られる利益の九割にもなるという(もちろんGDPとも連動しているそうだ)。脱却している国もあるけれど、サウジアラビアなどの輸出で有名なところは依存から脱却する事は難しいだろう。しかもサウジアラビアは9.11テロにおいて多数のテロリストの出身地でもあり、オサマ・ビンラディンの出身国でもある。石油マネーと政治的不安定の問題は結びついているのだろう。

 

もちろん、石油依存は環境を悪化させ、地球を温暖化させると考えられている。四分の三は石油系の物質を燃やして得られる二酸化炭素が原因で、温暖化が起きているとすれば、消費量を減らす事は人類共通の願いであるはずだ。だが、この本の執筆時点では、京都議定書は発効しておらず、暗礁に乗り上げられていたため、これからどういう風に環境への目線を定めていくのかはそこまで書かれていなかった。(現時点では発効しているらしい→ http://www.team-6.jp/about/kyoto_protocol/kyoto_protocol.html )

 

アメリカの石油への執着は問題として取り上げられているが、アメリカ自身は産油国でもあり、石油の値段の高騰は実はアメリカ国内において内需を発生させる事もあり得るという。そういう意味では、アメリカとアラブ側のOPECの利害が一致する事もあるのだろう。

 

資源問題は同時に地政学的なものである、という主張も本書に特徴的な事だと思う。確かに、今日の領土問題や独立問題は背後に石油資源の存在があるし、密接に絡んでいるようだ。北海油田などの開発で海から資源を調達する方法は確立されており、値段も安く抑えられるらしい(といっても個人では大金には変わりないけど)。中国との尖閣諸島問題も半分くらいは資源問題になると思う。

 

ロシアの資源を日本と中国どちらに送るか、ということも地政学的ではあるが、当時ロシアは日本側に天然ガスのパイプを通したいらしく、政治的、経済的な問題でもあるだろう。中央アジアの資源が欧州に運ばれているという話だけど、この問題に関しては中国と団結した方が地政学的には正しいと思われる。(しかしロシアは日本に天然ガスのパイプラインを通すという計画は中止と発表したそうだ→ http://japanese.china.org.cn/jp/txt/2012-07/04/content_25806128.htm 日本大丈夫か?)

 

独立問題については、最近自衛隊南スーダンに送られたけれども、あそこも石油が出るという事で紛争地になっているそうだ。日本の派遣もかなり石油を意識したものかもしれない。資源獲得競争に名乗りを上げるのは結構だけど、紛争地であるにせよ、もうちょっと平和的な路線で貢献してもいいとおもうのだが。。ひょっとしたら日本も石油が出てくる地域があれば、独立運動なんて動きになっていたのかもしれないですよね。そういう意味ではなくてよかったのかもしれないですが。どうなのでしょうね。