- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在做国旗测验。设置编码,以便玩家每次都会收到一个新的随机标志,并且玩家必须通过按 4 个回答按钮中的 1 个来猜测。玩家是否猜测下一个旗帜是否应该加载并且同一个国家的旗帜不应该重复出现,直到所有旗帜都被显示或者玩家已经失去了所有的生命(= 5 条生命)并且游戏重新开始(这部分不是尚未编程)。然而,事实并非如此。时不时地,由于某些奇怪的原因再次出现相同的标志,无法弄清楚如何完全防止这种情况。
问题:在显示所有标志之前,我该如何防止再次出现相同的标志?
.
JAVA 文件:
public class EasyActivity extends AppCompatActivity {
private final static String Folder = "Easy";
private ImageView flagImageView;
private List<String> countries;
private List<Button> suggestionsBtns;
private int currentCountryIndex;
private final static Random random = new Random ();
TextView currentScoreTextView;
TextView currentLivesTextView;
TextView answerTextViewEasy;
Animation shakeAnimation;
int correctAnswer = 0;
int currentScore = 1;
int currentLives = 5;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_easy);
answerTextViewEasy = (TextView) findViewById(R.id.answerTextViewEasy);
currentScoreTextView = (TextView) findViewById(R.id.currentScoreEasy);
currentLivesTextView = (TextView) findViewById(R.id.currentLivesEasy);
loadCountries ();
initUi ();
try {
randomize ();
} catch (Exception e) {
e.printStackTrace ();
}
}//onCreate ends here
private void randomize () throws Exception {
currentCountryIndex = random.nextInt (countries.size ());
InputStream is = getAssets ().open (Folder + File.separator + countries.get (currentCountryIndex));
flagImageView.setImageBitmap (BitmapFactory.decodeStream (is));
is.close ();
int randomCountry1 = getRandomIndex (countries.size (), currentCountryIndex);
int randomCountry2 = getRandomIndex (countries.size (), currentCountryIndex, randomCountry1);
int randomCountry3 = getRandomIndex (countries.size (), currentCountryIndex, randomCountry1, randomCountry2);
int randomCorrectCountryPos = getRandomIndex (4);
int randomCountry1Pos = getRandomIndex (4, randomCorrectCountryPos);
int randomCountry2Pos = getRandomIndex (4, randomCorrectCountryPos, randomCountry1Pos);
int randomCountry3Pos = getRandomIndex (4, randomCorrectCountryPos, randomCountry1Pos, randomCountry2Pos);
suggestionsBtns.get (randomCorrectCountryPos).setText (countries.get (currentCountryIndex).split (".png")[0]);
suggestionsBtns.get (randomCountry1Pos).setText (countries.get (randomCountry1).split (".png")[0]);
suggestionsBtns.get (randomCountry2Pos).setText (countries.get (randomCountry2).split (".png")[0]);
suggestionsBtns.get (randomCountry3Pos).setText (countries.get (randomCountry3).split (".png")[0]);
}//randomisze ends here
private int getRandomIndex (int size, Integer... excludes) {
List<Integer> excludeList = Arrays.asList (excludes);
int number;
do {
number = random.nextInt (size);
} while (excludeList.contains (number));
return number;
}//getRandomIndex ends here
private void loadCountries () {
countries = new ArrayList<> ();
try {
String [] list = getAssets().list (Folder);
countries = Arrays.asList (list);
} catch (IOException e) {
e.printStackTrace ();
}
}//loadCountries ends here
private void checkCorrectness (String chosenCountry) {
if (chosenCountry.equals (countries.get (currentCountryIndex).split (".png")[0])) {
for (int i = 1; i <= correctAnswer; i++) {
currentScore = currentScore + i;
}//for-loop ends here
correctAnswer++;
currentScore++;
String score = Integer.toString(currentScore);
currentScoreTextView.setText(score);
String answerText = chosenCountry;
answerTextViewEasy.setText(answerText + "!");
answerTextViewEasy.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.correct_answer));
}else{
currentLives--;
String lives = Integer.toString(currentLives);
currentLivesTextView.setText(lives);
answerTextViewEasy.setText("Incorrect!");
answerTextViewEasy.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.incorrect_answer));
shakeAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.incorrect_shake);
shakeAnimation.setRepeatCount(3);
flagImageView.startAnimation(shakeAnimation);
}//else ends here
try {
randomize ();
} catch (Exception e) {
e.printStackTrace ();
}//try-loop ends here
}//checkCorrectness ends here
private void initUi () {
flagImageView = (ImageView)findViewById (R.id.flagImageViewEasy);
suggestionsBtns = new ArrayList<>();
suggestionsBtns.add ((Button)findViewById (R.id.answerButton1Easy));
suggestionsBtns.add ((Button)findViewById (R.id.answerButton3Easy));
suggestionsBtns.add ((Button)findViewById (R.id.answerButton2Easy));
suggestionsBtns.add ((Button)findViewById (R.id.answerButton4Easy));
for (final Button btn : suggestionsBtns) {
btn.setOnClickListener (new View.OnClickListener () {
@Override
public void onClick (View v) {
checkCorrectness (btn.getText ().toString ());
}//onClick ends here
});
}//for-loop ends here
}//initUi ends here
}//EasyActivity ends here
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/quizLinearLayoutEasy"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
tools:context="com.example.android.kingofflags.EasyActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/currentScoreText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:text="@string/current_score"
android:textColor="@android:color/black"
android:textSize="20sp" />
<TextView
android:id="@+id/currentScoreEasy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/current_score_0"
android:textColor="@android:color/holo_red_dark"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="205dp"
android:layout_marginStart="205dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lives"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:gravity="center"
android:text="@string/lives"
android:textColor="@android:color/black"
android:textSize="20sp" />
<TextView
android:id="@+id/currentLivesEasy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lives_5"
android:textColor="@android:color/holo_red_dark"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/flagImageViewEasy"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_marginBottom="@dimen/spacing"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="@string/image_description"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/guessCountryTextViewEasy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="8dp"
android:layout_marginTop="10dp"
android:text="@string/guess_country"
android:textColor="#4c4c4c"
android:textSize="20sp" />
<LinearLayout
android:id="@+id/row1LinearLayoutEasy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:id="@+id/row2LinearLayoutEasy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:id="@+id/row3LinearLayoutEasy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:orientation="horizontal">
<Button
android:id="@+id/answerButton1Easy"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@color/colorAccent"
android:lines="2"
android:text="New Button"
android:textAllCaps="false"
android:textColor="@color/button_text_color"
android:textStyle="bold" />
<Button
android:id="@+id/answerButton2Easy"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorAccent"
android:lines="2"
android:text="New Button"
android:textAllCaps="false"
android:textColor="@color/button_text_color"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/row4LinearLayoutEasy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/answerButton3Easy"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@color/colorAccent"
android:lines="2"
android:text="New Button"
android:textAllCaps="false"
android:textColor="@color/button_text_color"
android:textStyle="bold" />
<Button
android:id="@+id/answerButton4Easy"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorAccent"
android:lines="2"
android:text="New Button"
android:textAllCaps="false"
android:textColor="@color/button_text_color"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/answerTextViewEasy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:gravity="center_horizontal"
android:textSize="36sp"
android:textStyle="bold" />
</LinearLayout>
最佳答案
保留一个开头为空的整数列表。显示标志时,将其位置保存到此列表中,并在显示标志之前检查此列表内部。如果标记位置在列表内部,则已显示,请选择另一个。如果列表大小 = 标志列表大小,那么您已经显示了所有标志。
关于android - 如何防止相同的图像重复自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972883/
我正在尝试学习 Knockout 并尝试创建一个照片 uploader 。我已成功将一些图像存储在数组中。现在我想回帖。在我的 knockout 码(Javascript)中,我这样做: 我在 Jav
我正在使用 php 编写脚本。我的典型问题是如何在 mysql 中添加一个有很多替代文本和图像的问题。想象一下有机化学中具有苯结构的描述。 最有效的方法是什么?据我所知,如果我有一个图像,我可以在数据
我在两个图像之间有一个按钮,我想将按钮居中到图像高度。有人可以帮帮我吗? Entrar
下面的代码示例可以在这里查看 - http://dev.touch-akl.com/celebtrations/ 我一直在尝试做的是在 Canvas 上绘制 2 个图像(发光,然后耀斑。这些图像的链接
请检查此https://jsfiddle.net/rhbwpn19/4/ 图像预览对于第一篇帖子工作正常,但对于其他帖子则不然。 我应该在这里改变什么? function readURL(input)
我对 Canvas 有疑问。我可以用单个图像绘制 Canvas ,但我不能用单独的图像绘制每个 Canvas 。- 如果数据只有一个图像,它工作正常,但数据有多个图像,它不工作你能帮帮我吗? va
我的问题很简单。如何获取 UIImage 的扩展类型?我只能将图像作为 UIImage 而不是它的名称。图像可以是静态的,也可以从手机图库甚至文件路径中获取。如果有人可以为此提供一点帮助,将不胜感激。
我有一个包含 67 个独立路径的 SVG 图像。 是否有任何库/教程可以为每个路径创建单独的光栅图像(例如 PNG),并可能根据路径 ID 命名它们? 最佳答案 谢谢大家。我最终使用了两个答案的组合。
我想将鼠标悬停在一张图片(音乐专辑)上,然后播放一张唱片,所以我希望它向右移动并旋转一点,当它悬停时我希望它恢复正常动画片。它已经可以向右移动,但我无法让它随之旋转。我喜欢让它尽可能简单,因为我不是编
Retina iOS 设备不显示@2X 图像,它显示 1X 图像。 我正在使用 Xcode 4.2.1 Build 4D502,该应用程序的目标是 iOS 5。 我创建了一个测试应用(主/细节)并添加
我正在尝试从头开始以 Angular 实现图像 slider ,并尝试复制 w3school基于图像 slider 。 下面我尝试用 Angular 实现,谁能指导我如何使用 Angular 实现?
我正在尝试获取图像的图像数据,其中 w= 图像宽度,h = 图像高度 for (int i = x; i imageData[pos]>0) //Taking data (here is the pr
我的网页最初通过在 javascript 中动态创建图像填充了大约 1000 个缩略图。由于权限问题,我迁移到 suPHP。现在不用标准 标签本身 我正在通过这个 php 脚本进行检索 $file
我正在尝试将 python opencv 图像转换为 QPixmap。 我按照指示显示Page Link我的代码附在下面 img = cv2.imread('test.png')[:,:,::1]/2
我试图在这个 Repository 中找出语义分割数据集的 NYU-v2 . 我很难理解图像标签是如何存储的。 例如,给定以下图像: 对应的标签图片为: 现在,如果我在 OpenCV 中打开标签图像,
import java.util.Random; class svg{ public static void main(String[] args){ String f="\"
我有一张 8x8 的图片。 (位图 - 可以更改) 我想做的是能够绘制一个形状,给定一个 Path 和 Paint 对象到我的 SurfaceView 上。 目前我所能做的就是用纯色填充形状。我怎样才
要在页面上显示图像,你需要使用源属性(src)。src 指 source 。源属性的值是图像的 URL 地址。 定义图像的语法是: 在浏览器无法载入图像时,替换文本属性告诉读者她们失去的信息。此
**MMEditing是基于PyTorch的图像&视频编辑开源工具箱,支持图像和视频超分辨率(super-resolution)、图像修复(inpainting)、图像抠图(matting)、
我正在尝试通过资源文件将图像插入到我的程序中,如下所示: green.png other files 当我尝试使用 QImage 或 QPixm
我是一名优秀的程序员,十分优秀!