package com.failte.guessnumber;
//游戏界面
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
public class GNActivity extends Activity {
private TextView main_gn_tv_maximum;
private TextView main_gn_tv_result;
private TextView main_gn_tv_minimum;
private EditText main_gn_et_input;
private Button main_gn_bt_submit;
public boolean isExit;
//实例化类以初始化取值范围和要猜的数值
private GN_Game gn_game=new GN_Game();
int tempcount=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gn);
//绑定相关组件
main_gn_tv_maximum=(TextView) findViewById(R.id.main_gn_tv_maximum);
main_gn_tv_result=(TextView) findViewById(R.id.main_gn_tv_result);
main_gn_tv_minimum=(TextView) findViewById(R.id.main_gn_tv_minimum);
main_gn_et_input=(EditText)findViewById(R.id.main_gn_et_input);
main_gn_bt_submit=(Button) findViewById(R.id.main_gn_bt_submit);
//获取游戏模式
Intent intent=getIntent();
boolean gamemode=intent.getBooleanExtra("gamemode",false);
//判断游戏模式
if(gamemode){
//继续游戏模式
//读取存档
gn_game.gn_fun_gameload(this);
//读取异常检测
tempcount=gn_game.loadCheck(this);
//存档数据检测
if(tempcount!=gn_game.getGn_int_count()) {
Toast.makeText(this,"数据异常,游戏初始化",Toast.LENGTH_SHORT);
gn_fun_gameStart();
}
else {
//通过是否有猜过判断是否为有效存档,若有效则恢复,若无效则更改游戏模式为开始游戏
if (gn_game.getGn_int_count() > 0) {
Toast.makeText(this, "恢复上次游戏状态", Toast.LENGTH_SHORT).show();
gn_fun_gamebackup();
} else {
//无存档,重新开始
gn_fun_gameStart();
}
}
}
//开始游戏模式
else gn_fun_gameStart();
//为提交添加点击事件
main_gn_bt_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
//获取输入框的数值
String input_string = main_gn_et_input.getText().toString();
int input = Integer.parseInt(input_string);
//判断输入的字符是否是0开头的不推荐数字
if(!gn_game.gn_fun_startOfZero(input_string)){
Toast.makeText(GNActivity.this,"不推荐输入0开头的数字",Toast.LENGTH_SHORT).show();
}
//判断输入的数字是否在规定范围内,若为空或规定以外的数字则提示,每次提交输入内容都会将输入框情况
if (input > 0 && input < 100) {
//已猜次数+1,调用已猜数字方法
gn_game.addGn_int_count();
guessed();
//通过调用检测方法获取返回值,根据值进行反应
switch (gn_game.gn_fun_check(input)){
case 0:
//输入正确
Toast.makeText(GNActivity.this, "是的!你猜对了!是" + Integer.toString(input) + "!", Toast.LENGTH_SHORT).show();
gn_fun_gameOver();
break;
case 1:
//输入过大
main_gn_tv_maximum.setText(Integer.toString(gn_game.getGn_int_maximum()));
main_gn_et_input.setText(null);
Toast.makeText(GNActivity.this, Integer.toString(input)+"太大了,再猜一次吧~", Toast.LENGTH_SHORT).show();
break;
case 2:
//输入过小
main_gn_tv_minimum.setText(String.valueOf(gn_game.getGn_int_minimum()));
main_gn_et_input.setText(null);
Toast.makeText(GNActivity.this, Integer.toString(input)+"太小了,再猜一次吧~", Toast.LENGTH_SHORT).show();
break;
}
} else {
//输入了限定输入数值以外的数值
main_gn_et_input.setText(null);
Toast.makeText(GNActivity.this, "输入值为有误哦~", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
//输入值转换成了非数字
main_gn_et_input.setText(null);
Toast.makeText(GNActivity.this, "请输入数值哦~", Toast.LENGTH_SHORT).show();
}
}
});
}
//双击退出
@Override
public void onBackPressed() {
ensureExit();
}
//双击退出方法
public void ensureExit(){
Timer timer=null;
if(!isExit){
isExit=true;
Toast.makeText(this,"再按一次返回上级菜单",Toast.LENGTH_SHORT).show();
//若有进行过猜数字,则当前游戏为有效游戏局
if(gn_game.getGn_int_count()>0) gn_game.gn_fun_gamestore(this,gn_game);
//设置计划以取消退出
timer=new Timer();
timer.schedule(new TimerTask() {
//重写计划的运行参数以取消退出
@Override
public void run() { isExit = false; }
}, 1000);//schedule的首个参数为计划的运行进程,第二个参数为延时
}
else {
Toast.makeText(this,"游戏已保存",Toast.LENGTH_SHORT).show();
finish();
}
}
//游戏初始化方法
private void gn_fun_gameInit(){
//新建游戏对象,并初始化组件属性
gn_game=new GN_Game();
main_gn_tv_minimum.setText(Integer.toString(0));
main_gn_tv_maximum.setText(Integer.toString(100));
main_gn_et_input.setText(null);
}
//恢复游戏界面方法
private void gn_fun_gamebackup(){
//恢复组件属性
main_gn_tv_minimum.setText(String.valueOf(gn_game.getGn_int_minimum()));
main_gn_tv_maximum.setText(String.valueOf(gn_game.getGn_int_maximum()));
main_gn_et_input.setText(null);
}
//开始游戏方法
private void gn_fun_gameStart(){
//初始化游戏
gn_fun_gameInit();
//调用本局游戏创建要猜的数字的方法
gn_game.gn_fun_createNum();
//初始化异常判断
gn_game.savaCheck(this,tempcount=0);
}
//已猜数字调用方法
public void guessed(){
tempcount++;
//保存异常判断
gn_game.savaCheck(this,tempcount);
}
//正常结束游戏方法
private void gn_fun_gameOver(){
int state=1;
//携带当前游戏的成功状态跳转到结算界面
GN_Player gn_player=new GN_Player("你",gn_game.getGn_int_count());
FileOperation fileOperation=new FileOperation();
//存档异常检测系统
gn_game.savaCheck(this,0);
//判断是否进入排行
if(fileOperation.inRank(this,gn_pla
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
安卓移动开发课程设计/Android期末大作业- 安卓小游戏——猜数字游戏(支持保存游戏) - 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法,以及更多代码项目 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
app_guess_number-master.zip (59个子文件)
app_guess_number-master
gradle.properties 726B
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 230B
app
src
androidTest
java
com
failte
guessnumber
ExampleInstrumentedTest.java 728B
test
java
com
failte
guessnumber
ExampleUnitTest.java 383B
main
java
com
failte
guessnumber
GNActivity.java 8KB
PlayerAdapter.java 2KB
BalanceActivity.java 2KB
GN_Game.java 4KB
RankActivity.java 2KB
GN_Player.java 848B
MainActivity.java 3KB
FileOperation.java 6KB
ViewHolder.java 220B
res
mipmap-xxhdpi
gn.png 36KB
gn_round.png 41KB
mipmap-hdpi
gn.png 11KB
gn_round.png 13KB
values-en
strings.xml 885B
drawable-v24
gn.png 67KB
ic_launcher_foreground.xml 2KB
gn_drawable_pic_001.jpg 192KB
mipmap-anydpi-v26
ic_launcher.xml 272B
ic_launcher_round.xml 272B
mipmap-mdpi
gn.png 6KB
gn_round.png 7KB
mipmap-xxxhdpi
gn.png 59KB
gn_round.png 67KB
mipmap-xhdpi
gn.png 17KB
gn_round.png 20KB
values
colors.xml 10KB
strings.xml 937B
styles.xml 388B
layout
activity_rank.xml 561B
gn_rank.xml 1KB
activity_balance.xml 1KB
activity_gn.xml 3KB
activity_main.xml 2KB
gn_rank_head.xml 1KB
drawable
ic_launcher_background.xml 5KB
values-zh
strings.xml 938B
AndroidManifest.xml 1KB
proguard-rules.pro 751B
build.gradle 934B
release
app-release.apk 1.8MB
output.json 234B
.gitignore 7B
gradlew.bat 2KB
build.gradle 546B
.idea
dictionaries
failte.xml 85B
codeStyles
Project.xml 2KB
runConfigurations.xml 564B
caches
build_file_checksums.ser 538B
misc.xml 2KB
inspectionProfiles
Project_Default.xml 86KB
gradle.xml 626B
settings.gradle 15B
gradlew 5KB
.gitignore 137B
共 59 条
- 1
资源评论
.Android安卓科研室.
- 粉丝: 4636
- 资源: 2238
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (175601006)51单片机交通信号灯系统设计
- Starter SINAMICS S120驱动第三方直线永磁同步电机系列视频-调试演示.mp4
- (174755032)抽烟、烟雾检测voc数据集
- 基于滑膜控制的差动制动防侧翻稳定性控制,上层通过滑膜控制产生期望的横摆力矩,下层根据对应的paper实现对应的制动力矩分配,实现车辆的防侧翻稳定性控制,通过通过carsim和simulink联合仿真
- 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simul
- (175989002)DDR4 JESD79-4C.pdf
- lanchaoHunanHoutaiQiantai
- (177377030)Python 爬虫.zip
- (177537818)python爬虫基础知识及爬虫实例.zip
- 自动驾驶横纵向耦合控制-复现Apollo横纵向控制 基于动力学误差模型,使用mpc算法,一个控制器同时控制横向和纵向,实现横纵向耦合控制 matlab与simulink联合仿真,纵向控制已经做好油门刹
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功