はじめてのオセロプログラミング2 プログラムを書き始める前に

今回から、オセロプログラミングを実際に書いていく過程を紹介したいと思います。

しかし、その前に、オセロをプログラミングで実現するには、何から始めればいいのか、そのとっかかりが分からないというのが正直なところだと思います。

実際、私自身オセロを作ってひとりで遊べるようにしてくださいと言われたときは、「はい」と元気よく返事をしたものですが、よく考えてみると何から始めていいのかさっぱりでした。

とりあえずインターネットで検索すると、色々なものがヒットするのですが、そこに書いてあることを自分の中に落とし込むことに苦労したことを憶えています。

2日間位検索を続けるだけで、コードを書き始めることすらできなかったと記憶しています。

オセロのルールは調べなくてもわかりますし、誰かとオセロで遊ぶこともできますが、それをプログラムで書くとなると、まったく次元の異なるものの
ように感じられました。

それこそが、プログラムを書いた経験のない当時の私にとって大きな壁となっていました。

プログラムの基本的なこと(ifやforといった文法)は一通り学習したはずですが、それを使ってプログラムを構築するとなると途方にくれました。

 

では、どのように考えればいいのか?

プログラムを書くとはコンピュータにとってわかりやすい文章を書くことだと考えています。

それは、決して0と1で書けということではなく(ここでは、C#という言語で書いていきます)、オセロのルールをコンピューターにとって分かりやすいように翻訳してみるということだと捉えていただければいいかと思います。

受験勉強で英作文を勉強していた時に、和文英訳はまず和文和訳するという段階を経るとやりやすくなるということを教わったことはないでしょうか?

もちろん、最初から直接英語に訳すことができる人もいますが、まずは、訳したい日本語を英語で表現しやすい同じ意味を持つ日本語に訳すというステップを踏むと
最終的にはすっきりした英訳ができるはずです。

これと同じことをプログラムを書いていく前にやってみましょう。

 

もう一つ、先ほどコンピューターにとってわかりやすいと書きましたが、コンピューターにとって分かりやすいとは具体的に何なのでしょうか?

私は特にコンピューターの気持ちが分かるわけではありませんし、分かるようになるにはまだまだ時間がかかりそうです。
毎日エラーばかりが表示され、自分の思うように動かないコンピューターを殴ってやりたい気持ちでいっぱいでした。

 

ヒントはC#というコンピューター言語です。

C#オブジェクト指向という分類がされるコンピューター言語の一種です。

オブジェクト指向とはコンピュータ―に興味のある人なら聞いたことがあると思います。

オセロプログラムを書くためにまず必要なのは、オセロゲームをこのオブジェクト指向に分類されるC#という言語で表現しやすいように翻訳するということになります。

 

次回はオブジェクト指向をオセロに適用していく過程を見ていきたいと思います。

 

はじめてのオセロプログラミング

システムエンジニアを目指して現在はプログラマーとして勤務する日々です。

そろそろプログラムに関することも書いていきたいなと思い、まず初めの一歩として、私が初めてプログラミングに触れたときのことを書いてみようと思います。

はじめてプログラミングを勉強したのは2年前の入社時のことです。

主にC#SQL Serverを使用しているので、この2つをメインに書いていこうと思います。

ご存知のように、すでにプログラムのことについて書かれた記事はたくさんありますし、私より高度な知識を持っている方は大勢いらっしゃいます。

私自身そうしたサイトを調べつつプログラムを書いているというのが現状です。

エンジニアとはいえ、すでに出来上がったサンプルを利用しない手はないですから、効率の面では検索は欠かせませんね。

しかし、こうしたサイトに書いてあることは、プログラムのことをある程度は知っていないとすぐには利用できないものであるので、これらを上手く利用するための考え方に重点を置いて書いていけたらと思っています。

やはりどんなことでも基礎の部分が一番大切であり、これさえ押させておくことができれば、あとはサンプルを検索してコピペでもプログラムは書けるものです。

少しでもプログラムに対する意識が変わることに貢献できれば幸いです。

まずはじめに、実際に私が新人としてプログラムを学んだ過程を通して、プログラムに対して素人であった自分が何を思い、どうプログラムと向き合ったかについて紹介していきたいと思います。

さっそく、題材として取り上げるのはオセロゲームをプログラミングすることです。

これは、新人に対して課された課題でした。いきなりオセロを作ってくださいと言われて、正直面食らったのを今でも憶えています。

しかし、今振り返ってみると、この課題がプログラムを勉強する上で非常に役に立つと改めて感じているので、是非とも紹介していきたいと思います。

それでは、続編をお楽しみに。

お得に海外旅行3

前回に引き続き、お得に海外旅行を楽しむ方法を紹介したいと思います。

前回は目的地の直接入ることはせずに、近くの大都市を選択してみるということを紹介しました。

今回はLCCの利用をお勧めしたいと思います。

 

ストックホルムに到着したのち、ポーランドワルシャワまではLCCを利用して行きました。

ストックホルムからワルシャワまでは2千円で行けました。

ヨーロッパで一番有名なのはアイルランドの航空会社、ライアンエアーでしょう。こちらはさらに安く、1000円を切っていましたが、予定が合わなかったため、ハンガリーLCCウィズエアーを利用しました。

ヨーロッパの都市間でしたら、3000千円もあれば、大体の所へ行くことができるのが、LCCを利用する大きなメリットでしょう。

なので、ヨーロッパの場合はひとたび現地につけば、あとは好きなところへLCCで回ることが十分可能です。なので、前回は一番安い方法でひとまずヨーロッパに入ることをお勧めしたのです。

しかし、LCCを利用する際にはいくつか注意点があります。

 

・預入荷物は基本有料

・手荷物持ち込みには大きさに制限あり

機内食は有料

・航空券の予約はすべて自己手配

・空港は主要都市から離れたところにある

・出発、到着は早朝、または深夜になることも

 

安い分、制約が多いと感じるかもしてませんが、これさえクリアできれば、数千円代で飛行機移動ができることを考えれば、利用する価値は十分にあると思います。

有料になるだけで、全てのサービスを申し込んだとしても1万円くらいでは収まるので、依然として、安い水準にあると思います。

荷物は必要最低限のものにして、身軽に移動できるようにしたほうが楽しいと考えているので、旅に出るときはリュック一つだけ持って行きました。LCCの制限に引っかからない荷物というのは旅をする上で一つの指標となるのではないでしょうか。

重い荷物を運びながら、旅行している人が多いですが、必要になるものは意外と少ないもので、本当に必要なものは現地で調達して、そのままお土産にすればいいでしょう。そうしたことも旅の思い出となること間違いなしです。

旅の思い出が荷物によって身動きが取れなくなり、疲れた印象しか残らないのは非常に残念なことだと思います。


LCCは基本的に中短距離に就航しているため、長距離の路線はほとんどありませんが、乗り継いでいくことで、お得に世界一周なんてことも十分可能です。


羽田からエアアジアでマレーシア、そこから、インド、ドバイを経由してヨーロッパ、アメリカへと乗り継いで、そのうち世界一周をしてみようと考えています。

 

以上、お得に海外旅行として、主に3つを紹介してみました。

旅の楽しみ方は人それぞれなので、皆さんの楽しみ方はどのようなものですか?

お得に海外旅行2

去年の9月にシルバーウィークをつなげて10連休を作って会社員になってから初の海外旅行を敢行しました。

正直、卒業旅行が最後かと思ったのですが、意外といけるものですね。

 

学生のときの旅とは違って、贅沢なものにすることもできましたが、結局、以前の貧乏旅行の形になりました。まだ学生の考えが抜けきっていないのでしょうか。

 

今回の目的地はポーランドにしました。そこでの話はまたおいおい書いていくことにします。

 

ここで、前回紹介したオープンジョーとストップオーバーに加えて、もう一つお得に海外旅行をする方法を紹介したいと思います。

この方法は特にヨーロッパとアメリカを目的地とする場合に利用できると思います。

今回おすすめしたいのは、目的地へダイレクトに行くのではなく、まずは近くの国へ行ってみるという手段です。

 

ポーランド行きの航空券は日本からの直行便もありますが、調べてみるとこれが結構高い。(2016/9現在往復で約13万円位でした。)

この値段だと行くのは断念しようかと考えました。しかし、わざわざ直行便にこだわることをやめて、乗り継ぎ便を探しましたが、こちらもそれほど安いわけではありませんでした(11万円位)。

ヨーロッパの場合、日本から行くメジャーな路線を探してみると値段が下がることがよくあります。これは航空券に限った話ではありませんね。

ロンドンや、パリ、フランクフルトなどの大都市に行く便は比較的安い傾向にあります。

ポーランドへの直行便があるとはいえ、やはり、まだ人気のある路線であるとは言えないのが現状でしょう。

上記の都市なら、便数も多いですので、予定も立てやすいのではないでしょうか。

今回の場合はストックホルムが安かった(7万8千)ので、まずはこちらを目的地としました。

帰りの便は、日本とストックホルムを結ぶ路線がある航空会社の中で、ストックホルム以外の都市からも利用できるものを選びました。(オープンジョー

目的地はポーランドなので、ストックホルムに入った後にまた戻ってくるのは面倒になるので、帰りはハンガリーブダペストにしました。

探し方は日本と行先を結ぶ航空会社のサイトで旅程と合致しそうな就航都市のある航空会社を探してみることです。

今回の場合は中国国際航空ストックホルムブダペストに就航していたので、こちらにしました。さらにうれしいことに、中国国際航空は羽田から出発するため、それもうれしい特典でした。

ちなみに、2016/9月ではフランスでのテロの影響もあってか、パリ行きの便が格段に安くなっていました。また、トルコ航空に関してはさらに安く、5万円代(燃油代込み)から販売していました。航空券の値段は、燃油代と国際情勢を色濃く反映していることを実感しました。

 

今回は、目的地とする場所へ直接入るのではなく、周辺の大都市を検索してみることを紹介しました。

次回は、本来の目的地に行く方法を紹介します。

 

お得に海外旅行

皆さんの旅のスタイルはどのようなものでしょうか?

人それぞれ思い思いの旅のスタイルがあるかと思いますが、ここでは、私が学生時代から積み重ねてきた旅のスタイルを紹介したいと思います。

基本的にはノープラン一人旅なので、まずは、行ってみたい所を決めたら航空券を予約します。

航空券の買い方でお勧めがあるので紹介します。

今回は2つ、オープンジョーとストップオーバーについてです。

 

・オープンジョー

オープンジョーとは、「開いた顎」を意味します。ジョー(jaw)とは顎のことで、映画「ジョーズjaws)」もここからきているのですね。

航空券でいうところのオープンジョーとは、目的地と出発地が異なる都市になることを指します。

地図上で出発地、目的地を結ぶと開いた顎のようになるため、オープンジョーというのですね。

つまり、帰りの飛行機に乗る際にわざわざもと来た道を帰る必要がなくなるということです。

これだけでも、旅のプランの自由度が増すのではないでしょうか。

航空券の中には複数都市訪問可能というものが多いので、それを利用して行きは○○で飛行機を降りて、帰りは□□で飛行機に乗って帰るといったことが可能となります。

 

・ストップオーバーについて

ストップオーバーとは、「途中降機」を意味します。乗り継ぎ便を待つ間にその都市に少し滞在してみましょうというものです。

これを使えば、乗り継ぎ便の中継地に立ち寄ることができるようになり、旅の面白さも増えることでしょう。

例えば、ヨーロッパを目的地とした旅の場合、直行便の場合は、目的地との往復のみとなり、それ以外のところを見て回ることはありません。

しかし、ストップオーバーを利用すれば、目的地を増やすことができます。

私の場合、一度中東系の航空会社を利用して、ドバイの観光を兼ねてヨーロッパを見て回ったことがあります。

一回の旅で複数の地域を旅することができるので、おすすめの方法です。

さらに、この方法がよいところは、二つの異なる文化圏をまとめて見て回ることができるという点です。

中東系の航空会社の場合では、イスラム教圏の国と最終目的地であったヨーロッパのキリスト教圏の二つの地域を見ることができます。

昨日はイスラム教のモスクや暑い砂漠の地域にいたかと思うと、次の日にはキリスト教の教会やヨーロッパの街を歩いているといった体験ができます。

こうした対比ができるのは大きな魅力であると感じています。

直行便では、なかなか味わえない体験をしてみてはいかがでしょうか?

 

 

7つの習慣

7つの習慣 スティーブン・R・コビィー著 川西茂訳 キングベアー出版 1996

 

知り合いのフリーランサーにおすすめされたので早速読んでみました。

この本は自己啓発本の中でも根強い支持を得ているものであるらしい。

普段はあまりこの手の本は読まないのだが、自分で読む本を選んでいると段々と自分の殻に閉じこもってしまう傾向にあるため、こうした知り合いからの勧めというのを積極的に利用していこうと思った。

おすすめの本があればぜひ紹介してください。


7つの習慣とは?

1.主体性を発揮する
2.目的をもってはじめる
3.重要事項を優先する
4.winwinを考える
5.理解してから理解される
6.相乗効果を発揮する
7.刃を研ぐ

さらに、これらは3つに分類される。

1.私的成功に関わる分野 123

2.公的成功に関わる分野 456

3.1.2を包括する分野 7

この3分野が相互作用をもたらすことで、人生の成功がもたらされる。
この中には段階が存在し、第一のステップができてから、第二のステップに進むことができる。
つまり、私的な成功がなければ公的な成功はあり得ないということになる。

意味のある変化は内からはじまり、外へと広がる。
確たる自立した個があってこそ、その先の他者との相互作用を生みだすことができる。


以下、印象に残ったフレーズとそれについて感じたことについて

 

1主体性を発揮する

「人間の本来の姿は主体的なものである。だから、意識的な選択にせよ、無意識的な選択にせよ、もし自分の人生が今までの条件付けや周りの状況にコントロールされているとすれば、それは、そうしたものに主導権を譲った結果にほかならない。」

主導権を譲るとは、自分の人生ではなく、他人の人生を送っていることになる。自分に当てはめてみるとどうだろうか?
何かを誰かのせいにしていないだろうか?最初の習慣として自己責任、自立ということが最初の習慣として挙げられたが、正直、最初から痛いところを突かれてしまった。

 

第2の習慣 目的を持って始める

最初にイメージトレーニングが提示されるが、これがかなり深い。

「自分の葬式場を想像して、
集まってくれたそれぞれの人たちから(両親、配偶者、子供、友達、仕事の上司、同僚、属するコミュニティの人)、あなたの人生について、何と言ってほしいだろうか。・・・あなたは、皆に自分のどういうところを見てほしかったのか。どういう貢献や業績を覚えていてほしいのか。その場に集まっている人、それぞれの顔をよく見てもらいたい。彼らの人生にあなたはどういう影響を及ぼしたかったのだろうか。」

この質問に対してどれほどの人が明確な答えを持っているのだろうか?

いまだに自分の中で考え続けていることである。ここで大事なのは、このイメージとレーニングには様々な立場の人がいることである。自分とは決して一人ではなく、他者との関わりの中でこそ、存在するものであることを改めて実感させる。

「目的を持って始めるということは、目的地をはっきりとさせてから旅立つことである。目的地を知ることで、現在地もさらによく分かるようになるし、いつも正しい方向に向かって歩み続けることができるようになる。「活動の罠」―日々の生活の忙しさに追われ、やっていることそのものになんの意味があるかどうかを考えないありさま―の中に自分自身を見失い、成功のはしごを昇りつめて頂上に達した時、はじめてそのはしごはかけ違いだったと気がつく人がなんと多いことだろう。非常に忙しい毎日を送りながらも、その活動自体が、実は自分の最終的な目的とは何ら関係がないという可能性が大いにあるのだ。」

「活動の罠」、これに自分も引っかかっていることに気づかされた。会社員として働きはじめてからこういった状況に陥っているのかと改めて感じた。なぜ、こういった状況に陥っているのかを考えてみると、実はその状況が楽だからなのではないかとも思えてくる。目の前のことにさえ集中していれば、余計なことを考えないで済む。何を考えなくてよくなるのか、それは、先ほどのトレーニングで問われた、自分は心から何を望んでいるのかということになるのだろう。周りが自分に望むことより自分が自分に望むことにこそ耳を傾けるべきなのだと強く感じた。これも自分の人生を歩むためにまずやるべきことなのだと強く感じた。

「多くの人々は、自分の価値観や人生の目的を明確にすることなく、能率的な自己管理や目標達成ばかり気にして生活するのである。」

リーダーシップとマネジメントについて述べたことで、多くの人はマネジメントはできるが、リーダーシップを発揮することができていないことを示している。
自分自身に対してリーダーシップを取れなければ、いくら効率を求めて自分自身をマネジメントしても目的地がどこになるかは不明となる危険性がある。リーダーシップとマネジメント、2つの順番を間違えてはいけない。大切なのは、ゴールがあってこその効率化なのだろう。

 

3.重要事項を優先する

重要事項とは、自分にとってはまずゴールを設定することであると感じた。優先順位をつけることが重要なのは、ビジネス研修でも再三言われ続けてきたことだが、それよりも重要なのは、自分にとってのゴールを見つけることだろう。

 

4.winwinを考える
winwinこそ最善の選択となるとはよく言われそうなことだが、もし、この関係になれないのであれば、合意しないことに合意するという、No Dealの道を選択することも大切であるということは発見であった。

 

5.理解してから理解される
「人に影響される余裕を持つことこそ、他人に影響を及ぼす鍵である。」

理解されることが先であって、決して理解されることをいそいではいけないことを戒められた。最近よく聞く「聞く力」ということにつながっているのだろうと思った。コミュニケーション能力という言葉は数年前に就職活動をしたときによく聞いた言葉だが、ただ、自分の意見を一方的に言えばいいということではないということが、このことからもよくわかる。


7.刃を研ぐ
「自分の安定は、今の仕事や会社に依存するものではなく、自らが持っている生産能力から生み出される―考え、学習能力、創造、変化対応能力―モノである。それが本当の意味での経済的自立である。本当の安定は、財産を持つことではなく、財産をつくり出す能力を持つことである。つまり、外的なものではなく、内的なものなのである。」

成長の螺旋
学び、決意し、実行するの繰り返し

初めまして

初めまして。当ブログを訪問いただきありがとうございます。

 

自己紹介

現在は新米プログラマーとしてSEを目指して日々勉強と奮闘を繰り返す日々を過ごしています。

就職する前は都内の大学で考古学を勉強していました。

考古学とプログラミング、まったく異なることをしていますが、「全ては経験」をモットーに様々なことに挑戦し続けていきたいと考えています。

最近強い興味を惹かれているのが深層学習をはじめとした人口知能の分野です。

数学に躓きながらも、何とか実装までできるよう勉強中です。

 

当ブログの主要テーマ

・旅

・プログラミング

・読書

・考古学

・語学

以上5つをメインとしてブログを書いていきたいと思います。

 

よろしくお願いいたします。