这是我第一次写博客,不喜勿喷。
这次做的主要是利用android studio做一个java版的24点小程序。因为之前查阅资料没查到满意的,所以自己写了一个,给有需要的人提供一下帮助。内容中涉及到算24点的算法,以及一个关于计算器实现的java数据结构,关于这两部分的java代码我都参考网上的算法。
一:前台的设计比较简单,直接附上我的代码。
注意点:(1)要设置一个水平模式的布局(这步最好是在普通布局形成之后再操作),这主要是为了解决旋转带来的问题。具体操作如下:Project->app->src->res,然后右键 New->Android resource directory->Resource type改为layout,然后下面选择Oriention,然后ok,就生成layout-land文件夹,然后这里的xml中的内容直接把layout中的xml文件内容拷贝下来
二:java端代码主要总的包括三部分:(1)算24点的一个算法(难点)
(2)一个生成计算器的算法(难点)
(3)对布局文件中的控件的事件处理
package com.bignerdranch.android.point24game;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Arrays;
import java.util.Random;
/**
* 下面这个类主要起到控件事件的处理
*/
public class CalculatorActivity extends AppCompatActivity {
private static final String TAG="CalculatorActivity";
private static final String KEY_INDEX="index";
private static final String press_INDEX="press";
//private static boolean mShowQuestionPress=false;//表示显示问题的按钮有没有被按过
private Button mShowQuestionButton;//这是显示问题的按钮
private boolean mShowButtonPress=false;//这是为了判断是否按下了显示问题的按钮,主要是为了之后输入输入框中的数字,使我们出题的数字
private TextView mShowAnswerText;//显示问题的文本框
private EditText mCalcuteText;//这是输入框
private int number[]=new int[4];//这个数组主要是为了存储随机生成的四个整数
private int tNumber[]=new int[4];//这个主要是为了当判断能形成24点的时候,输出这四个数字
private String exp[]=new String[4];
private double EPISON=0.0001;
private Random random=new Random();
private String mEditTextStr;//这个变量是为了保存从EditText中获取的变量
private Button mConfirmButton;//这个变量是关于确认按钮的
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
mShowAnswerText=(TextView)findViewById(R.id.point_show_number);
mShowQuestionButton=(Button)findViewById(R.id.point_give_button);//实例化出题按钮
mShowQuestionButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mShowButtonPress=true;//这里代表已经按下了
createFourInter();//生成随机的四个整数
if(is24(4)){
mShowAnswerText.setText(tNumber[0]+"\n"+tNumber[1]+"\n"+tNumber[2]+"\n"+tNumber[3]);
}
}
});
if(savedInstanceState!=null){//这里主要是为了判断tNumber有没有保存成功
tNumber=savedInstanceState.getIntArray(KEY_INDEX);
mShowAnswerText.setText(tNumber[0]+"\n"+tN