★考え方
盤面の駒はAA18:AD98の表、特にAB列の数値により表示されます。
そこでAB列の数値を参照して数式を作ります。例えばAB18の
数値を見れば、王の表示位置がわかります。
王の表示列:=MOD(AB18,9)+1 (盤面左からの列数)
王の表示行:=INT(AB18/9)-1 (ワークシートの行数)
飛車・角の位置も同様です。
飛車1の表示列:=MOD(AB19,9)+1 (盤面左からの列数)
飛車1の表示行:=INT(AB19/9)-1 (ワークシートの行数)
飛車2の表示列:=MOD(AB20,9)+1 (盤面左からの列数)
飛車2の表示行:=INT(AB20/9)-1 (ワークシートの行数)
角1の表示列:=MOD(AB21,9)+1 (盤面左からの列数)
角1の表示行:=INT(AB21/9)-1 (ワークシートの行数)
角2の表示列:=MOD(AB22,9)+1 (盤面左からの列数)
角2の表示行:=INT(22/9)-1 (ワークシートの行数)
【第6回の解答例】
王手となるのは・・・
「王」と「飛車1」の列位置が等しい
「王」と「飛車1」の行位置が等しい
「王」と「飛車2」の列位置が等しい
「王」と「飛車2」の行位置が等しい
・・・上の4条件の少なくとも一つが成り立てばよいから・・・
=OR(MOD(AB18,9)+1=MOD(AB19,9)+1, MOD(AB18,9)+1=MOD(AB20,9)+1, INT(AB18/9)-1 =INT(AB19/9)-1,INT(AB18/9)-1=INT(AB20/9)-1)
整理すると
=OR(MOD(AB18,9)=MOD(AB19,9), MOD(AB18,9)=MOD(AB20,9), INT(AB18/9) =INT(AB19/9),INT(AB18/9)=INT(AB20/9))
よって
=IF(OR(MOD(AB18,9)=MOD(AB19,9),MOD(AB18,9)=MOD(AB20,9),INT(AB18/9)=INT(AB19/9),INT(AB18/9)=INT(AB20/9)),"王手!","")
【第7回の解答例】
角で王手の場合は、角と王を結ぶ直線と盤面の横線のなす角(θ)が45度の時である。
すなわちtanθ=±1の時である。
よってtanθ^2= 1
なんだかんだで整理して・・・(^^ゞ ←学生なら減点間違いなし m(__)m
=IF(OR((MOD(AB18,9)-MOD(AB21,9))^2=(INT(AB18/9)-INT(AB21/9))^2,(MOD(AB18,9)-MOD(AB22,9))^2=(INT(AB18/9)-INT(AB22/9))^2),"王手!","")
最近のコメント