实例-15---猜数字

  经典游戏,猜数字。各种不解释,因为最近发生了一些事情,所以好几天没有发了,两年来在学校经历的事情确实很丰富,当然丰富并不是你们想象的,很多都不是我自己去选择的,而是只能忍受。分享自己的感受:为什么那么多人要追求财富和权力,因为他们遭遇到了太多需要钱和权的事情了。学生是弱势群体,因为他们没钱也没权,在家里,他们的保障来自于父母,在学校,他们的保障来自于学校,当学校不对学生负责时,他们要找谁?学校两年来都在告诉我们,我们谁都不能靠,只能靠自己。只能靠自己。因为只有自己才不会在足够的利益面前抛弃自己。不想说原因,在这个和谐的社会里。

下面给出效果图和原代码:



 package com.wjh.demon_15;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class Demon_15 extends Activity implements OnClickListener {
	public static final int  INPUT = 1;

	public EditText m_TFInput;						//文本编辑框
	public TextView m_strItem;					//文本显示组件
	public Button inputB ;
	public int m_aNum[];							//存储目标数
	public int m_nTimes = 0;						//输入的次数
	public boolean m_bEndGame = false;			//游戏结束的标志
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setTitle("猜数字");
		//产生目标数
		setContentView(R.layout.main);
		m_TFInput = (EditText)findViewById(R.id.ed);
		m_strItem = (TextView)findViewById(R.id.tv);
		inputB = (Button)findViewById(R.id.input_b);
		inputB.setOnClickListener(this);
		m_aNum = new int[4];
		InitNum();
	}
	public void InitNum(){							//产生随机的目标数
		Random random = new Random();
		int k = random.nextInt();
		int m = 0;
		for( int n = 0; n < 4; n ++ ){
			k = random.nextInt();
			m_aNum[n] = Math.abs(k % 10);
			//for循环语句,确保四个数位上的数字无重复
			for( m = 0; m < n; m ++ ){
				//若与前面的数字重复,则用加1的办法保证不重复
				if( m_aNum[n] == m_aNum[m] )
					m_aNum[n] ++;
				//若加1后大于9则回到0
				if( m_aNum[n] > 9 )
					m_aNum[n] = 0;
			}
		}
	}
	public boolean CheckNumber( char cNum[] ){	//检测数据是否合法
		if( cNum.length != 4 )
			return false;
		for( int i = 0; i < 4; i ++ ){
			for( int j = 0; j < i; j ++ ){
				//有两个数字相同了,确定是非法输入
				if( cNum[i] == cNum[j] ){
					return false;
				}
			}
		}
		return true;
	}
	public void FeedBack(char cNum[]){			//根据输入数反馈信息
		if( cNum.length != 4 )
			return;
		
		int nB = 0;									//记录B的个数,即m的值
		int nA = 0;									//记录A的个数,即n的值
		for( int i = 0; i < 4; i ++ ){
			for( int j = 0; j < 4; j ++ ){
				//cNum[i]是字符,需先转换成对应的数字,再与m_aNum[j]进行比较
				if( (int)(cNum[i] - '0') == m_aNum[j] ){
					if( i == j )
						nA ++;						//如果位置也相同,则m的值加1
					else
						nB ++;						//如果位置不相同,则n的值加1
				}
			}
		}
		if( nA == 4 ){								//猜数成功
			m_strItem.setText("成功");
			m_bEndGame = true;
			return;
		}
		else
			m_nTimes ++;
		if( m_nTimes > 5 ){							//猜数失败					
			m_strItem.setText("失败");
			m_bEndGame = true;
			return;
		}
		//输出反馈信息
		StringBuffer temp = new StringBuffer();
		temp.append(nB);
		temp.append("B");
		temp.append(nA);
		temp.append("A");
		m_strItem.setText(temp.toString());	
		m_TFInput.setText("");
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		if( m_bEndGame )
			return;
		if (v == inputB){						//指令被触发
			char cNum[] = new char[4];
			 m_TFInput.getText().toString().getChars(0,cNum.length,cNum,0);
			 Log.d("ddd", m_TFInput.getText().toString());
			 if( !CheckNumber( cNum ) )
			{//如果输入数不合法
				m_strItem.setText("");
				m_TFInput.setText("");
				m_strItem.setText("非法数字");
				
				return;		
			}
			FeedBack(cNum);							//反馈信息
		}
		
	}
}

 apk文件(将后缀改为apk):Demon_15.zip

源代码:Demon_15.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值