Java从字符串数组取值:字谜游戏中的答案匹配问题
看起来你已经把字谜游戏的核心答案匹配逻辑跑通了,很棒!结合你的代码,我给你整理几个实用的优化点和后续功能实现思路,帮你的游戏体验更上一层楼:
核心匹配逻辑优化
兼容大小写与空格:目前的
equals是严格大小写匹配,玩家输入Yes或者yes都会匹配失败,改成下面的写法更人性化:String userInput = currentGuess.getText().toString().trim(); if(userInput.equalsIgnoreCase(answers[currentLevel])) { // 匹配成功后的逻辑 }trim()能过滤输入前后的空格,equalsIgnoreCase()则忽略大小写差异,完美覆盖玩家的常见输入误差。关卡推进与通关判断:匹配成功后别忘了推进关卡,还要判断是否通关:
String userInput = currentGuess.getText().toString().trim(); if(userInput.equalsIgnoreCase(answers[currentLevel])) { currentLevel++; // 清空输入框,方便玩家输入下一关答案 currentGuess.setText(""); // 检查是否已经通关 if(currentLevel >= answers.length) { // 通关提示,比如弹出Toast或者自定义对话框 Toast.makeText(this, "恭喜你通关啦!🎉", Toast.LENGTH_SHORT).show(); // 可选:重置关卡让玩家重新挑战 currentLevel = 0; } }
提升用户体验的小功能
错误输入反馈:当玩家输入错误时,给点明确的提示,避免玩家一脸懵:
String userInput = currentGuess.getText().toString().trim(); if(userInput.equalsIgnoreCase(answers[currentLevel])) { // 成功逻辑 } else { // 错误提示,比如短暂震动+Toast Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); if (vibrator != null) { vibrator.vibrate(300); // 震动300毫秒 } Toast.makeText(this, "不对哦,再想想!", Toast.LENGTH_SHORT).show(); // 可选:让输入框短暂变红提醒 currentGuess.setBackgroundColor(getResources().getColor(R.color.error_red)); new Handler(Looper.getMainLooper()).postDelayed(() -> { currentGuess.setBackgroundColor(getResources().getColor(R.color.default_input_bg)); }, 1000); }注意:使用震动需要在AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.VIBRATE"/>保存关卡进度:玩家退出游戏后再进来,进度不会丢失,用
SharedPreferences就能轻松实现:// 匹配成功后保存当前关卡 SharedPreferences prefs = getSharedPreferences("WordGameData", MODE_PRIVATE); prefs.edit().putInt("currentLevel", currentLevel).apply(); // 在Activity的onCreate方法中加载进度 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); currentGuess = findViewById(R.id.currentGuess); // 加载保存的关卡,默认0 SharedPreferences prefs = getSharedPreferences("WordGameData", MODE_PRIVATE); currentLevel = prefs.getInt("currentLevel", 0); }
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

