表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
23/37

第二十一話 初めてのプログラム



 翌日、俺は授業が終わると部室へと向かって行った。

 昨日出会った女の子の事を思い出してた。彼女とは途中で別れたが、そのうちまた逢えそうな予感がしていた。

 ただ一つ、気になっていたことがあった。



 部室では立花先輩と西原さんが既に来ていた。

「あ、イツキくん、今日もよろしくね」と先輩はにこりと笑みを見せた。

「うぃーす、先輩。西原さんも」

「あら、来ましたね。さっきから立花先輩とイツキくんのこと、話してたんですよ」

 一体、なんの話をしてたやら。

 俺は自分の席へと向かいながら、気になっていた事を先輩に尋ねた。

「先輩、Lispって知ってますか?」

「え、そりゃ知ってるけど。関数言語でしょ? あたしはちょっとEmacsを拡張するのでしか使わないけど」

 先輩は、それがどうしたって顔をしている。

「関数言語?」

「うん。Cを含めた大半のプログラミング言語は手続き型言語ってカテゴリーに入るのよ。後から作られたC++、C#、Javaとかはオブジェクト指向言語ってのに進歩しているけど、基本は手続き型ね。でも、Lispは違う。関数型って言って、かなり変わっているわよ」

 そう言ってから、先輩は俺をまじまじと凝視した。

「ふーん、イツキくん、Lispに興味あるの? へぇー。やるじゃない、ハッカーへの第一歩ね」

「い、いや。ちょっと小耳にはさんだだけだよ」

「なんだ」先輩はくすっと笑った。「ま、Lispは、プログラマなら誰もが一度は挑戦したいと思う言語ね。パソコンの父、アラン・ケイは、Lispを『これまでに設計された最も偉大なプログラミング言語』って言ってるわ」

「へえ。そうなんだ」

 アラン・ケイなんておっさんは知らんが、先輩がそこまで評価しているのなら、きっと凄い言語なのだろう。

 それを使いこなしていた昨夜の少女はいったい……?

「でも今はイツキくんは、Cに専念したほうがいいわね。あれこれと色んな言語を齧っても、どれも使いこなせないのなら意味ないわよ」

「そうですね」

 これで、話は終わり、俺は自分のPCの前に座るとブートをかけた。



「それじゃあ、イツキくん。早速始めようー」

 Windowsの画面が表示されると、先輩は溌剌と言った。

 うむむ。ついに来てしまった。俺の初プログラミング。

「イツキくん、頑張ってくださいね」と西原さんも横で応援する。

「しかし、何を作ればいいのやら」

「そうねぇ。最初はすごーく簡単なものから始めるといいわよ。例えば……数当てゲームとか」

「数当てゲーム?」

「うん。たとえば1から10までの数の中から、ランダムに決めた正解を1つ作るでしょ。で、プレイヤーが数を入力して、それが正解かどうか判定するってやつ」

「えらい簡単な内容ですね。今時の3DFPSなんかと比べれば」

 比べても仕方ないが、それでも……だ。

「馬鹿にしちゃダメよ。これでも、ゲームプログラミングについて多くの事を学べるんだから。たとえば、メインループとか」

「メインループ?」

「ゲームは常に、プレイヤーからの入力、判定、出力をループさせ続けているの。これは、どんなゲームもそう。3Dのゲームとかも、単純に言えば、マウスやジョイスティックでの入力、そしてプレイヤーキャラや敵キャラの移動の計算、移動結果を画面に表示、音を鳴らすを繰り返しているだけなのよ」

「ううむ。なるほど。なら、まずは数当てゲームをやります」

 俺は覚悟を決めた。

 いくぞ、京塚イツキ! 俺の華麗なるゲームプログラマの道が、いま始まるのだ!



/* 数当てゲーム kazuate.c */

#include<stdio.h>


int main(void)

{

    int seikai = 5;

    int kazu;


    printf("数当てゲーム \n");

    printf("数を入力してください(1 - 10) :");


    return 0;

}


「とりあえず、ここまで書いたが……」

「ま、イツキくんにしては上出来ね。出来れば変数とか英語にしてほしいけど」

 先輩は苦笑する。この女、いつも一言多いな。

「まあまあ。ちなみにC#だと、日本語文字の変数も出来るんですよー」と西原さん。

「ところで、正解は5で固定しましたが、ランダムって……」

「ランダム知らないの? デタラメに選ぶ数のことよ。サイコロを振って決めるようなの。ま、後でやり方は話すから、今は5で固定しておきましょ」

「ふむふむ。次は、入力ですよね」

「文字の入力は、scanf関数……は、やめておいて、前に話した──」

「完全に忘れました」

 俺は白状した。

「でしょうねぇ……」先輩もため息をつく。「思い出させてあげる。fgetsとsscanf関数を使うのよ。詳しくは第八話を見てね」

「うむむ。では、こうかな?」

 俺はコードを付け加える。



/* 数当てゲーム kazuate.c */

#include<stdio.h>


int main(void)

{

    int seikai = 5;

    int kazu;

    char buf[100];


    printf("数当てゲーム \n");

    printf("数を入力してください(1 - 10) :");

    fgets(buf, 100, stdin);

    sscanf(buf,“%d“,&kazu);


    printf("正解は、 %d です!\n" , seikai);

    return 0;

}



「上出来上出来。じゃ、とりあえずここまで走らせてみようー」

 先輩の言葉に俺は頷き、コマンドプロンプトを開くと、自ら入力する。


C:¥sample>gcc -o kazuate -Wall kazuate.c_


「どきどきするな……」俺は呟く。

「始めてのプログラムだと、誰でもそうよね。エラー無いかな、とか、ちゃんと動くかなー、とか」

「ええ。じゃ、やりますよ」


 意を決すると俺はエンターキーを押した。

 gcc、俺を裁いてみやがれ!!

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ