近コンブログ
- トップページ
- 近コンブログ
はいこんにちは!!
クリエイタ学科の木村です。
今回は1年生の授業紹介です。
授業が始まって約3か月、新しいクラスにも慣れ、
休み時間には笑い声が多く聞こえます。
モチロン授業もどんどん進んでいます。
実習授業では主に「C言語」の学習を進めています。
基本的な「入力」「出力」「演算」「分岐」「繰り返し」などの
コンピュータに命令を与えるための記述を学習しています。
そんな中「分岐」までを勉強する事で、作れるようになるゲームがあります・・・。
それは・・・
そう!拳の格闘技!ジャンケンですね。
誰もが知っているこのゲーム、色んな場面で活用されていますよね。
このジャンケンというゲーム、みなさんご存じのとおり、
「グー」「チョキ」「パー」の3種類の手の組み合わせで勝敗が決まります。
「グー」は「チョキ」に強く「パー」に弱い。
「チョキ」は「パー」に強く「グー」に弱い。
「パー」は「グー」に強く「チョキ」に弱い。
このようにそれぞれの手が、その他二つに対して
「強い」「弱い」といった強弱が設定されています。
これを三すくみの関係と呼びますね。
三すくみの関係と聞いてピンとこなくても、
ゲームの弱点属性なんかを想像してもらえれば、
わかりやすいのではないでしょうか。
さて、実際にこのジャンケンをプログラムで表現しようとすると、
実は色々な事を考えなければなりません。
—————————————————————————————
例えば・・・ ・
グー、チョキ、パーをどのようにプログラムで表現するのか?
・「勝敗」や「あいこ」はどのように判断すれば良いのか?
・3回勝負な!となった場合はどうしようか?
—————————————————————————————
友人同士でジャンケンをする場合、これらの事を考えませんよね。
手の出し方は分かっているし、勝敗なんてお互いの手を見ればわかります。
ですが!コンピュータは「ジャンケンのルール」なんてものは知らないのです!
プログラマーがプログラムを通じて「教えてあげる」必要があるんですね。
コレがプログラマーとして一番おもしろい所だと木村は思っています。
先ほどあげた例であれば
—————————————————————————————
・グー、チョキ、パーをそれぞれ「1,2,3」などの数字に置き換える。
・数字の組み合わせで「勝敗」や「あいこ」の判定を行う。
・「繰り返し」処理を活用してみる。
—————————————————————————————
このように、現実の遊びをプログラム的に変換していきます。
お互いの手が数字で管理できるようになると、次のようなプログラムが記述できます。
if(my_hand == 1 && npc_hand == 1)
{
画面に「あいこです。」と表示する処理
}
これは「分岐」処理の一つである「if文」というものになります。
どのような内容を書いているのかというと、
my_handにはプレイヤーが「自分で選択した手の番号」が設定されています。
npc_handには「ランダムで選択された手の番号」が設定されています。
その2つの情報、お互いに「1番が設定されているか?」をチェックします。
お互いが1番であった場合、
同じ手を出した→ジャンケンのルールでは「あいこ」である。
という判断ができます。
そこで、パソコンの画面上に「あいこです。」といったメッセージを表示し、
アプリを起動させたユーザーに結果を伝える、という事になります。
自分の考えた通りにプログラムが動作すると、ついこんなポーズが出ます。
やったぜ。
今回は「あいこ」の場合のプログラムを例として書いてみました。
当然、他にも「勝った」「負けた」といった要素も存在しますので、
それらもプログラムで構築していく必要があります。
実際の授業では、これらの内容を1コマ(90分)の間にほとんど終わらせます。
最初は、グーチョキパーとかどうすんねん!!という声も聞こえていましたが、
徐々にヒントを出す事で、自ら考え、解決に至っていました。
普段の何気ない遊びをプログラムで表現する、という事は簡単に見えて実は難しいんです。
そういった点から、プログラムの練習にはもってこい!というわけですね。
長文になりましたが、読んでいただきありがとうございます!
次回のブログも楽しみにしていただけたら嬉しいです。
クリエイタ学科の木村でした!