在本文中,我们将在Android中使用Java和XML构建Dice Game项目。骰子游戏是基于两人游戏。双方都掷骰子,获得最高相位值的玩家将赢得比赛。此应用程序中只有一个活动。该活动将显示两个玩家的姓名和骰子。结果将显示在顶部,底部将显示一个滚动按钮。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
第2步:首先进入编码部分,您必须做一些准备工作
- 骰子图像:下面列出了所有骰子图像。将它们保存在资源中的可绘制文件夹中。转到应用>“ res”>“ drawable”,然后粘贴以下文件:
- 骰子1
- 骰子2
- 骰子3
- 骰子4
- 骰子5
- 骰子6
- 修改colors.xml文件:
XML
#6200EE
#3700B3
#03DAC5
#0F9D58
#FFFFFF
XML
-
XML
XML
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
public static Button button;
public static TextView textView;
public static ImageView img1, img2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// array to store dice images
final int dice[] = {R.drawable.dice1, R.drawable.dice2, R.drawable.dice3,
R.drawable.dice4, R.drawable.dice5, R.drawable.dice6};
// linking the roll button from its id..
button = findViewById(R.id.btVar1);
// linking the result textview from its id..
textView = findViewById(R.id.tvVar1);
// linking both the imageView of
// the dice images from its id..
img1 = findViewById(R.id.ivVar1);
img2 = findViewById(R.id.ivVar2);
// call the on click function
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// generate two random numbers
// using Random function
Random random = new Random();
int num1 = random.nextInt(6);
Random random1 = new Random();
int num2 = random.nextInt(6);
// the bigger number will be displayed in the
// textView as the winner otherwise draw..
if (num1 > num2) {
textView.setText("WINNER : Player 1");
} else if (num2 > num1) {
textView.setText("WINNER : Player 2");
} else {
textView.setText("RESULT : Draw");
}
// set the images from the array by the index
// position of the numbers generated
img1.setImageResource(dice[num1]);
img2.setImageResource(dice[num2]);
}
});
}
}
- background.xml文件:
XML格式
-
- btn_bg.xml文件:
XML格式
步骤3:使用activity_main.xml文件
XML代码用于构建活动的结构及其样式部分。它在活动的最顶部包含一个TextView ,以显示游戏结果。然后,它包含两个ImageView ,每个都有一个用于播放器名称的TextView和掷骰子的图像。在活动的底部,有一个掷骰子的按钮。以下是activity_main.xml文件的代码。
XML格式
步骤4:使用MainActivity。 Java文件
我们将在Java文件中创建一个数组,其中包含骰子的所有图像。然后,我们将为按钮调用onClickListener()并使用Random函数生成两个随机数。然后,我们将检查两个数字并分别显示结果。同样,我们将设置数组中的两个图像。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
public static Button button;
public static TextView textView;
public static ImageView img1, img2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// array to store dice images
final int dice[] = {R.drawable.dice1, R.drawable.dice2, R.drawable.dice3,
R.drawable.dice4, R.drawable.dice5, R.drawable.dice6};
// linking the roll button from its id..
button = findViewById(R.id.btVar1);
// linking the result textview from its id..
textView = findViewById(R.id.tvVar1);
// linking both the imageView of
// the dice images from its id..
img1 = findViewById(R.id.ivVar1);
img2 = findViewById(R.id.ivVar2);
// call the on click function
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// generate two random numbers
// using Random function
Random random = new Random();
int num1 = random.nextInt(6);
Random random1 = new Random();
int num2 = random.nextInt(6);
// the bigger number will be displayed in the
// textView as the winner otherwise draw..
if (num1 > num2) {
textView.setText("WINNER : Player 1");
} else if (num2 > num1) {
textView.setText("WINNER : Player 2");
} else {
textView.setText("RESULT : Draw");
}
// set the images from the array by the index
// position of the numbers generated
img1.setImageResource(dice[num1]);
img2.setImageResource(dice[num2]);
}
});
}
}