- Q.
-
講義と直接関係無いのですが失礼します。
自宅のMachintosh(OS X)でもemacsを使用したいのでGNUからダウンロードしてインストールを試みたのですが、エラーになってしまいま
す。
具体的にはターミナルで
$$$$$$ ./configure
と入力すると
loading cache ./config.cache
checking host system type... powerpc-apple-darwin8.3.0
configure: error: Emacs hasn't been ported to `powerpc-apple-darwin8.3.0' systems.
Check `etc/MACHINES' for recognized configuration names.
というメッセージが出てきます。これはどうやって解決すれば良いのですか?
- A.
-
ソースからmakeするのはそれなりに大変なので,パッケージシステムを使って導入した方が良いでしょう.
MacOS 10.3の場合は,東大finkチームが作成した情報処理ナビゲータ6付属のCD-ROMでfinkパッケージシステムをインストールす
るのがおすすめです.ただ,最新のMacOS 10.4ではこのCD-ROMでインストールしたemacsは不具合が発生するようです.finkの機能を
利用してソースからコンパイルさせれば良いかもしれませんが,
http://home.att.ne.jp/alpha/z123/emacs-mac-j.html
などの
バイナリパッケージをインストールする手もあります.
- Q.
-
GameSolver.javaについて(3)と(4)について、メソッドgetやanswerTypeを使って、(3)をget(j),
(4)をanswerType(nextQuestion)としたのですがコンパイルできません。highLowProblemクラスのメソッドを使ってはいけないので
しょうか。
- A.
-
メソッド呼び出しの方法を思い出してください.
- クラスメソッドは,「クラス名.メソッド名(引数
1, .., 引数n)」
- インスタンスメソッドは,「式.メソッド名(引数
1, 引数2, ... , 引数n)」
- 同じクラスのクラスメソッドの呼び出しでは「クラス名.」を省略できる.
- インスタンスメソッドから,式として「this」(自分自身)を指定してインスタンスメソッドを呼び出すときは,「this.」を省略できる.
ことになります.クラスGameSolverの中から,クラスProblem およびそのサブクラスで定義されたインスタンスメソッド
get, answerTypeを呼び出すときの文法は 2 になります.3 や 4 の場合には該当しないので,メソッド名だけで呼び出すことはできません.
- Q.
-
載っていたものをコピーしてコンパイルしたら最後の方の部分で
Janken.java:41: 式の開始が不正です。
public static void main(String args[]) throws IOException{
^
と出ましたが、どこを直したらよいのですか?
- A.
-
マウスで範囲を指定して「コピー」->「貼付け」をおこなったのではなく,キーボードから入力したのでしょうか?
問題のエラーは,入力の際に閉括弧「}」を入力し忘れた時のエラーに見えます.また,マウスでコピーした場合は,
問題の行は44行目になるはずですが,エラーメッセージを見ると41行目でエラーが出ているようです.
- Q.
-
受講者同士の対戦をしようと、ファイルを実行しても、処理が止まったり、Exception,,,,,などと表示され、実行できないんですが、なにが問
題なんでしょうか?
- A.
-
受講者同士の対戦は,受講者が2名ほぼ同時に接続しないと実行できません.一人しか接続しない場合は,
「処理が止まったり」するように見えるかもしれませんが,接続相手を待っているという状態です.
ただ,サーバプログラムに問題があるのはたしかで,
Exception in thread "main" java.net.SocketException: Connection reset
のようなエラーが発生することがあります.これは,対戦相手が揃わずに誰かが抜けてしまった後に,対戦
しようとするとなるようです.この場合は,もう一度接続すると問題なく実行できます.
どちらにしても,同時に二人がサーバに接続する必要があるので,講義時間中以外はなかなか対戦するチャン
スはないでしょう.