android猜数字游戏程序代码以及效果图

温柔似野鬼°
972次浏览
2021年01月01日 04:04
最佳经验
本文由作者推荐

小型企业会计制度-横批

2021年1月1日发(作者:丰道生)


android真机测试运行效果图如下:


以下是文件

**************************************
package nggame;

import
import ty;
import
import
import
import

public class MainActivity extends Activity {































private Button easyBtn; 响应“简单”按钮
private Button normalBtn;响应“标准”按钮
private Button hardBtn; 响应“困难”按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
setContentView(ty_main);
initControl(); 初始化控件
}
初始化控件
public void initControl(){
easyBtn = (Button)findViewById();
normalBtn = (Button)findViewById();
hardBtn = (Button)findViewById();
}

响应button点击事件
public void clickButton(View v){
Intent intent = new Intent( , );
switch (()) {
case :
ra(
ra(
startActivity(intent);
break;
case :
ra(
ra(
startActivity(intent);





















}




break;
case :
ra(
ra(
startActivity(intent);
break;

default:
break;
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(, menu);
return true;
}
以下是文件

*******************************
package nggame;

import ist;
import

import ty;
import ialog;
import Interface;
import kListener;
import
import
import le;
import tcher;
import nt;
import
import em;
import


import istener;
import ;
import xt;
import utton;
import ew;
import

public class GuessingGame extends Activity{




































private int guessNums; 猜测总次数
private int guessCounts;猜测次数统计
private int numOfData; 给定猜测的位数
private int[] randomNum; 生成随机数
private int countNums; 用户输入数字的位数统计
private int[] userInputNum; 用户输入数字
private StringBuffer ARight; 已经猜对的数字
private int ARightLength; ARight的长度
private List list; 用于记录用户按下的数字

private ToolMethods toolMth; 获取随机数方法类

private EditText editAnswer; 显示输入的答案
private TextView guessingInfo;显示猜测结果
private ImageButton imageBtn; 提示按钮
private Button createNum; 生成随机数按钮
private Button answerBtn; 查看答案
private Button guessBtn; “开始猜”按钮
private Button[] numButtons; 拥有0~9数字的button按钮
拥有0~9数字的ID号
private int[] numButtonsID = { , , ,
, , ,
, , , };
@Override
protected void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
setContentView(ng);

init(); 初始化
}

private void init() {
数据初始化
int temp = 0;
temp = getIntent().getIntExtra(


















































guessNums = temp;
temp = getIntent().getIntExtra(
numOfData = temp;
guessCounts = 0;
randomNum = new int[numOfData];
countNums = 0;
userInputNum = new int[numOfData];

方法类初始化
toolMth = new ToolMethods();

控件初始化
editAnswer = (EditText)findViewById(swer);
guessingInfo = (TextView)findViewById(ngInfo);
imageBtn = (ImageButton)findViewById(tn);
createNum = (Button)findViewById(Num);
answerBtn = (Button)findViewById();
guessBtn = (Button)findViewById();
numButtons = new Button[10];
for(int i = 0; i < 10; i++){
numButtons[i]=(Button)findViewById(numButtonsID[i] );
}
t(随机生成位数

eyListener(new onKeyListener());输入框响应事件
tChangedListener(new textWatcher());输入字符串超过长度响应

getApplicationContext()对于整个应用处于运行期间有效
alog( , 吴康大侠,您好! 3000, false, true);


事件



}

输入字符串超过长度响应事件
public class textWatcher implements TextWatcher{

private int selectionStart = 0;
private int selectionEnd = 0;
private CharSequence temp = null;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override


public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
temp = s;
}

@Override
public void afterTextChanged(Editable s) {
selectionStart = ectionStart();
selectionEnd = ectionEnd();
if(() > numOfData)
{
xt(, 请不要超过+ numOfData + 位数
_SHORT).show();
(selectionStart-1, selectionEnd);
int tempSelection = selectionStart;
t(s);
ection(tempSelection);
}
}
}

输入框响应事件
public class onKeyListener implements OnKeyListener{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == E_DEL){
if(t().toString().length() < numOfData){
for(Button tempBtn : numButtons){
bled(true);
}
}
tFocus();
}
if(keyCode == E_0 || keyCode == E_1 ||
keyCode == E_2 ||
keyCode == E_3 || keyCode == E_4 ||
keyCode == E_5 ||
keyCode == E_6 || keyCode == E_7 ||
keyCode == E_8 || keyCode == E_9){
judgeNumsCount();
}
return false;
}
}














































响应产生随机数的函数
public void createNum(View v){
randomNum = Num(numOfData);
ibility(E);







}

t(不重复的位数
bled(false);
bled(true);
bled(true);
for(int i = 0; i < 10; i++){
numButtons[i].setEnabled(true);
}
响应0~9数字按钮的函数
public void numButton(View v){
for(int i = 0; i < 10; i++){
if(v == numButtons[i]){
获取光标的位置
int index = ectionStart();
Editable editable = t();
(index, numButtons[i].getText().toString());
judgeNumsCount();
break;
}
}
}

public void judgeNumsCount(){
list = new ArrayList();
当“输入位数”==“给定猜测的位数”时,数字按钮将失效
if(t().toString().length() == numOfData){
for(Button tempBtn : numButtons){
bled(false);
}
int temp = nt(t().toString());
int[] tempNum = new int[numOfData];
for(int j = 0; j < numOfData; j++){
tempNum[j] = temp % 10;
temp = temp10;
}
for(int j = numOfData - 1; j >= 0 j--){
(tempNum[j]);
}
}










else{
for(Button tempBtn : numButtons){
bled(true);
}
}
}

public void guessButton(View v){
int Acounts = 0; 统计A的次数
int Bcounts = 0; 统计B的次数

ARight = new StringBuffer(你已经猜对了:
ARightLength = ();
if(v == guessBtn){
if(t().toString().length() !=numOfData){
xt(this, 请输入位数,不然不能猜的(⊙o⊙)
哦~~
}else if(!ated(list)){
xt(this, 请不要输入重复数字
}else{
judgeNumsCount();
for(int i = 0; i < (); i++){
userInputNum[i] = (i).intValue();
}
































guessCounts++; 统计已经猜的次数
for(int i = 0; i < numOfData; i++)
for(int j = 0; j < numOfData; j++){
if(userInputNum[i] == randomNum[j]){
if(i == j){
Acounts++; 统计A的次数
(userInputNum[i] + 、
}
else Bcounts++; 统计B的次数
}
}

if(guessCounts == guessNums){
if(Acounts == numOfData){
alog(, 您在最后一次机会中猜
对了答案,恭喜您!
StringBuffer showStr = new
StringBuffer(t().toString());
(+ t().toString() + +
Acounts +


t(showStr);
}
else{
r builder
r()


















.setTitle(可惜...
.setMessage(已经超过次
. setIcon()
= new
.setPositiveButton(确定

@Override
public void onClick(DialogInterface dialog, int which) {

}
});
().show();
}
ibility(BLE);
t(随机生成位数
bled(true);
bled(false);
bled(false);
t(
guessCounts = 0;
(0, ());
}
else if(Acounts == numOfData){
if(guessCounts == 1){
alog(, 您在第一次就猜对了答
案,太厉害了!
}
else{
alog(, 恭喜您猜对了!
true, false);
}
StringBuffer showStr = new
StringBuffer(t().toString());
(+ t().toString() + +
Acounts +
ibility(BLE);
t(showStr);
t(随机生成位数
bled(true);
bled(false);


bled(false);
t(
guessCounts = 0;
(0, ());
}
else{
alog(, 您没有猜对!3000, false,
false);
StringBuffer showStr = new
StringBuffer(t().toString());
(+ t().toString() +
Acounts +
nt().setFakeBoldText(true);
nt().setAntiAlias(true);
nt().setFlags(INE_TEXT_FLAG);
t(showStr);
}
countNums = 0;
for(Button tempBtn : numButtons){
bled(true);
}
if(t().toString().length() == numOfData){
t(
}
}
}
}

public void imageButton(View v){
if(v == imageBtn){
String tempTitle,tempMessage;
if(ARight == null || () <= 0){
tempTitle = 提示:
tempMessage = 请开始吧!
}
else if(() == ARightLength){
tempTitle = 可惜„
tempMessage = 抱歉,你没有答对
}else{
tempTitle = 提示:
tempMessage = ing(0, ()-1);
}
r builder = new r();
le(tempTitle)
+





























.setMessage(tempMessage)
.setPositiveButton(确定
public void onClick(DialogInterface dialog, int which) {

}
});
().show();
}
}
public void answerButton(View v){
StringBuffer answerStr = new StringBuffer();
for(int temp : randomNum){
(temp);
}
r builder = new r();
le(答案如下:
.setMessage(answerStr)
.setPositiveButton(确定
public void onClick(DialogInterface dialog, int which) {

}
});
().show();
}
public boolean onCreateOptionsMenu(Menu menu) {
teOptionsMenu(menu);
*
* add()方法的四个参数,依次是: 1、组别,如果不分组的话就写,
* 2、Id,这个很重要,Android根据这个Id来确定不同的菜单 3、顺序,那个菜
单现在在前面由这个参数的大小决定
* 4、文本,菜单的显示文本
*












(1, 1, 1, 帮助
(1, 2, 2, 关于
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
r builder = new r(this);
switch (mId()) {
case 1:
le(帮助
.setMessage(ngGame)





























}





























}
.setPositiveButton(确定

@Override
public void onClick(DialogInterface dialog, int which) {

}
});
().show();
break;
case 2:











le(关于
.setMessage(玉树临风,嘿嘿~~
.setPositiveButton(确定

@Override
public void onClick(DialogInterface dialog, int which) {

}
});
().show();
break;
default:
break;
}
return onsItemSelected(item);
以下是文件

****************** ****************
package nggame;

import t;
import ;
import

import t;
import y;
import iew;


import Layout;
import

public class ToolMethods {


public int[] createNum(int numOfData) {
int[] randomNum = new int[numOfData];
int i = 0;
String[] tempArray;
do{
tempArray = getNumber(numOfData);
}while(!isRepeated(tempArray));
for(String tempNum : tempArray){
randomNum[i++] = nt(tempNum);
}
return randomNum;
}

生成随机数(字符串类型)
private String[] getNumber(int numOfData) {
String[] tempArray = new String[numOfData];
for(int i = 0; i < numOfData; i++){
int tempNum = (int)(()*10);
tempArray[i] = f(tempNum);
}
return tempArray;
}

验证随机数是否重复
private boolean isRepeated(String[] tempArray) {
Set set = new HashSet();
for(String tempStr : tempArray){
(tempStr);
}
if(() != ){
return false;
}
return true;
}

验证随机数是否重复
public boolean isRepeated(List list) {
Set set = new HashSet();




























}
for(int i = 0; i < (); i++){
((i));
}
if(() != ()){
return false;
}
return true;
}

public void showDialog(Context context, String message, int milliseconds,
boolean useSmileImage, boolean useCoolImage){
Toast dialog = xt(context, message, _LONG);
vity(, 0, 0);
LinearLayout dialogView = (LinearLayout)w();
ImageView useImage = new ImageView(context);
if(useSmileImage){
geResource();
}else if(useCoolImage){
geResource();
}else{
geResource();
}
w(useImage, 0);
ation(milliseconds);
();
}

一碧万顷-中小学生作文


分身情人mv-落花生教案


川子和嘟嘟-江城子欧阳炯


娱乐游戏节目-国际家庭日


北京风景-幼儿园小班科学教案


校园环境调查报告-公盟


360流量防火墙-春游作文


牧场上的家教案-簿熙