HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

万年筆 象歩ブログ 続 wine でボナンザ
19 May 2007

将棋アプレット

Zope と Java applet は相性が良い?
将棋  

ふと、象歩将棋 ZShogi のクライアント側 GUI を Java Applet で試して みました。 まあまあ良さそうです。 今まで Zope 鯖で担ってきた処理を WEB ブラウザが分担してくれるので、 鯖と回線の負担は大幅に減ることが期待できます。 ちゃんと作れば、かなり有望。

ZShogi インスタンスの利用は、 今までサーバ側の DTML のインタフェースしか考慮して無かったのでかなり使いづらいものでした。 アプレットを使うことでインタフェースがすっきりします。

と云うことで、視界の先になんとなく将棋サーバも見えて来たような。 機能的な面では 勝手に将棋トピックス の記事がとても参考になりました。 追々改造して行こうと思います。



とりあえず Java アプレットのソースはこんなかんじ。

//
// AppletTest.java
//
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.net.URL;

public class AppletTest extends Applet implements ActionListener {
    String location;
    String gameid;
    int sequence;
    Image image;
    Button btn_next;

    public void init(){
        location = getParameter("location");
        gameid = getParameter("gameid");
        sequence = 0;
        setImage();
        setBackground(Color.white);
        setForeground(Color.black);
        setFont(new Font("Serif", Font.BOLD, 14));
        btn_next = new Button("次の手");
        this.add(btn_next);
        btn_next.addActionListener(this);
    }
    public void start(){
        repaint();
    }
    public void paint(Graphics g) {
        g.drawImage(image, 0, 35, Color.white, this);
    }
    public void update(Graphics g) {
        paint(g);
    }
    public void actionPerformed(ActionEvent e) {
        this.sequence++;
        setImage();
        repaint();
    }
    public void setImage(){
        String seq = "/show?seq=" + (new Integer(sequence).toString());
        try {
            URL u = new URL(location + gameid + seq);
            image = getImage(u);
        }
        catch (java.net.MalformedURLException e) {
            System.out.println("caught java.net.MalformedURLException");
        }
        catch (java.lang.Exception e) {
            System.out.println("caught java.lang.Exception");
        }
        finally {
        }
    }
}

呼び出す html の方は、

<applet height="220" width="220" code="AppletTest.class">
    <param name="location" value="将棋盤のロケーション">
    <param name="gameid" value="ZShogi オブジェクト名">
</applet>

Comments
There is no comment.
Trackbacks

【注意】TrackBack 送信なさる場合、 あなたの記事中に参照リンク (当ブログの URL 記述) が必要です。 トラックバックスパム防止のため、御了承ください。

There is no trackback.
Post a comment











一回プレビューして投稿内容の確認をしてください。その後に投稿可能になります。