📜  如何在Android中构建骰子游戏?

📅  最后修改于: 2021-05-13 16:03:06             🧑  作者: Mango

在本文中,我们将在Android中使用Java和XML构建Dice Game项目。骰子游戏是基于两人游戏。双方都掷骰子,获得最高相位值的玩家将赢得比赛。此应用程序中只有一个活动。该活动将显示两个玩家的姓名和骰子。结果将显示在顶部,底部将显示一个滚动按钮。下面给出了一个示例GIF,以了解我们将在本文中做些什么。注意,我们将使用Java语言实现该项目。

在Android中建立骰子游戏

分步实施

步骤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]);
            }
        });
    }
}

输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!