hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
将棋 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

アルゴリズム

なんとなく将棋を作ってみました for HSP3

HSP2用だったサンプルスクリプトをHSP3用に変更。
単純な移植ではなく、一部仕様変更を入れてスクリプトも読みやすいように変更しました。

<主な機能>

  • CPU対戦機能なし。
  • 持ち駒が使えます。
  • 成駒が使えます。(HSP2版での一部間違いを修正)
  • 移動可能なマスが分かります。
  • 何処にでも置けてしまえるのは仕様です。
  • ぶっちゃけただの将棋盤だと思ってください。

サンプル

[hsp3]
モジュール部分です。

+  将棋モジュール

サンプル部分です。モジュールと同じフォルダにおいて実行してください。
長いですがHSP2版よりは読みやすいと思います。

+  将棋サンプル
  • 名前入れていますが、好きに改造して好きに使っていただくことができます。
    NYSLです。 -- GENKI?
  • 変数sgKomaとsgBanTableMove?、mousePosX 、mousePosY 、mousePosKomaID、selectionKomaID あたりが重要な変数です。その辺を注意しながら読めば理解しやすいかと思います。 -- GENKI?

遊び方

  • マウス操作です。
  • 適当に操作して遊んでください。
  • ルール無用で何処にでも置けます。ずっと俺のターンでもOK。
  • 遊ぶだけなら単純に無電源の将棋盤の代わり程度と思ってください。
  • サンプルとして作成しています。サンプルとして遊んでください。

解説文については基本的には下記のHSP2版と同じです。
「駒がもつ情報」の駒の持ち主だけ説明の仕様を変更しています。

  • HSP2版:駒の持ち主(先手+1、後手-1)
  • HSP3版:駒の持ち主(自分=0、相手=1)

実装の違いは結構あるので説明は省略します。HSP3版だけみてください。

なんとなく将棋を作ってみました for HSP2

動かし方すら知らなかったので今回改めて動かし方知りました。(ォィ
将棋ゲームを作る際の参考になれば幸いです。
<更新内容>

  • 持ち駒使えます。
  • 成ります。

<主な機能>

  • 速度面一切考慮なし。
  • CPU対戦機能なし。
  • え、それって普通の将棋盤と駒のセットと変わらないんじゃ…? -- はい。そのとおりです。

サンプル

  • cpu対戦機能なし!
    モジュール部分
    hsp2.png
    +  将棋モジュール

    本体部分
    hsp2.png
    +  将棋本体

遊び方

  • マウスだけで操作します。
  • 将棋盤と駒があるだけなのでどこにでも置けます。
  • 一人二役対戦です。(^ ^;
  • 駒の動かし方は覚えてなくても使えます。
  • 詰将棋ぐらいなら使えます。

長いスクリプトだなぁ…。m(_ _)mすんません
半分以上が前処理で埋まってます。メインループだけならそれほど行数はないんですが…。

  • 将棋盤
    将棋盤の座標は次のようにして扱っています。
    基本的には一般的な将棋の盤の見方にあわせています。
    987654321
    9,18,17,16,15,14,13,12,11,1
    9,28,27,26,25,24,23,22,21,2
    9,38,37,36,35,34,33,32,31,3
    9,48,47,46,45,44,43,42,41,4
    9,58,57,56,55,54,53,52,51,5
    9,68,67,66,65,64,63,62,61,6
    9,78,77,76,75,74,73,72,71,7
    9,88,87,86,85,84,83,82,81,8
    9,98,97,96,95,94,93,92,91,9
    通常は(1,1)-(9,9)で扱っていますが、一部処理の都合で右上を(0,0)とした(0,0)-(8,8)で扱っている場合もあります。
    配列変数の要素をそのまま座標に当てはめて処理している部分などを(0,0)-(8,8)としています。
    モジュール内の内部処理では左上を基準点(0,0)として扱っていますが、通常はそれは意識せずに全て右上を基準点として扱います。
  • 駒の動き 駒の動きは基本的に
    • 左右対称
    • 敵の有無に関係なく置ける場所は同じである場合と、
    • 敵が途中にいるとその先には移動できない場合がある。
    • これらの複数の組み合わせで移動方法を表現できる。
    • 基本的にはチェスも同じらしい。
      というわけで、次のように定義しました。
      CC
      LDL6CAR6RD
      L7L3C1R3R7
      LEL4C0R4RE
      L8L5C2R5R8
      LFL9CBR9RF

      記号の意味
      1-A指定駒にのみ移動可能
      B-F無限に移動可能、敵を飛び越すことは出来ない。
      C0元の位置
      L
      R
      C中心
      チェスに拡張した場合に容易に対応できるようにちょっぴり多めです。

      駒の種類と移動の組み合わせは次のとおり。
      駒の種類番号駒の種類移動方法組み合わせ
      01,2,3,4,5
      11,2,3,4
      21,3,5
      36
      4C
      51
      6C,B,E
      7D,F
      81,2,3,4
      9成香1,2,3,4
      10成桂1,2,3,4
      11成銀1,2,3,4
      121,2,3,4,5,D,F
      131,2,3,4,5,C,B,E


  • 駒がもつ情報。 駒の数は全部で40個。
    1つの駒ごとID番号が与えてあり、それぞれIDごとに下記の情報をもっています。
    • 横座標(-1のときは盤上に載っていない)
    • 縦座標
    • 駒の種類
    • 駒の持ち主(先手+1、後手-1)



      ん〜あとはもうそれほど特殊なことはしてなかったような気がします。

コメント

  • E3D関連のモデルデータならE3Dサンプルwikiの方を利用されてはどうでしょうか?E3DたんってHSP開発wikiじゃなくってE3Dサンプルwikiの方のマスコット(違?)ですし笑--kz3
  • なるほど。モデルデータはE3Dサンプルwikiに置いてそれを参照すれば良いですね。 -- ジオ
  • パイプに挑戦してみましたが…動いているのかいないのかよく分からなかったです。pipeexec命令は資料少ないし…。
    さくらさんとこのパイプによるコンソールリダイレクトで実験してみました。
    • 「bonanza csa_shogi」でバージョン情報取得成功!
    • 「bonanza csa_shogi|display」でgame.csa出力成功!
    • あとのは動いてるのかどうかすらさっぱり…もうだめだ_| ̄|○
      参考資料:パイプ -- GENKI? 2007-03-22 (木) 22:01:00
  • さくらさんの所のHSPサンプル蔵の「GUIからコンソールを操作する 」というサンプルも試しましたがダメでした;;エラーが出ないのでBonanzaの呼び出しは出来ているみたいですけど、「手を指す」などのBonanzaのコマンドが実行できません。何も返って来なかったです。 -- ジオ 2007-03-22 (木) 23:15:37
  • bonanzaをHSPから操作するサンプルをアップしました。bonanzaが反応することを確認するだけのスクリプトです。 つーさのくーかんからダウンロードしたWin32コンソール向きパイプ通信モジュールのpipe2.hspとbonanza.hspをbonanza.exe(Ver2.1)と同じフォルダに置いて、bonanza.hspを実行します。 -- ジオ 2008-03-16 (日) 00:10:10
  • bonanzaをHSPから操作するサンプルをバージョンアップしました。現在の盤面をbonanzaの命令で得られるようになりました。また、インプットボックスから指し手を入力するようになりました。 つーさのくーかんからダウンロードしたWin32コンソール向きパイプ通信モジュールのpipe2.hspとbonanza3.hspをbonanza.exe(Ver2.1)と同じフォルダに置いて、bonanza3.hspを実行します。 -- ジオ 2008-11-13 (木) 18:19:29
  • 画像で描画するようにしました。 bonanza4.lzhに入っている画像は、はむの頭脳 [奇襲戦法と将棋素材のHP]で配布されている画像を加工した画像です。 -- ジオ 2008-11-15 (土) 07:07:49
  • AquesTalk - テキスト音声合成ミドルウェア
    それをHSPで利用するためのLet's HSP!で配布されているサンプルコード

    ご'て、ごーな'な/かく。せんて'、いちさ'ん/けい'/な'る。これよ'り、/い'って/<NUMK VAL=10 COUNTER=びょー>'/み'まんでおねがいします。た'だし、/<NUMK VAL=1 COUNTER=ふん>'たんいで/ごうけー/<NUMK VAL=10 COUNTER=か'い>の/こうりょ/じ'かんがあります。、じゅ'う/びょーー。、にじゅ'う/びょーー。い'ち、に'ー、さ'ん、し'ー、ご'ー、ろ'く、し'ち、は'ち、きゅ'ー、

      -- ジオ 2008-11-15 (土) 12:14:59

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

E3Dたんと将棋☆

shogi3.png
shogi2.png

E3Dたんと将棋したくなったので作りました。3D描画だけしかプログラムしてません。気が向いたら将棋機能もこのページを参考にして作りたいと思います。
現在はソースを整理してないので公開はしていません。気が向いたら整理して公開するかも知れません。
E3Dたんの手や腕や肩を動かして駒を指す動きを試してみたけどイケてませんでした。 -- ジオ

思考部分

良いのを見付けました!Bonanzaという思考部分専用のフリーウェアです。パイプで連絡するのですが、文字列型の変数をパイプ入力する方法が分からなかったのであきらめました^^;それに他にしたいことがあるので。
ウェブサイトを見ると分かりますが、将棋倶楽部24でレートは約2400だそうです。実際強かったです。
私たちは、私がE3Dを使っているように、思考部分以外をプログラムすれば良いということです。
あと、気が向いたらフリー素材で作った3D描画用の駒なども修正してここで公開したいとも思います。 -- ジオ

  • Bonanzaが渡辺竜王と指してくしくも負けてしまったそうです。でも素晴らしい使用実績が残りましたね。開発者の名誉だと思います。
  • そうですね。調子が良かった佐藤さんの竜王奪取を退けた渡辺さんと良い勝負だったみたいですね。Bonanzaがここまで出来るとは思いませんでした。1秒間で400万局面読めるコンピュータで対局したそうですが、逆に人の素晴らしさも感じました。どうなっているんだろうってw -- ジオ

添付ファイル:
filesyougi02.hsp
52件 [詳細]
filemod_syougi.hsp
55件 [詳細]
filebonanza4.lzh
440件 [詳細]
filebonanza3.hsp
497件 [詳細]
filebonanza2.hsp
268件 [詳細]
filebonanza.hsp
544件 [詳細]
filesyogi_m.as
1339件 [詳細]
filesyogi02.as
1140件 [詳細]
filesyogi01.as
405件 [詳細]
fileshogi3.png
545件 [詳細]
fileshogi2.png
547件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2012-12-27 (木) 23:54:25 (345d)