示例#1
0
		/// <summary>
		/// 是否是正确的位置序列,包括1.是否合法,2.是否可连接,3.是否同一颜色<br>
		/// 这里为了保证方法的划分,没有使用全部的大循环做,可能会浪费一点性能。<br>
		/// 战斗内目前最长的链接为9,这个数量级理论上不会对性能造成太大消耗。
		/// </summary>
		/// <param name="actionArray"> </param>
		/// <param name="battlingHeroArr">
		/// @return </param>
		public static bool isRightActionArr(int[] actionArray, HeroPoint[] battlingHeroArr)
		{
			bool _rightAction = true;
			if (actionArray.Length < BattleConstants.HERO_LEAST_POINT)
			{
				return false;
			}
			_rightAction = isRightPointArr(actionArray);
			if (_rightAction)
			{
				_rightAction = isConnectAbleArray(actionArray);
			}
			if (_rightAction)
			{
				_rightAction = isSameColors(actionArray, battlingHeroArr);
			}
			return _rightAction;
		}
示例#2
0
		/// <summary>
		/// 点序列是否全部是同一颜色,并且非空
		/// </summary>
		/// <param name="indexArray"> </param>
		/// <param name="battlePoint">
		/// @return </param>
		public static bool isSameColors(int[] indexArray, HeroPoint[] battlePoint)
		{
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int _length = indexArray.length;
			int _length = indexArray.Length;
			bool _sameColor = true;
			HeroColor _color = null;
			for (int _index = 0; _index < _length; _index++)
			{
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int _realIndex = indexArray[_index];
				int _realIndex = indexArray[_index];
				HeroColor _curColor = battlePoint[_realIndex].Color;
				if (_curColor == null) // 如果取出的颜色是空,直接返回错误
				{
					_sameColor = false;
				}
				else
				{
					if (_color == null)
					{
						_color = _curColor;
					}
					_sameColor = _curColor == _color;
				}
				if (!_sameColor)
				{
					break;
				}
			}
			return _sameColor;
		}