Java小游戏算法入门(扑克牌算法)

一)焖鸡简介

1)规则

2)案例



二)算法设计

1)枚举类型设计

public class MenjiEnum {

	/**
	 *焖鸡牌类型
	 *
	 * @author xiu
	 * @version 2017年8月1日 下午4:06:32 
	 */
	public enum MJCardType {
		/**豹子*/ 
		BAO_ZI(0), 
		/**同花顺*/ 
		TONG_HUA_SHUN(1), 
		/**金花*/ 
		JIN_HUA(2), 
		/**顺子*/ 
		SHUN_ZI(3), 
		/**对子*/ 
		DUI_ZI(4),
		/**散牌*/ 
		SAN_PAI(5), 
		/**特殊*/ 
		TE_SHU(6);

		private final int value;

		private MJCardType(int value) {
			this.value = value;
		}

		public int getValue() {
			return value;
		}

	}

	/**
	 *焖鸡牌花色类型
	 *
	 * @author xiu
	 * @version 2017年8月1日 下午4:07:14 
	 */
	public enum CardBigType {
		/**黑桃1-13*/
		HEI_TAO,
		/**红桃14-26*/
		HONG_TAO, 
		/**梅花27-39*/
		MEI_HUA, 
		/**方块40-52*/
		FANG_KUAI,
		/**小王53*/
		XIAO_WANG,
		/**大王54*/
		DA_WANG, 
		/**癞子*/
		LAI_ZI;
	}
	
	
}

2)判断牌的类型算法

	/**
	 * 是否是顺子
	 * @param card
	 * @return
	 */
	public static boolean getSmallTypeIsShunzi(int[] card){
		
		if((card[0] != 0 && card[1] != 0 && card[2] != 0) && (card[0] != 1 && card[1] != 1 && card[2] != 1)){
			if(Math.abs(card[1]-card[0]) == 1 && Math.abs(card[2]-card[1]) == 1){
				return true;
			}
		} else if((card[0] == 11 && card[1] == 12 && card[2] == 0) || 
				(card[0] == 12 && card[1] == 0 && card[2] == 1) || (card[0] == 2 && card[1] == 3 && card[2] == 1)){
			return true;
		}
		
		return false;
	}
	
	/**
	 * 是否是豹子
	 * @param card
	 * @return
	 */
	public static boolean getSmallTypeIsBaozi(int[] card){
		if(card[0] == card[1] && card[1] == card[2]){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 是否是对子
	 * @param card
	 * @return
	 */
	public static boolean getSmallTypeIsDuizi(int[] card){
		if(card[0] == card[1] || card[1] == card[2]){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 是否是特殊
	 * @param card
	 * @return
	 */
	public static boolean getSmallTypeIsTeshu(int[] card){
		if(card[0] == 2 && card[1] == 3 && card[2] == 5){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 是否是同花
	 * @param cardBigTypes
	 * @ret
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值