SuanFa/JiangJun.cs
(开头部分) 27KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections;
using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder;
namespace Chess.SuanFa // 算法
{
/// <summary>
/// 将军
/// </summary>
class JiangJun // 将军
{
/// <summary>
/// 棋子移动后,判断对方是否被绝杀
/// </summary>
/// <param name="moveQiZi">最后移动的棋子</param>
/// <returns>true=已被绝杀</returns>
public static bool IsJueSha(int moveQiZi)
{
int[] jiangJunQiZi = { -1, -1, -1 };
if (moveQiZi < 16) jiangJunQiZi = IsJiangJun(16); // 检查红帅是否被将军。
if (moveQiZi >= 16) jiangJunQiZi = IsJiangJun(0); // 检查黑将是否被将军
GlobalValue.jiangJunTiShiText = "战况信息:"; // 在棋盘上部用文字显示棋局状态,主要用于调试,后期可优化为图像模式
if (jiangJunQiZi[0] == -1) return false; // 没有被将军时,则不需检测是否绝杀
string gongJiQiZi1; // 第一个攻击棋子的名字
if (jiangJunQiZi[1] != -1) gongJiQiZi1 = GlobalValue.qiZiImageFileName[jiangJunQiZi[1]]; else gongJiQiZi1 = "";
string gongJiQiZi2; // 第二个攻击棋子的名字
if (jiangJunQiZi[2] != -1) gongJiQiZi2 = "和" + GlobalValue.qiZiImageFileName[jiangJunQiZi[2]]; else gongJiQiZi2 = "";
if (jiangJunQiZi[0] == 0) // 被将军的是黑将
{
GlobalValue.jiangJunTiShiText = System.Environment.NewLine + "【黑将】正被将军!";
bool[,] points = MoveCheck.GetPathPoints(0, GlobalValue.QiPan); // 获取黑将的可移动路径
bool selfCanMove = false;
for (int i = 3; i <= 5; i++)
for (int j = 0; j <= 2; j++)
{
if (points[i, j] == true && !MoveCheck.IsKilledPoint(0, i, j, GlobalValue.QiPan)) // 检查黑将可移动路径是否是对方的攻击点
{
selfCanMove = true; // 如果不是对方的攻击点,则可移动到请该点。
break;
}
}
if (selfCanMove) // 黑将可移动解杀时
{
GlobalValue.jiangJunTiShiText += System.Environment.NewLine + "【黑将】被" + gongJiQiZi1 + "将军,可移动位置解杀。";
return false;
}
else // 黑将不可移动时
{
if (jiangJunQiZi[2] != -1) // 如果是双将
{
if ((jiangJunQiZi[1] is 21 or 22) || (jiangJunQiZi[2] is 21 or 22))
{
GlobalValue.jiangJunTiShiText += Environment.NewLine + "【黑将】不能移动,被" + gongJiQiZi1 + gongJiQiZi2 + "双将绝杀!";
return true;
}
GlobalValue.jiangJunTiShiText += Environment.NewLine + "【黑将】被" + gongJiQiZi1 + gongJiQiZi2 + "双将,请求外援!";
后面还有 475 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
