package cn.lyy.mentalarithmetic.UI;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import cn.lyy.mentalarithmetic.MainActivity;
import cn.lyy.mentalarithmetic.R;
import cn.lyy.mentalarithmetic.dao.DB;
import cn.lyy.mentalarithmetic.util.Data;
import cn.lyy.mentalarithmetic.pojo.Game;
import cn.lyy.mentalarithmetic.pojo.Question;
import cn.lyy.mentalarithmetic.util.SoundPoolUtil;
import cn.lyy.mentalarithmetic.util.SoundPoolUtil1;
public class GameActivity extends AppCompatActivity {
public Game game;
public int levels=0; //默认显示等级
public int scores=0; //显示当前得分
public int times=10; //倒计时
public int lifes=5; //最大生命
public String strq; //题目描述
public static Integer AS; //存储正确答案
private TextView level ; //等级
private TextView score; //分数
private TextView life; //生命
private TextView time; //时间
private EditText question;//问题框
private RadioButton A1; //答案1
private RadioButton A2; //答案2
private RadioButton A3; //答案3
private RadioButton A4; //答案4
private int type=1; //游戏类型
private RadioGroup radioGroup; //多选框组
Question q; //定义问题类
private Button rank,end,pause; //结束、暂停、查看排行按钮
Data app = null;
DB mDBOpenHelper; //定义数据库操作
CountDownTimer timer = null; //设置倒计时
SoundPoolUtil instance; //声音控件
SoundPoolUtil1 instance1; //声音控件
String types[]={"简单模式","普通模式","困难模式"};
@Override //重写函数
protected void onCreate(Bundle savedInstanceState) {
game =new Game();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game); //定义加载的资源
mDBOpenHelper = new DB(this); //初始化数据库操作类
init(); //初始化
count();//计算游戏得分
end(); //停止游戏
rank(); //查看排名
pause();//暂停游戏
instance = SoundPoolUtil.getInstance(GameActivity.this); //游戏音效1
instance1=SoundPoolUtil1.getInstance(GameActivity.this); //游戏音效2
}
private boolean init() {
level = (TextView) findViewById(R.id.level); //等级
score = (TextView) findViewById(R.id.score); //分数
life = (TextView) findViewById(R.id.life); //生命
time = (TextView) findViewById(R.id.time); //时间
question = (EditText) findViewById(R.id.question); //问题
radioGroup=(RadioGroup)findViewById(R.id.radiogroup);//控件组
A1 = (RadioButton) findViewById(R.id.radioButton1); //答案1
A2 = (RadioButton) findViewById(R.id.radioButton2); //答案2
A3 = (RadioButton) findViewById(R.id.radioButton3); //答案3
A4 = (RadioButton) findViewById(R.id.radioButton4); //答案4
rank=(Button) findViewById(R.id.rank); //查看排名
pause=(Button) findViewById(R.id.pause); //游戏暂停
end=(Button) findViewById(R.id.end); //游戏结束
app = (Data)getApplication(); //获得全局变量,用于控制音效的开启和关闭
enableRadioGroup(radioGroup); //设置控件可以点击
type=this.getIntent().getIntExtra("type",1);
Toast.makeText(getApplicationContext(), types[type-1], Toast.LENGTH_SHORT).show(); //提示游戏难度
q=new Question(); // 实例化问题类
if(this.getIntent().getIntExtra("status",1)==0) { //判断是重新开始或者开始游戏
this.times=app.getTimes();
this.lifes=app.getLifes();
time(); //设计倒计时
check(levels,scores,lifes,times); //初始化时间和生命
timer.start(); //开启倒计时
}
else if(this.getIntent().getIntExtra("status",1)==1) { //判断是重新开始
this.strq = this.getIntent().getStringExtra("strq"); //获取问题信息
this.q.setAs(this.getIntent().getIntArrayExtra("A")); //获得试题选项
this.AS = this.getIntent().getIntExtra("realAS", 1);//获得试题正确答案
this.levels = this.getIntent().getIntExtra("level", 1);//获得当前游戏等级
this.scores = this.getIntent().getIntExtra("score", 1);//获得当前游戏分数
this.lifes = this.getIntent().getIntExtra("life", 5);//获得当前玩家生命值
this.times = this.getIntent().getIntExtra("time", 10);//获得当前倒计时
setvalue(); //给全局控件赋值
time(); //设计倒计时
timer.start(); //初始化完成
count(); //计算得分
}
else{ //恢复游戏或者恢复关卡游戏
this.strq = this.getIntent().getStringExtra("strq"); //获取问题信息
this.q.setAs(this.getIntent().getIntArrayExtra("A")); //获得试题选项
this.AS = this.getIntent().getIntExtra("realAS", 1);//获得试题正确答案
this.levels = this.getIntent().getIntExtra("level", 1);//获得当前游戏等级
this.scores = this.getIntent().getIntExtra("score", 1);//获得当前游戏分数
this.lifes = app.getLifes();
this.times = app.getTimes();
setvalue(); //给全局控件赋值
time(); //设计倒计时
timer.start(); //初始化完成
count(); //计算得分
}
return true;
}
public void setvalue()
{
question.setText(this.strq+" = ?"); // 问题框设置值
A1.setText(q.getAs()[0]+""); // 选项一设置值
A2.setText(q.getAs()[1]+""); // 选项二设置值
A3.setText(q.getAs()[2]+""); // 选项三设置值
A4.setText(q.getAs()[3]+""); // 选项四设置值
level.setText(levels+""); // 等级设置值
score.setText(scores+""); // 得分设置值
time.setText(times+""); // 倒计时设置值
life.setText(lifes+""); // 生命设置值
}
public void time() //倒计时
{
timer=new CountDownTimer(this.times*1000, 1000) {
public void onTick(long millisUntilFinished) {
time.setText(millisUntilFinished/1000+""); //显示时间控件值
}
@Override
public void onFinish() {
AlertDialog.Builder builder = new AlertDialog.Builder(GameActivity.this);
builder.setTitle("时间用尽").setIcon(android.R.drawable.ic_dialog_info);
builder.setMessage("不好意思时间用尽,\n自动跳转下一题").setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
lifes-=1; //生命值减一
if(lifes>0) { // 生命值大于0时
Nextquestion();//切换下一题
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
西南科技大学软件项目开发与实践1_软件专业大作业(心算大师源代码)
共64个文件
xml:18个
java:16个
png:13个
需积分: 24 4 下载量 13 浏览量
2022-09-12
19:05:14
上传
评论 3
收藏 4.4MB ZIP 举报
温馨提示
西南科技大学软件项目开发与实践1_软件专业大作业(心算大师源代码)
资源详情
资源评论
资源推荐
收起资源包目录
MentalArithmetic.zip (64个子文件)
gradlew.bat 2KB
gradlew 5KB
gradle.properties 1KB
app
proguard-rules.pro 772B
src
test
java
androidTest
java
main
res
raw
bg.mp3 545KB
qq.mp3 757KB
over.mp3 8KB
get.mp3 95KB
fail.mp3 50KB
menu
main.xml 332B
mipmap-xxxhdpi
ic_launcher.png 271KB
ic_launcher_round.png 271KB
drawable
qbc.png 39KB
btn_all_shape.xml 477B
backgound.png 271KB
bg.png 4KB
ic_launcher_background.xml 6KB
mipmap-hdpi
ic_launcher.png 271KB
ic_launcher_round.png 271KB
drawable-v24
ic_launcher_foreground.xml 2KB
values
colors.xml 214B
strings.xml 136B
styles.xml 392B
mipmap-xxhdpi
ic_launcher.png 271KB
ic_launcher_round.png 271KB
mipmap-mdpi
ic_launcher.png 271KB
ic_launcher_round.png 271KB
mipmap-xhdpi
ic_launcher.png 271KB
ic_launcher_round.png 271KB
mipmap-anydpi-v26
ic_launcher_round.xml 276B
ic_launcher.xml 276B
layout
activity_setting.xml 3KB
activity_status.xml 3KB
activity_questions.xml 4KB
list_item.xml 270B
activity_game.xml 8KB
activity_starts.xml 3KB
activity_main.xml 5KB
activity_rank.xml 4KB
java
cn
lyy
mentalarithmetic
dao
DB.java 9KB
UI
StartsActivity.java 3KB
QuestionsActivity.java 6KB
RankActivity.java 4KB
GameActivity.java 16KB
StatusActivity.java 4KB
SettingActivity.java 3KB
pojo
User.java 1KB
Question.java 7KB
Game.java 3KB
Rank.java 2KB
MainActivity.java 7KB
util
AudioService.java 2KB
SoundPoolUtil.java 964B
Data.java 920B
SoundPoolUtil1.java 1KB
AndroidManifest.xml 1KB
app.iml 12KB
.gitignore 8B
build.gradle 960B
libs
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 238B
local.properties 451B
settings.gradle 53B
build.gradle 585B
共 64 条
- 1
oceanao
- 粉丝: 26
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0