首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

范例-15-猜数字

2012-07-26 
实例-15---猜数字? 经典游戏,猜数字。各种不解释,因为最近发生了一些事情,所以好几天没有发了,两年来在学校

实例-15---猜数字

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

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


范例-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;//游戏结束的标志@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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则回到0if( 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的值加1elsenB ++;//如果位置不相同,则n的值加1}}}if( nA == 4 ){//猜数成功m_strItem.setText("成功");m_bEndGame = true;return;}elsem_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("");}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif( 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

热点排行