テキストファイルのアクセス

package jp.rdy.pavane.samplefile;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class SampleFile extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
JButton b1,b2;
JTextArea ta;

public SampleFile(){
this.setSize(300,200);
ta = new JTextArea();
JScrollPane scroll = new JScrollPane(ta);
this.add(scroll,BorderLayout.CENTER);
b1 = new JButton(“Load”);
b1.addActionListener(this);
b2 = new JButton(“Save”);
b2.addActionListener(this);
JPanel p = new JPanel();
p.add(b1);
p.add(b2);
this.add(p,BorderLayout.SOUTH);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args) {
new SampleFile();
}

public void actionPerformed(ActionEvent ev){
if (ev.getSource() == b1)
this.load();
else if (ev.getSource() == b2)
this.save();
}

public void load(){
FileReader fr = null;
BufferedReader br = null;
try{
fr = new FileReader(“sample.txt”);
br = new BufferedReader(fr);
String str = “”;
String rstr = “”;
while((rstr = br.readLine()) != null)
str += rstr + “\r\n”;
ta.setText(str);
} catch(Exception ex){
ex.printStackTrace();
} finally {
try {
br.close();
}catch(Exception ex2){
ex2.printStackTrace();
}
}
}

public void save(){
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(“sample.txt”);
bw = new BufferedWriter(fw);
bw.write(ta.getText());
bw.flush();
}catch(Exception ex){
ex.printStackTrace();
} finally {
try {
bw.close();
} catch(Exception ex2){
ex2.printStackTrace();
}
}
}
}

Filed under: java — pavane 7:31 PM  Comments (0)

ダブルバッファリング

package jp.rdy.pavane.SampleApp;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class SampleApp extends JFrame{
private static final long serialVersionUID = 1L;

public SampleApp(){
DrawPanel panel = new DrawPanel();
this.add(panel,BorderLayout.CENTER);
this.setSize(300,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args){
new SampleApp();
}
}
class DrawPanel extends JPanel {
private static final long serialVersionUID = 1L;
Image im = null;
Graphics g2 = null;

public DrawPanel() {
this.addMouseListener(new MyMouseAdapter());
}

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (im == null){
im = this.createImage(this.getWidth(),this.getHeight());
g2 = im.getGraphics();
}
g.drawImage(im,0,0,this);
}

class MyMouseAdapter extends MouseAdapter {
public void mouseClicked(MouseEvent ev){
int x = ev.getX();
int y = ev.getY();
for (int i=0;i < 10;i++){
g2.setColor(new Color(255,i*25,i*25));
g2.drawOval(x-i*3, y-i*3, i*3*2, i*3*2);
}
repaint();
}
}
}

Filed under: java — pavane 6:13 PM  Comments (0)

Imageの取り込み

package jp.rdy.pavane.SampleApp;

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.ImageProducer;
import java.net.URL;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class SampleApp extends JFrame{
private static final long serialVersionUID = 1L;

public SampleApp(){
DrawPanel panel = new DrawPanel();
this.add(panel,BorderLayout.CENTER);
this.setSize(300,200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args){
new SampleApp();
}
}
class DrawPanel extends JPanel {

private static final long serialVersionUID = 1L;
private Image im = null;
public DrawPanel() {
URL url = this.getClass().getResource(“/jp/rdy/pavane/SampleApp/captyar.GIF”);
try{
im = this.createImage((ImageProducer)url.getContent());
}catch(Exception ex){}
}
//または、ImageIOの利用
// public DrawPanel() {
// URL url;
// try{
// url = this.getClass().getResource(“/jp/rdy/pavane/SampleApp/captyar.GIF”);
// im = ImageIO.read(url);
// }catch(Exception ex){}
// }
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(im,50,50,this);
}

}

Filed under: java — pavane 11:31 AM  Comments (0)

マウスとキーイベント

package jp.rdy.pavane.samplemouse;

import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class SampleMouse extends JFrame{
private static final long serialVersionUID = 1L;
JLabel l1,l2;
JTextField t1;

public SampleMouse(){
this.setSize(300,200);
l1 = new JLabel();
this.add(l1, BorderLayout.NORTH);
this.addMouseListener(new MyMouseAdapter());

t1 = new JTextField();
t1.setName(“SOUTHのJTExtField”);
t1.addKeyListener(new MyKeyAdapter());
this.add(t1,BorderLayout.SOUTH);

l2 = new JLabel();
this.add(l2,BorderLayout.CENTER);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args) {
new SampleMouse();
}
class MyMouseAdapter extends MouseAdapter {
public void mouseClicked(MouseEvent ev){
int x = ev.getX();
int y = ev.getY();
int n = ev.getClickCount();
String str = “X:”+ x;
str += ” Y:”+ y;
str += ” click:”+ n;
l1.setText(str);
}
}
class MyKeyAdapter extends KeyAdapter {
public void keyTyped(KeyEvent ev){
char c = ev.getKeyChar();
JTextField t = (JTextField)ev.getComponent();
String name = t.getName();
l2.setText(“\”"+c+”\”\t”+name);
}
}
}

Filed under: java — pavane 8:39 PM  Comments (0)

【備忘録】httpd.conf php.ini の設定

[httpd.conf]
最後に下記の3行を追加

LoadModule php5_module “C:\php\php5apache2_2.dll”
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

[php.ini]
;output_handler =

output_handler = mb_output_handler

;default_charset = “iso-8859-1″

default_charset = “UTF8″

;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = UTF8

;mbstring.http_input = auto

mbstring.http_input = auto

;mbstring.http_output = SJIS

mbstring.http_output = UTF8

;mbstring.encoding_translation = Off

mbstring.encoding_translation = On

;mbstring.detect_order = auto

mbstring.detect_order = auto

;mbstring.substitute_character = none;

mbstring.substitute_character = none;

Filed under: PHP — pavane 10:09 AM  Comments (0)

Android Text Links Using Linkify 和訳

Android Text Links Using Linkify

http://www.indelible.org/ink/android-linkify/

日本語訳(こんな感じ)

アンドロイドフレームワークでは、自動的にテキストパターンをクリッカブルなリンクに変換する簡単な方法を与えてくれています。
アンドロイドは、WebURL、E-MAILアドレス、地図アドレス、電話番号を認識する方法、また、追加されたテキストパターンを同様に認識し変換するフレキシブルなメカニズムも持っています。

Android Developers Blogには、Linkify your Text! というタイトルが付けられた記事があり、すばらしいシステム概要を提供しています。
Linkify classのデフォルトリンクパターンを有効にする方法、より高度な WikiWords の例では、カスタムのリンクを解説しています。
その記事は導入としてすばらしいものですので、この記事はカバーされていないものにフォーカスを絞っています。

この記事の全ての例は、TextView widgetに基づくものです。Linkify class は、Spannable textに対してもリンクを付加することができますが、使用法がほぼTextViewのケースと同じですので、ここではカバーしません。

■TextViewの自動リンク

TextView widgetは自動的に認識し、クリッカブルなリンクに変換するテキストパターンの種類をコントロールするandroid:autoLink 属性を持っています。この属性は、コードの追加を伴うことなく、レイアウトから直接設定することができますので、一つ以上のデフォルトリンクのパターンを有効にするには便利な方法です。

また、プログラムでこの値を設定するような場合に便利な setAutoLinkMask() 関数が存在しています。

ただし、この”自動リンク”機能を使用するにあたり一つの重要な注意点があります。
自動リンク”が有効になっていると、すべての追加されたLinkify操作が無視されます。

この振る舞いは、故意によるものかまたは不注意によるものかどうか不明なので、Android SDKのリリースに伴ない、将来、変更される可能性があります。
後述のLinkifyの操作のいずれかを使用する前に、”自動リンク”が無効になっているかを考慮下さい。

// Disable the text view’s auto-linking behavior
textView.setAutoLinkMask(0);

■デフォルトのリンクのパターン

Androidのデフォルトのリンクパターンのいずれかを有効化するのは非常に簡単です。
単純にaddLinks(TextView text, int mask) 機能使用し、目的のリンクタイプを記述しているマスクを指定します。

import android.text.util.Linkify;

// Recognize phone numbers and web URLs
Linkify.addLinks(text, Linkify.PHONE_NUMBERS | Linkify.WEB_URLS);

// Recognize all of the default link text patterns
Linkify.addLinks(text, Linkify.ALL);

// Disable all default link detection
Linkify.addLinks(text, 0);

■カスタムリンクのパターン

リンクパターンのデフォルト以外の種類を検出することも簡単です。
addLinks(TextView text, Pattern pattern, String scheme) 関数は、正規表現パターンに基づいてリンクを検出しています。

import java.util.regex.Pattern;
import android.text.util.Linkify;

// Detect US postal ZIP codes and link to a lookup service
Pattern pattern = Pattern.compile(“\\d{5}([\\-]\\d{4})?”);
String scheme = “http://zipinfo.com/cgi-local/zipsrch.exe?zip=”;
Linkify.addLinks(text, pattern, scheme);

テキストは、パターンマッチのためにスキャンされます。
マッチしたテキストに対して提供されたURLスキームを追加することによって、リンクに変換されます。

そのスキームは、外部のWebのようなURLである必要はないことに注意してください。
例えば、アプリケーションリソースを参照する content provider との接続に使われるAndroidのContent URIである可能性もあります。

■マッチフィルター

正規表現は、テキストパターンと一致させるには非常に強力な方法ですが、もう少し柔軟性が必要な場合があります。
MatchFilter classは、ユーザーのコードにいくつかのマッチしたテキストのリンク価値を評価する機会を与えることによってこの機能を提供します。

import java.util.regex.Pattern;
import android.text.util.Linkify;
import android.text.util.Linkify.MatchFilter;

// A match filter that only accepts odd numbers(奇数).
MatchFilter oddFilter = new MatchFilter() {
public final boolean acceptMatch(CharSequence s, int start, int end) {
int n = Character.digit(s.charAt(end-1), 10);
return (n & 1) == 1;
}
};

// Match all digits in the pattern but restrict links to only odd
// numbers using the filter.
Pattern pattern = Pattern.compile(“[0-9]+”);
Linkify.addLinks(text, pattern, “http://…”, oddFilter, null);

より複雑な(しかし便利!)例としては、有効な日付と一致させることもできます。
正規表現は、大まかで”2010年2月30日”(2010年2月30日)のような文字列と一致するようになるが、マッチフィルターは、偽のカレンダーの日付を拒否するロジックを提供することができます。

■変換フィルタ

ここまでは、最終的なリンクは、常に正確にマッチしたテキストに基づいて生成されていた。
ただし、多くの場合、望ましいことではありません。
例えば、@username 構文が、ユーザ名に使用している場合に一般言及されますが、結果のリンクに ユーザー名 テキストのusername部分のみを、含めたい時です。

TransformFilter classは、このソリューションを提供しています。

import java.util.regex.Pattern;
import android.text.util.Linkify;
import android.text.util.Linkify.TransformFilter;

// A transform filter that simply returns just the text captured by the
// first regular expression group.
TransformFilter mentionFilter = new TransformFilter() {
public final String transformUrl(final Matcher match, String url) {
return match.group(1);
}
};

// Match @mentions and capture just the username portion of the text.
Pattern pattern = Pattern.compile(“@([A-Za-z0-9_-]+)”);
String scheme = “http://twitter.com/”;
Linkify.addLinks(text, pattern, scheme, null, mentionFilter);

このアプローチは、ユニークなアドレス可能なmatchグループとしてのパターン、usernameの部分を抽出するための正規表現のキャプチャ構文を使います。

変換フィルタは、最初の文字(@)の後の一致したテキスト全てのみを戻すことができるが、上記のアプローチの方が良い、なぜなら、正規表現内の全てのパターンを保持するからです。

もちろん、変換フィルタは、一致フィルタと組み合わせることができる究極の柔軟性がある。
Android SDKには、常に数字だけを含む簡易リンクを生成しながら(その多くは様々な括弧やダッシュを含む)範囲の広い電話番号の形式を検出するために、このアプローチを使用しています。

■さらに読む

Androidのリンク生成システムの特定の実装詳細について、より多くの情報を求めるにあたって、最高の参照は、実際にはソースコードそのものです。
システムを理解するための優れたリソースであることに加えて、それはまた、システムの利用を志すにあたって、間違った理解や潜在的なバグを追跡するための最良の方法です。

Filed under: java — pavane 1:00 PM  Comments (0)

JAVAの基本(クラスメソッド、インスタンスメソッド)-メモ書き(2)

まず、クラスとインスタンスの違いについて説明します。
たとえば、「ネコ」というのは、ネコという種類をあらわすもので、クラスに対応します。それに対し、ネコには家の「たま」もいれば、隣の家の「みけ」もいますね。これはネコというクラスに対するインスタンスになるわけです。

さて、静的メソッドというのは、言語によってはクラスメソッドと呼ばれているもので、クラスに対して呼び出すメソッドのことです。いっぽう、インスタンスメソッドは、インスタンスに対して呼び出すものです。したがって、インスタンスメソッドは、クラスのインスタンスであるオブジェクトが存在しなければ呼び出すことができませんが、静的メソッドはインスタンスが存在しなくても、クラスに対して呼び出すことができます。

たとえば、「ネコ」というクラスには、「足の数を求める」という静的メソッドが存在し、「ネコ」のインスタンスメソッドには「毛の色を求める」というメソッドがあったとします。「ネコ」というクラスに対しては、足の数を求めることができますが、毛の色を求めることはできませんね(毛の色はそれぞれのネコで異なるから)。

クラスメンバ変数、クラスメソッドは以下のケースにおいてよく使用されます。
1. オブジェクト間で共通の値を保持したい時にクラスメンバ変数を使用します。
2. 定数を宣言する際に、final修飾子と供に使用されます。ロケール定数など標準APIで用意されている定数はほとんどstatic finalで宣言されています。
3. 公式的な処理を行うメソッドにクラスメソッドを使用します。クラスMathで用意されているsin、cosなどはstatic修飾子が付与され宣言されています。
4. オブジェクトが生成されていなくても処理を行う必要があるときにクラスメソッドを使用します。クラスメソッドはオブジェクトに依存しないため、オブジェクトが生成されていなくても実行できます。mainメソッドはオブジェクトを生成する前に実行する必要があるため、static修飾子を付けて宣言しています。

class AAA{
//インスタンス変数
String X = null;
//コンストラクタ
AAA(String x1){
X=x1;
}

//クラスメソッド(staticが付いている)
public static String getName(){
return “クラスメソッド”;
}

//インスタンスメソッド
public String getX(){
return X;
}
}

public class Test{
public static void main(String args[]){
//クラスメソッドはオブジェクトを作成せずに、そのまま使える
System.out.println(“クラスメソッド実行…”+AAA.getName());

//インスタンスメソッドは、オブジェクトを作成して、適用。
AAA obj_aaa = new AAA(“インスタンスメソッド”);
System.out.println(“インスタンスメソッドを実行…”+obj_aaa.getX());
}
}

Filed under: java — pavane 11:21 AM  Comments (0)

JAVAの基本(HelloWorld)-メモ書き(1)

public class HelloWorld {
/*
↑コメントのはじまり
(1)publicはアクセスレベルを表し、クラス HelloWorldが他のどのクラスからもアクセスが可能なことを表します。
(2)classはclass以下の{ }で囲まれたコード群が1つのクラスであることを表します。
(3)HelloWorldはクラス名を表します。
(4)通常classは1ソースファイルに対し1つしか宣言しませんが複数宣言することも可能です。ただpublicアクセスレベルが付いたpublicクラスに関しては1ソースファイルにつき1つしか宣言できません。
(5)Javaのソースファイル名は必ずそのソースファイルに宣言されているいずれかのクラス名と一致していなければなりません。また宣言されているクラス内にpublicクラスがある場合はソースファイル名はpublicクラス名と一致しなければなりません。このソースファイル名はHelloWorld.javaになります。
↓コメントの終わり
*/
public static void main (String[] args) {
/*
(1)publicは先ほどのpublic classと同様にmainメソッドが他のどのクラスからもアクセスできることを表します。
(2)staticはmainメソッドがHelloWorldクラスに対して1対1の関係で存在することを表しています。mainメソッドはオブジェクトを生成する前に実行する必要があるため、static修飾子を付けて宣言しています。
(3)voidはmainメソッドが戻り値を持たないことを表します。
(4)String[ ] argsはmainメソッドが受け取る引数の型(String[ ])とmainメソッド内で使用するその引数の引数名(args)を表します。
(5)mainメソッドの一文(public static void main(String[ ] args)は決まりきったものです。Javaはプログラムを実行する際、クラスファイルを指定します。指定するクラスファイルの中には必ずこのmainメソッドの一文がなければなりません。
*/
System.out.println(“Hello World !!”);
/*
(1)System.out.println( )はPrintStreamクラスで定義されているprintlnメソッドの実行を表します。
(2)標準出力に値を表示する場合はSystem.out.println( )を使用します。
(3)”HelloWorld”は実際に標準出力に出力される値を表します。
*/
}
}

Filed under: java — pavane 11:06 AM  Comments (0)

ロマンシング サガ2 攻略の旅(4)

強制的に年代ジャンプが発生したので、皇帝選び。
ここでは、武装商船団長(男)を発生させ選択したい。
理由は、女王蟻を倒すのに、フォーメーションのラビットストームを覚えたい為。

メンバー > マゼラン、アキリーズ、テリー、ハールファグル、ポール

<1325年>
■発明「人力風起こし」

アバロン城でヒラガが会いたいといっている情報を聞きます。
 ↓
ソーモンで、発明家ヒラガに会います。人力風起しをもらいます。

■地上戦艦撃破

ノーマッドと一緒に、まだ起動していない地上戦艦を倒そうとすると、地上戦艦が動き始める。
すると、マイルズに怪しい男と、戦闘にはならないがモンスターが出現する。選択は(3)。
 【選択肢】
 (1)そういう奴らには先制攻撃!
 (2)遠慮する
 (3)無謀だ。作戦を練ってから。
 ↓
帝国大学ができて軍師がいる場合は、軍師に会いに行く。
 ↓
フォーファー 港には戦艦があり、ファーファーの城で軍師に話しかける。
 ↓
ステップ ファーファーから移動した戦艦に近づくと画面が変わり軍師と話をする。
 ↓
最後にノーマッドの村に行き、ノーマッドへ話しかけると、地上戦艦に乗り込める。
 ↓
一番上階で、ボクオーンに話しかけて(1)を選択し、戦闘。
 【選択肢】
 (1)許さん、戦う
 (2)それなら許す

メンバー > マゼラン、アキリーズ、テリー、ハールファグル、ポール
宝箱 > レザーアーマー、ダブレット、鉄の鎧、鋼鉄の鎧、210000クラウン、鉄の鎧、大盾、炎の剣

<1326年>
■白アリ軍団の襲来

サバンナの南の集落の宿屋で一泊すると、夜になり集落の中央に穴が空いています。
選択肢(2)を選択。
 【選択肢】
 (1)塞ぐ
 (2)後を追う
 ↓
地下3Fにいる「クィーン」との戦闘。ラビットストームで先制しスタン系の技や術で簡単に勝てます。

メンバー > マゼラン、アキリーズ、テリー、ハールファグル、ポール
宝箱 > 60000クラウン、90000クラウン、玉虫のローブ、40000クラウン、詩人のコンガ

53年ジャンプ > (5)へ

Filed under: ロマサガ2 — pavane 11:19 PM  Comments (0)

ロマンシング サガ2 攻略の旅(3)

強制的に年代ジャンプが発生したので、皇帝選び。

ここでは、シティシーフ(女)を発生させ選択したい。
理由は、武装商船団問題を解決したいから。
解決できるのは、皇帝がフリーファイター、シティシーフ、格闘家、サイゴ族、ノーマッド、ハンターのいずれかのようですが、試してはしません。

メッシナ鉱山を開放したうえで武装商船団を服従させるのがベストなので、
(1)陸路でヌオノに行けるようにする。
(2)武装商船の船長に協力しメッシナ鉱山を開放する。
(3)陸路でヌオノに行き服従させる。

という順番で攻略します。

メンバー > マウス、ジェイスン、スネイル、アン、フリッツ

<1225年>
■武装商船団問題
※ここは余所見せずに真っ直ぐクリアしてくださいね。

ミラマーから渡し舟で向こう岸へ。向こう岸の酒場でモーベルムについて聞いて、モーベルムへ。
 ↓
モーベルムの一番奥の小屋で盗み聞き(この盗み聞きができるのが上記の選択皇帝です)。
※この盗み聞きで陸路が発生し、陸路による攻略で最も国の収入が多い状態でのイベントクリアが出来ます。
※話の内容は、陸路で来られるやつがいたら即降参するという内容です。
 ↓
盗み聞きをした小屋の近くに停泊している船に近づくと船の中に入れます。
 ↓
船の中に入ってB1Fで、船長と話をし選択肢(2)を選びます。
   【選択肢】
    (1)「支配下に入れ」
    (2)「協力しろ」
メッシナ鉱山の開放を依頼されるので、メッシナ鉱山の開放に向かいます。

メンバー > マウス、ジェイスン、スネイル、アン、フリッツ
宝箱 > 武器:ロブオーメン、100000クラウン

※メッシナ鉱山を攻略後に、依頼主に報告に行ってはいけません。
※報告した場合は、武装商船の本拠に海路で行くことになり、ベストなクリアになりません。
 ↓
メッシナ鉱山を開放したら、ルドンのティファールへ向かう。
酒場でマスターにハリア半島について聞く。
 ↓
マップにハリア半島が現れるので、ハリア半島へ。
 ↓
ハリア半島の一番奥が武装商船の本拠(ヌオノ)です。
本拠に入って、団長に話をし、選択肢(2)を選びます。
   【選択肢】
    (1)武装商船団の解散
    (2)武装商船団の服従
    (3)武装商船団との同盟
 ↓
北ロンギット支配下に。

<1226年>

※ここで、王座に座ると帝国大学建設のイベントが発生していたら建設しましょう。

■レオンブリッジ建設

ソーモンで、発明家のヒラガに話をすると、ヴィクトール運河に橋をかけないかと話を持ちかけられます。1000000クラウンで、橋を作成。ミラマーの町に行けばすぐに橋がかかっています。
※この後まとまったお金が必要になることは少ないので、どんどん武器や防具の開発をすれば良いです。

■交易ルート奪回

ティファールの南の家の中のおばあちゃんからルドン高原の話を聞く。
ルドン高原に入って、くるっと周りながら南へ。ルドン高原を出るとサイゴ族の村に入る。
サイゴ族の村の長老に話をすると、東のダンジョンの話が聞けるので地下一階のボスを倒す。

メンバー > マウス、ジェイスン、スネイル、アン、フリッツ
宝箱 > なし

村長に再度話をすると、海風貝が買えるので買っておく。

ついでに、ムーの移動援助のイベントもやりたいところですが、一度、アバロンへ帰還し、帝国大学建設後の試験を受けに行く。

<1227年>
■帝国大学建設(試験)

アバロン城の中で、街の西に大学が完成したことを聞く。大学の問題に出てくるので、現在の収入を確認しておく(この時16,600でした)
大学に訪れ、試験を受けます。合格すると軍師を仲間にすることができます。

   【試験問題】
    第1問
     レオン陛下がダンジョンを封印したのは帝国令第?
      ①277 ②727 ③772
       答え : ③

    第2問
     アバロンやダグラスの建築様式は?
      ①オレオン式 ②ロンギット式 ③ヤウダ式
       答え : ①

    第3問
     七英雄ただ一人の女性は?
      ①ワグナス ②ロックブーケ ③クジンシー
       答え : ②

    第4問
     風の術を持っていると覚えられないのは?
      ①火の術 ②土の術 ③水の術
       答え : ②

    第5問
     七英雄クジンシーの得意技は?
      ①ソウルスティール ②ラバーソウル ③ライフスティール
       答え : ①

    第6問
     メイス3本と大剣7本を買ったら200クラウン残りました。始めに何クラウン持っていたでしょう?
      ①9800 ②10000 ③10200
       答え : ②

    第7問
     光子分解、原子分解、分子分解本当にある技は?
      ①光子分解 ②原子分解 ③分子分解
       答え : ③

    第8問
     バッファロー、リンクス、ウオッチマン仲間外れはどれ?
      ①バッファロー ②リンクス ③ウオッチマン
       答え : ③

    第9問
     人形が大好きな七英雄はだれ?
      ①ダンターグ ②ボクオーン ③クジンシー
       答え : ②

    第10問
     帝国の現在の収入は?
      ⇒ 進行状況によって異なる。

■ムーの移動援助

サイゴ族の村の人からムーと暮らしている人の話を聞いていると、ムーの越冬地が出現。
ムーの越冬地に行き遊牧民のリーダーに話をし、選択肢の中で「手助けをする。」を選ぶと南のダンジョンが出現。地下一階のボスを倒す。

メンバー > トパーズ、フリッツ、ピーター、アガタ、バジャー
宝箱 > 110000クラウン、スプラッシャー、150000クラウン

再度ムーの越冬地へ行き報告する。

98年ジャンプ > (4)へ

Filed under: ロマサガ2 — pavane 9:33 PM  Comments (0)