/* * 練習問題16.12 p.388 * 練習問題16.11の結果を修正して、findResouceとfindResourcesを実装することで、プレーヤーの戦略が * 付属するリソースを使用できるようにしなさい。 */ /* * 練習問題16.11 p.386 * GameとPlayerを発展させて三目並べのような簡単なゲームを実装しなさい。 * いくつかのPlayerの実装を、それぞれ何回か実行してスコアーを取りなさい。 */ package ch16.ex16_12; import java.io.File; // import java.io.FileInputStream; // import java.io.IOException; public class PlayerLoader extends ClassLoader { /* public Class<?> findClass(String name) throws ClassNotFoundException { try { byte[] buf = bytesForClass(name); return defineClass(name, buf, 0, buf.length); } catch(IOException e) { throw new ClassNotFoundException(e.toString()); } } // ... bytesForClassと他のメソッド... protected byte[] bytesForClass(String name) throws IOException, ClassNotFoundException { FileInputStream in = null; try { in = streamFor(name + ".class"); int length = in.avaiable(); // バイト数を得る if (length == 0) { throw new ClassNotFoundException(name); } byte[] buf = new byte[length]; in.read(buf); // バイト列を読み込む return buf; } finally { if (in != null) { in.close(); } } } */ @SuppressWarnings("deprecation") public static java.net.URL findResouce(String name) { File f = new File(name); if (!f.exists()) { return null; } try { return f.toURL(); } catch(java.net.MalformedURLException e) { return null; // 起きるはずがない } } }