Kozo Okano
 

高校生体験入学 Javaプログラミング入門

Java プログラミング入門

ここでは, ごく簡単にプログラミングのさわりを紹介します. 当学科では, 1年生のときに じっくり1年間プログラミング入門の授業を行い ます(以降高度なプログラミングの授業があとにも続きます). その授業では最初の一歩からシステマチックに授業が行われますが, ここでは, ごく簡単にさわりだけ紹介していきます.

今日の紹介で使用する言語は Java 言語です. この言語はオブジェクト指向言語として有名なものですが, 今回の入門 授業ではこの話はしません. 興味あれば, 院生に質問してみるのもよいでしょ う. また, 家でPCを使っているのであれば無料で使える言語ですので, 興味があれば, このあと家でじっくり取り組むの もよいでしょう. でも, 大学受験の勉強が当面は大事ですよ.

プログラミングとは何?

プログラミングとは, 簡単にいえば, コンピュータに実行してほしい ことを伝達する作業です. 実行してほしい内容を 書いたものが(ソース)プログラムと呼ばれるものです. これは, 一般に, 人間にもコンピュータにも両方にわかる形(自然語に近い言 葉)で書かれていますが, コンピュータはこれを高速に実行するのは 苦手です. これをコンピュータの理解しやすい表現に置き換える作業を コンパイルと呼びます.

コンパイル作業そのものはコンピュータがします. できあがったものが実行ファイル と呼ばれるもの(普段みなさんが使っているソフトウェアはほとんどこのような 実行ファイルです)です. コンパイル作業を行うためのソフトウェアはコンパイラと呼ばれます.

プログラミングの難しさ(そして, 面白さ)は, いかに, 正確に, コンピュータに, 自分の意図を伝えるかというところです.

何をつくるのか

時間がありませんので, ある程度できてるプログラムを変更していくことに より, プログラミングの雰囲気をつかんでいただきたいと思います. 目標は, 昔懐かしい「数当てゲーム」です.

Note
このゲームに関して知っていることがあれば教えてください. 筆者は小学校の一時期にクラスで流行ったことを覚えています. 名前とか, ヒントの呼び方とかは忘れてしまっています.

2Dグラフィックスの基礎にも少し触れてみようと思います.

数当てゲームの概要

コンピュータはあらかじめ, 3つの数字(各数字は 0から9)をランダムに きめておきます(但し各数字は異なっているものとします). 我々(ユーザ)はそれを当てることになります. ユーザが入力した数字が順番も含めて一致すればユーザの勝ちとなります. 一致しない場合は, コンピュータは次のヒントを出します. このヒント を手がかりに, 少ない挑戦回数でいかに当てるかが勝負です.

ヒント

数字が, 順番を含めてn個所一致していたら, 「n hit」と返します.
たとえば, コンピュータがきめた数字が「1,7,8」のときに ユーザが「0,1,8」といれれば, 最後の8が順番(3番目)を含めて 一致していますので 「1 hit」という答えを返します.
当然,「3 hit」はユーザの勝ちと同義になります.

一方, 数字は一致しているけれども順番までは一致していない場合は その個所の数をmとするとき, 「m occurrence」と返します.
先ほどの例では, hit と合わせて 「1 hit 1 occurrence」というヒントが返るようになります.

数当てゲーム

最初の一歩

まず, プログラミングの流れを理解しましょう.

  1. ソースプログラムの記述
  2. コンパイル
  3. 実行

の3つを繰り返しながらプログラムをすることになります. プログラムの記述にはエディタと呼ばれるアプリケーション ソフトウェアを用いて行うことになります. Numbers.javaをエディタでみてみましょう.

Note
院生は ディレクトリ1に移動し, エディタの起動を手伝ってください.

今回はソースプログラムを変更しないのでそのままエディタを終了しましょう.
次にソースプログラムから実行ファイルを作成します. javac Numbers.javaと打って実行してください. コンソール画面の使い方は院生に遠慮なく聞いてください.

エディタによっては, そのまま, 続けて, コンパイル作業に入れるものも あります.
この場合は, 「エディタを終了し, コンパイルをする」というような文を 「編集作業をセーブし, 続いてコンパイルをする」というように読み替えてく ださい.
たとえば, jcpad というエディタの場合は, 「ファイル」メニューから, 「上書き保存」を選択し, 編集内容を ファイルに書き込んだ後, 「実行」メニューから「コンパイル」を 実行することになります.

Numbers.java をコンパイルした結果, Numbers.class というファイルが作成されます. これが実行ファイルです. この実行ファイルを実行するには java Numbers と実行してください. Windows ではDoubleClickで 実行できるかもしれません.
jcpad を用いている場合は, 「実行」メニューから「実行」を実行するのも1つの方法です.

  • 開発途中バージョンのため右上にコンピュータがランダムにきめた 三つの数字を表示しています.
  • Quit ボタンを押すと終了します. 再実行してください.
  • New ボタンを押すと新規ゲームがはじまります. 押すたびに 右上の数値が変わるのが確認できます.
  • 数字ボタンを押してユーザの数字をいれます. 間違えたときはcancel ボタンでキャンセルできます.
  • confirmボタンで決定ですが, 現バージョンでは ボタンを押しても, ヒントがでません. ここをこれから, 改良していきましょう. なお, confirm を押すと, moves の数値が1つ上がります.
Numbers.class

これを改善しながらプログラミングを覚えましょう.

次に進みましょう.