<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >
  <channel>
  <title>ひややっこBlog</title>
  <link>https://hiyayakkoprog.blog.shinobi.jp/</link>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="https://hiyayakkoprog.blog.shinobi.jp/RSS/" />
  <description>なんとなくだらだらと。方向性はまだ決まってない。

当方のプログラムでは、山田巧さん作成のＤＸライブラリを利用させていただいてます。
本サイト http://homepage2.nifty.com/natupaji/DxLib/index.html
DX Library Copyright (C) 2001-2008 Takumi Yamada.
</description>
  <lastBuildDate>Fri, 29 Jan 2010 09:09:10 GMT</lastBuildDate>
  <language>ja</language>
  <copyright>© Ninja Tools Inc.</copyright>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />

    <item>
    <title>国盗りＳＬＧを作る（１）</title>
    <description>
    <![CDATA[　なんだかすごいことになってしまった。<br />
これ、Windowsでプログラムを始めてから１０年越しで作りたいリストの中に入ってるんだ。<br />
<br />
いちどWin32API版習作を２ｃｈに放流したことがあるけど、もうすでにその域を超えてる。<br />
実際一度通った道だからな。効率は良い。<br />
そして、以前のプログラムよりはるかにキレイに出来てる。<br />
<br />
まあキレイなのはここまで。ここから先は未知の領域なんで右往左往が楽しめる。<br />
<br />
<br />
<img width="480" height="360" alt="v003" src="http://hiyayakko.sarashi.com/LearnSLG/LearnSLG003.png" /><br clear="all" />
<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/LearnSLG/LearnSLG003.zip">http://hiyayakko.sarashi.com/LearnSLG/LearnSLG003.zip</a>　(2010.01.29)<br /><br /><a href="https://hiyayakkoprog.blog.shinobi.jp/%E5%9B%BD%E7%9B%97%E3%82%8A%EF%BD%93%EF%BD%8C%EF%BD%87/%E5%9B%BD%E7%9B%97%E3%82%8A%EF%BD%93%EF%BD%8C%EF%BD%87%E3%82%92%E4%BD%9C%E3%82%8B%EF%BC%88%EF%BC%91%EF%BC%89" target="_blank">つづきはこちら</a>]]>
    </description>
    <category>国盗りＳＬＧ</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E5%9B%BD%E7%9B%97%E3%82%8A%EF%BD%93%EF%BD%8C%EF%BD%87/%E5%9B%BD%E7%9B%97%E3%82%8A%EF%BD%93%EF%BD%8C%EF%BD%87%E3%82%92%E4%BD%9C%E3%82%8B%EF%BC%88%EF%BC%91%EF%BC%89</link>
    <pubDate>Fri, 29 Jan 2010 08:40:50 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/71</guid>
  </item>
    <item>
    <title>迷走・頓挫</title>
    <description>
    <![CDATA[　タワーディフェンス系のアクションSLGを作ろうと思った。<br />
一方的に防衛するだけではストレス溜まるので、自分の城と相手の城を同じ画面に配置して<br />
攻めたり攻められたりできるようにと考えた。<br />
実装がシンプルになるようとことん追求していくと、ロードモナークっぽい感じになりそうな。<br />
<br />
キャラの大きさ、盤面の広さはこれぐらいがいいと思う。<br />
<br />
<br />
<img width="480" height="360" alt="v001" src="http://hiyayakko.sarashi.com/Other/ActionSLG001.png" /><br clear="all" />
<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/Other/ActionSLG001.zip">http://hiyayakko.sarashi.com/Other/ActionSLG001.zip</a>　(2010.01.28)<br /><br /><a href="https://hiyayakkoprog.blog.shinobi.jp/%E9%9B%91%E8%AB%87/%E8%BF%B7%E8%B5%B0%E3%83%BB%E9%A0%93%E6%8C%AB" target="_blank">つづきはこちら</a>]]>
    </description>
    <category>雑談</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E9%9B%91%E8%AB%87/%E8%BF%B7%E8%B5%B0%E3%83%BB%E9%A0%93%E6%8C%AB</link>
    <pubDate>Thu, 28 Jan 2010 01:42:40 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/70</guid>
  </item>
    <item>
    <title>飽きた（笑）</title>
    <description>
    <![CDATA[　このゲームのデザインには致命的な欠陥があることは、作りはじめる前から知ってたけど。<br />
<br />
テトリスなんかの積み上がったらゲームオーバーとか、上海や鮫亀なんかの消し切ったら<br />
勝ちとか、そういうゲームの目標が最初から見えない。<br />
消すところが無くなったら負けというけど、そういう状況になるのがプレイヤーの責任とは<br />
言い切れない部分が大きい。<br />
本家ZooKeeperでは動かせなくなったら再度配り直しになって、しかもボーナスまで<br />
与えてる。ゲームを支配するのは制限時間だけ。<br />
いろいろルールを付け足してごちゃごちゃになってるのがゲームデザイン的に美しくない。<br />
それでも遊べるというか、むしろ面白いんだけど。<br />
<br />
<br />
ver0.10から細かい調整を加えてみた。<br />
まだ、枠を入れ替えたときに消えなかったら戻す処理を入れてないので、好きなように<br />
入れ替えし放題のゲームにもなってない「ふいんき」だけのシロモノだ。<br />
せめてここまでは作っておいたほうが良いのかな？<br />
いちど思考が途切れてしまったら、戻ってくるのにすごく労力がいる。<br />
<br />
<title></title>
<link rel="stylesheet" type="text/css" href="http://img.shinobi.jp/tadaima/tdftad.css" />ver0.11 細かい調整？<br />
・消滅アニメ表示、インフォメーション削除、落下速度アップ<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle011.zip">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle011.zip</a><br />]]>
    </description>
    <category>並べて消すパズルを作る</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B/%E9%A3%BD%E3%81%8D%E3%81%9F%EF%BC%88%E7%AC%91%EF%BC%89</link>
    <pubDate>Tue, 26 Jan 2010 08:53:29 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/69</guid>
  </item>
    <item>
    <title>あるテレビCM見て</title>
    <description>
    <![CDATA[　「GREE」だったか、無料携帯ゲームサイトのテレビCMに、おあつらえ向きにも<br />
「３つ並べて消す」系のゲームが出てた。<br />
ズーキーパー系とは違う操作系で、最下ラインにキャラクターがいて色玉を入れ替えてた<br />
ように見えた。<br />
この、CMの中のほんの数秒ではルールがよくわからんかったが、落下したブロックが<br />
落下じゃなく、ぱっと消えて収まるべき枠にぱっと入れ替わる感じ。<br />
落ちるアニメーション省略してしまったら、何が起こってるのか把握しにくいと思うのだが。<br />
<br />
これ見て、「勝った」と思った次第。<br />
<br />
<br />
Ver0.10<br />
マウスによる入れ替え処理が、ついに入りました。<br />
もう、なんとなく小一時間遊べる感じ。・・・小一時間は言い過ぎた。<br />
<br />
なんか妙なバグが潜んでる予感。<br />
事実、いろいろ噴出して、押さえ込むのに苦労したし。<br />
<br />
<br />
<br />
<img width="480" height="360" src="http://hiyayakko.sarashi.com/ChangePuzzle/Change010.png" alt="v010 パネル入れ替え" /><br clear="all" />
<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle010.zip">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle010.zip</a>　(2009.12.28)<br />
ホームページ　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html</a>  <br />
<br />
したらば掲示板（コメントなどはこちらへ）<br />
<a href="http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1261713900/">http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1261713900/</a>]]>
    </description>
    <category>並べて消すパズルを作る</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B/%E3%81%82%E3%82%8B%E3%83%86%E3%83%AC%E3%83%93cm%E8%A6%8B%E3%81%A6</link>
    <pubDate>Mon, 28 Dec 2009 07:52:24 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/68</guid>
  </item>
    <item>
    <title>誰に遠慮してんだか</title>
    <description>
    <![CDATA[　なんやかや言いながら、ver0.09までキタ。<br />
下準備はだいたい済んだ感じで、あとマウスでの入れ替えを組み込めば<br />
もうなんとなく遊べる気配。<br />
<br />
ゲームプログラム解説ブログをやりたいのか好き勝手作りたいのかと聞かれれば<br />
このブログの存在意義は圧倒的に前者なんだけど、先に進みたい気持ちが止まらない。<br />
<br />
作りながら解説のサイクルを細切れにやるのか、完成したソースに解説を加えていくのか。<br />
市販のゲームプログラム本はほとんど後者だから、後者のやり方で圧倒的に完成度の低い<br />
こんなクソースでは俺が納得しない。<br />
落としどころが無いなあ。<br />
<br />
<br />
<img width="480" height="360" src="http://hiyayakko.sarashi.com/ChangePuzzle/Change009.png" alt="v001" /><br clear="all" />
<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle009.zip">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle009.zip</a>　(2009.12.27)<br />
ホームページ　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html</a>  <br />
<br />
したらば掲示板（コメントなどはこちらへ）<br />
<a href="http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1261713900/">http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1261713900/</a>]]>
    </description>
    <category>並べて消すパズルを作る</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B/%E8%AA%B0%E3%81%AB%E9%81%A0%E6%85%AE%E3%81%97%E3%81%A6%E3%82%93%E3%81%A0%E3%81%8B</link>
    <pubDate>Sun, 27 Dec 2009 03:13:53 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/67</guid>
  </item>
    <item>
    <title>並べて消すパズルを作る（１）</title>
    <description>
    <![CDATA[頭のリハビリ兼ねて、なんか簡単なもの作ってみようと思った。<br />
いわゆる「ズーキーパー」系の、縦横に３つ並べて消すパズルを作ろうと思う。<br />
<br />
ぼちぼち作ってみたけど、作るよりプログラムの解説っぽいのがめんどい。<br />
だめだなあ。一度枯れた情熱はなかなか戻らない。<br />
<br />
<br />
<img width="480" height="360" alt="v001" src="http://hiyayakko.sarashi.com/ChangePuzzle/Change002.jpg" /><br clear="all" />
<br />
ダウンロード　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle002.zip">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle002.zip</a> 　(2009.12.25)<br />
<br />
ホームページ　<a href="http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html">http://hiyayakko.sarashi.com/ChangePuzzle/ChangePuzzle.html</a><br /><br /><a href="https://hiyayakkoprog.blog.shinobi.jp/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B%EF%BC%88%EF%BC%91%EF%BC%89" target="_blank">つづきはこちら</a>]]>
    </description>
    <category>並べて消すパズルを作る</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B/%E4%B8%A6%E3%81%B9%E3%81%A6%E6%B6%88%E3%81%99%E3%83%91%E3%82%BA%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B%EF%BC%88%EF%BC%91%EF%BC%89</link>
    <pubDate>Fri, 25 Dec 2009 02:47:45 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/66</guid>
  </item>
    <item>
    <title>そして時は流れて</title>
    <description>
    <![CDATA[半年ぐらい、何もしてなかった気がする。<br />
エントリ読み直してみたら、９月中ほどあたりから失踪してた模様。まる３ヶ月ってところか。<br />
<br />
ほんと、何もしてない。<br />
手がつかないほど忙しかったわけでもなく、ただ一度集中力が切れただけ。<br />
<br />
一度集中力が切れたら、ほんとに手が動かなくなる。頭がまわらなくなる。<br />
何か作りたい、生み出したい気持ちは日に日に強くなっていくけど、規模を見積もりすると<br />
すぐに気持ちが萎えてしまう。<br />
そして萎えた気持ちに自己嫌悪して。<br />
<br />
こんな感じで過ごしてた空白時間。<br />
もう一度簡単なところから出直して、少しでも流れを取り戻したい。<br />
<br />]]>
    </description>
    <category>雑談</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E9%9B%91%E8%AB%87/%E3%81%9D%E3%81%97%E3%81%A6%E6%99%82%E3%81%AF%E6%B5%81%E3%82%8C%E3%81%A6</link>
    <pubDate>Sun, 20 Dec 2009 09:35:35 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/65</guid>
  </item>
    <item>
    <title>検証！必勝パターン（５）</title>
    <description>
    <![CDATA[勝ちパターンの計算については、だいたい文章化できたかな？<br />
<br />
<strong>１．自分のコマの上下左右斜め列に＋１０点<br />
２．相手のコマの上下左右斜め列に－１０点<br />
３．４隅は無条件に＋１点<br />
４．中央を開けて○と&times;がにらみ合いになったときは、残る角に＋１５点<br />
<br />
※<br />
５．１列に自分のコマがふたつあるときは、残りの空白列に＋１００点<br />
ここに置いたら勝ちなので、最優先でここに置く。<br />
６．１列に相手のコマがふたつあるときは、残りの空白列に＋８０点<br />
ここを残して相手にまわしたら負けるので、条件５の次に優先<br />
</strong><br />
<br />
このルールで盤面計算しなおして、再検証してみる。<br />
<strong><br />
ケース４<br />
対角</strong><br />
<a href="//hiyayakkoprog.blog.shinobi.jp/File/MB012-6.png" target="_blank"><img border="0" align="left" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252427976/" alt="MB012-6.png" /><br clear="all" />
</a>いきなりルール３の<strong>「角は＋１点」</strong>忘れてるけど。<br />
このケース４のためにルール４追加したんだから、うまくいってもらわないと困る。<br />
<br />
４手目&times;はリーチ阻止でここ一拓。<br />
５手目の決定も、この新ルールで予想外にうまくいった。<br />
角３つ押さえた形でダブルリーチ。これで勝ち。<br />
<br />
<br />
<strong>ケース３<br />
辺の角</strong><br />
<br />
<a href="//hiyayakkoprog.blog.shinobi.jp/File/MB012-7.png" target="_blank"><img border="0" align="left" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252427897/" alt="MB012-7.png" /><br clear="all" />
</a><br />
いちばん素直な形じゃないかな。<br />
１０点のところが１マス。ここに置いてみる。<br />
４手目の&times;の人は、リーチ阻止するしかない。<br />
で、５手目は&times;のリーチ阻止が○側のダブルリーチになる。確定。<br />
<br />
<br />
<strong><br />
ケース２<br />
桂馬飛び</strong><br />
<a href="//hiyayakkoprog.blog.shinobi.jp/File/MB012-8.png" target="_blank"><img border="0" align="left" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252427898/" alt="MB012-8.png" /></a><br clear="all" />
<br />
これも、この日のために追加したルール３<strong>「角は＋１点」</strong>をフル活用。<br />
３手目は左下隅に確定。<br />
あとは&times;側リーチ阻止 &rarr; ○側リーチ阻止 の、５手目でダブルリーチ。<br />
<br />
<br />
<strong>ケース１<br />
接辺</strong><br />
<a target="_blank" href="//hiyayakkoprog.blog.shinobi.jp/File/MB012-9.png"><img border="0" align="left" alt="MB012-9.png" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252427899/" /></a><br clear="all" />
処理ごまかしてる。<br />
ホントは対角になる右下ではなく左下を優先しないといけないんだけど。<br />
なんかうまく出来てしまった。<br />
<br />
４手目の&times;はリーチ阻止するしかない。<br />
で、５手目はいちばん点数の高い右下でダブルリーチ。すなわち勝利確定。<br />
<br />
<br />
<br />
いいんじゃね？<br />
なかなか、いい感じじゃね？<br />
<br />
プログラム組む前は、いちど仮置きして、&times;側から評価しないといけないと読んでた。<br />
ここに置いたら相手がこう置く。そう来たらこう返すみたいな感じの３手読み。<br />
それが盤面に点数つけていちばんいいところに置けば済むんだから、うまく出来たと自画自賛。<br />
<br />
<br />
<strong><span style="background-color: rgb(51, 153, 102);"><font color="#ffff00">main.cpp</font></span></strong><hr />
<font color="#99cc00">// CPU思考ルーチン</font><br />
void CpuTurn()<br />
{<br />
&nbsp;&nbsp;&nbsp; int x,y;<br />
&nbsp;&nbsp;&nbsp; int bx,by;<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // 点数評価テーブル</font><br />
&nbsp;&nbsp;&nbsp; int tb[3][3]={0};<br />
&nbsp;&nbsp;&nbsp; int c=-99;<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // （１）次に自分が勝てる手があれば迷わずそこへ置く</font><br />
&nbsp;&nbsp;&nbsp; if(CheckDouble(game.Player,bx,by)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; board[by][bx]=game.Player;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ChangeTurn();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // （２）相手からのリーチはなるべく阻止！</font><br />
&nbsp;&nbsp;&nbsp; if(CheckEnemyDouble(game.Player,bx,by)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; board[by][bx]=game.Player;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ChangeTurn();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // ４隅にゲタをはかせる</font><br />
&nbsp;&nbsp;&nbsp; tb[0][0]++;<br />
&nbsp;&nbsp;&nbsp; tb[0][2]++;<br />
&nbsp;&nbsp;&nbsp; tb[2][0]++;<br />
&nbsp;&nbsp;&nbsp; tb[2][2]++;<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // ２ターン目、&times;側は中央が空いてたら最優先</font><br />
&nbsp;&nbsp;&nbsp; if(game.Turn==1)tb[1][1]+=50;<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // 評価点加点</font><br />
&nbsp;&nbsp;&nbsp; for(y=0;y&lt;3;y++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(x=0;x&lt;3;x++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(board[y][x]==game.Player){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;3;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[y][i]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[i][x]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x==y){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][0]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[1][1]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][2]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(((x-y)*(y-x)==-4)||(x==1&amp;&amp;y==1)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][2]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[1][1]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][0]+=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if(board[y][x]!=NONE){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;3;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[y][i]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[i][x]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x==y){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][0]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[1][1]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][2]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(((x-y)*(y-x)==-4)||(x==1&amp;&amp;y==1)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][2]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[1][1]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][0]-=10;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // 対角でにらみあいが発生したときは角の優先度を上げる</font><br />
&nbsp;&nbsp;&nbsp; if(((board[0][0]!=NONE)&amp;&amp;(board[1][1]==NONE)&amp;&amp;(board[2][2]!=NONE))||<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((board[0][2]!=NONE)&amp;&amp;(board[1][1]==NONE)&amp;&amp;(board[2][0]!=NONE))) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][0]+=15;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[0][2]+=15;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][0]+=15;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tb[2][2]+=15;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp; // 評価点のいちばん高いポイントを探す</font><br />
&nbsp;&nbsp;&nbsp; bx = by = c = -99;<br />
&nbsp;&nbsp;&nbsp; for(y=0;y&lt;3;y++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(x=0;x&lt;3;x++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((board[1][1]!=game.Player)&amp;&amp;(tb[y][x]==0))continue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((board[y][x]==NONE)&amp;&amp;(tb[y][x]&gt;c)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bx = x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by = y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = tb[y][x];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; if(c!=-99){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; board[by][bx]=game.Player;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ChangeTurn();<br />
&nbsp;&nbsp;&nbsp; } else {<br />
<font color="#99cc00">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ここに来ることはない。はず！</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bx = GetRand(2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by = GetRand(2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(board[by][bx]==NONE){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; board[by][bx]=game.Player;&nbsp;&nbsp; <font color="#99cc00">// 手番のひとのカーソルを置く</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ChangeTurn();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<hr />
<br />
この、冒頭のルールを頭に入れてたら、この意味不明のソースが<br />
ちょっとは輝いて見えるようになってると思うがどうか。<br />
<br />
ルール再掲載<br />
<strong>１．自分のコマの上下左右斜め列に＋１０点<br />
２．相手のコマの上下左右斜め列に－１０点<br />
３．４隅は無条件に＋１点<br />
４．中央を開けて○と&times;がにらみ合いになったときは、残る角に＋１５点<br />
<br />
※<br />
５．１列に自分のコマがふたつあるときは、残りの空白列に＋１００点<br />
ここに置いたら勝ちなので、最優先でここに置く。<br />
６．１列に相手のコマがふたつあるときは、残りの空白列に＋８０点<br />
ここを残して相手にまわしたら負けるので、条件５の次に優先<br />
<br />
</strong>で、前に作ったリーチ状態の確認を盤面評価にうまく組み込めるかと目論んでたんだけど、<br />
だらっと長くなったルール１、２、<strong>「評価点加点」</strong>の部分がさらに長くなりそうなので<br />
前作った部分をそのまま流用することにした。<br />
<br />
ここまででCPU思考ルーチンのだいたい８割は説明できたかな。<br />
あと、２手目で中央に置かれたときと&times;を受け持ったとき用の、いやらしい微調整だけ。<br />
<br />
<br />
<br />
<br />
ブログエントリ<br />
○&times;ゲームを作る（１）<br />
<a href="http://hiyayakkoprog.blog.shinobi.jp/Entry/53/">http://http://hiyayakkoprog.blog.shinobi.jp/Entry/53/</a> <br />
<br />
ダウンロードＨＰ<br />
<a href="http://hiyayakko.sarashi.com/MaruBatu/MaruBatu.html">http://hiyayakko.sarashi.com/Marubatu/MaruBatu.html</a> <br />
<br />
したらば掲示板<br />
<a href="http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100">http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100</a><br />
<br />
<br type="_moz" />]]>
    </description>
    <category>○×ゲーム</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E2%97%8B%C3%97%E3%82%B2%E3%83%BC%E3%83%A0/%E6%A4%9C%E8%A8%BC%EF%BC%81%E5%BF%85%E5%8B%9D%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%EF%BC%88%EF%BC%95%EF%BC%89</link>
    <pubDate>Tue, 08 Sep 2009 17:24:09 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/64</guid>
  </item>
    <item>
    <title>検証！必勝パターン（４）</title>
    <description>
    <![CDATA[やっと、勝ちパターンの検証も最終局面。<br />
<br />
<strong>パターン４<br />
対角</strong><br />
<br />
<a href="//hiyayakkoprog.blog.shinobi.jp/File/MB12-5.png" target="_blank"><img border="0" align="left" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252423104/" alt="MB12-5.png" /></a><br clear="all" />
ふむ。今までのパターンが使えない。<br />
１０点のところに置くと、勝ち目がないどころか負けてしまう。<br />
<br />
正解は残りの角を狙うこと。<br />
<strong>特別ルール</strong>でも作りますか。割と安易に。<br />
<br />
<strong><font color="#ff00ff">特別ルール</font></strong><font color="#ff00ff"><br />
中央を空けて対角でにらみ合いが発生した場合、残りの角を優先する<br />
</font><br />
優先するためには１０点以上与えないといけない。＋１５点ぐらい出しておくか？<br />
<br />
<br />
<br />
ブログエントリ<br />
○&times;ゲームを作る（１）<br />
<a href="http://hiyayakkoprog.blog.shinobi.jp/Entry/53/">http://http://hiyayakkoprog.blog.shinobi.jp/Entry/53/</a> <br />
<br />
ダウンロードＨＰ<br />
<a href="http://hiyayakko.sarashi.com/MaruBatu/MaruBatu.html">http://hiyayakko.sarashi.com/Marubatu/MaruBatu.html</a> <br />
<br />
したらば掲示板<br />
<a href="http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100">http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100</a><br />
<br />
<br type="_moz" />]]>
    </description>
    <category>○×ゲーム</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E2%97%8B%C3%97%E3%82%B2%E3%83%BC%E3%83%A0/%E6%A4%9C%E8%A8%BC%EF%BC%81%E5%BF%85%E5%8B%9D%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%EF%BC%88%EF%BC%94%EF%BC%89</link>
    <pubDate>Tue, 08 Sep 2009 15:36:16 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/63</guid>
  </item>
    <item>
    <title>検証！必勝パターン（３）</title>
    <description>
    <![CDATA[落書き画像作ってブログに入れるの、慣れてきた。<br />
思ってたより楽勝。<br />
この調子でいけるなら、１パターン１エントリじゃなく、全部詰め込んでも耐えられる長さだったか。<br />
まあ今さらなんなんだし、あと少しこのまま突っ走る。<br />
<br />
<strong><br />
パターン３<br />
自辺の角</strong><br />
<br />
<a target="_blank" href="//hiyayakkoprog.blog.shinobi.jp/File/MB012-4.png"><img border="0" align="left" alt="MB012-4.png" src="//hiyayakkoprog.blog.shinobi.jp/Img/1252423089/" /></a><br clear="all" />
<br />
<br />
このパターンをパターン１にするべきだったか。<br />
この形を見て、プログラムに応用できるとひらめいたんだ。<br />
<br />
このパターンだと、１０点は１箇所だけで、他は相殺される。そしてこの場所が正解。<br />
<br />
<br />
<br />
<br />
ブログエントリ<br />
○&times;ゲームを作る（１）<br />
<a href="http://hiyayakkoprog.blog.shinobi.jp/Entry/53/">http://http://hiyayakkoprog.blog.shinobi.jp/Entry/53/</a> <br />
<br />
ダウンロードＨＰ<br />
<a href="http://hiyayakko.sarashi.com/MaruBatu/MaruBatu.html">http://hiyayakko.sarashi.com/Marubatu/MaruBatu.html</a> <br />
<br />
したらば掲示板<br />
<a href="http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100">http://jbbs.livedoor.jp/bbs/read.cgi/computer/42268/1251347335/-100</a><br />
<br />
<br type="_moz" />]]>
    </description>
    <category>○×ゲーム</category>
    <link>https://hiyayakkoprog.blog.shinobi.jp/%E2%97%8B%C3%97%E3%82%B2%E3%83%BC%E3%83%A0/%E6%A4%9C%E8%A8%BC%EF%BC%81%E5%BF%85%E5%8B%9D%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%EF%BC%88%EF%BC%93%EF%BC%89</link>
    <pubDate>Tue, 08 Sep 2009 15:24:40 GMT</pubDate>
    <guid isPermaLink="false">hiyayakkoprog.blog.shinobi.jp://entry/62</guid>
  </item>

    </channel>
</rss>