package com.wing.poem.control;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.util.Log;
import android.widget.ArrayAdapter;
import com.wing.poem.PoemActivity;
import com.wing.poem.R;
import com.wing.poem.vo.CheckPoint;
import com.wing.poem.vo.Poem;
public class Rule {
	public enum STATUS { 
			NORMAL,ERROR,OVER,RIGHT;
		} 
	private CheckPoint chpoint;
	private PoemActivity activity;
	private ArrayAdapter<String> adapter;
	private static Rule rule;
	public static Rule getInstance(PoemActivity activity){
		if(rule == null)
			rule  = new Rule(activity);
		return rule;
		
	}
	private Rule(PoemActivity activity){
		this.activity = activity;
	}
	public void init(CheckPoint p,ArrayAdapter<String> adapter){
		this.adapter = adapter;
		chpoint = p;
	}
	/**
	 * 
	 * @param p
	 * @param adapter
	 * @param count
	 * @return
	 */
	public void checkRight(int acitonNumber){
		
		final STATUS result = getStatus(acitonNumber);
		Log.d("check", result+":"+acitonNumber);
		if(result!=STATUS.NORMAL){
			activity.handler.removeMessages(0);
			String tips = activity.getResources().getStringArray(R.array.tips)[result.ordinal()];
	        new AlertDialog.Builder(activity)
	        .setTitle(tips)
	        .setPositiveButton(result==STATUS.RIGHT?R.string.next:R.string.retry,
	            new DialogInterface.OnClickListener() {
	                public void onClick(DialogInterface dialog, int whichButton) {
	                	activity.initPoem(result==STATUS.RIGHT?true:false);
	                }
	            }
	        ).setCancelable(false).show();
		}
		
	}
	private STATUS getStatus(int time){
		if(time<1)
			return STATUS.OVER;
		int[] key = chpoint.getKey();
		if(adapter.getCount() >key.length){
				return  STATUS.NORMAL;
		}else if(key.length == adapter.getCount()){
			for(int i=0;i<key.length;i++){
				Log.d("check", i+":"+key[i]+":"+chpoint.getPoem().getContent().get(key[i])+":"+adapter.getItem(i));
				if(!chpoint.getPoem().getContent().get(key[i]).equalsIgnoreCase(adapter.getItem(i)))
						return STATUS.NORMAL;
			}
			chpoint.setAchieve(time);
			return STATUS.RIGHT;
		}else{
			return STATUS.ERROR;
		}
	}
}
 最近下载更多
最近下载更多
                 最近浏览更多
最近浏览更多
                
                anjuw521     LV1
                2024年7月10日
            
            
        
                AIWU1234     LV2
                2024年6月9日
            
            
        
                求学的熊猫     LV11
                2024年6月3日
            
            
        
                yhwyhw1     LV2
                2023年12月19日
            
            
        
                lmroman     LV8
                2023年4月27日
            
            
        
                sunny1314    
                2023年3月30日
            
            
                    暂无贡献等级
            
        
                yzhszz     LV3
                2022年12月27日
            
            
        
                不正经的90后程序猿     LV1
                2022年9月12日
            
            
        
                17366635519     LV1
                2022年8月30日
            
            
        
                1532593037     LV8
                2022年6月3日
            
            
        
 
     
                 
                 
                