在Android Studio中需要帮助

时间:2018-08-20 05:57:52

标签: java android

我刚开始学习Android,并且正在向Udemy学习。

我当前正在学习的讲座内容并不清楚,希望获得帮助。在本讲座中,讲师正在讲授创建一个名为connect 3的游戏,该游戏与Tic Tac Toe相似。我的演讲有很多问题。

问题1:要初始化两个玩家,教练首先要在起始处制作一个整数,其值为o。代码是

int activePlayer = 0

播放器的逻辑写为:

if (activePlayer == 0) {
    // change background image as red(This is not the real code);
    activePlayer = 1;
}

我无法理解,如果整数最初是以固定值获取的,那么无需进行任何计算就如何将其更改为另一个?

问题2:接下来,讲师向我们展示了一种管理游戏状态的方法,即,最初单击两次会把连接3框从黄色变为红色,反之亦然。讲师通过采用整数数组来停止此操作:

int [] gameState = {2, 2, 2, 2, 2, 2, 2, 2, 2};

创建数组后,讲师将标记(android:标记)分配给游戏布局中使用的所有9个imageView。标签已转换为字符串,并分配了一个整数值。这些标记被命名为 int tappedCounter

这很奇怪:

然后,讲师编写了一个if命令,将标记与gameState进行比较。代码是:

if (gameState[tappedCounter] == 2 {
    gameState[tappedCounter] = activePlayer;

    if (activePlayer == 0) {
        // change background image as red(This is not the real code);
        activePlayer = 1;
    } else {
        //set backgroung image to blue;
        activePlayer = 0;
}

有人能更清楚地解释这些事情吗?

1 个答案:

答案 0 :(得分:0)

  

我无法理解,如果整数最初是以固定值获取的,那么不进行任何计算就如何将其更改为另一个整数。

您可以为int变量分配不同的值,无论它是计算结果还是常量。

似乎是代码

if(activePlayer==0){
   activePlayer = 1;} 

只需切换转弯,即如果当前转弯是由玩家1完成的,则切换至玩家2,如果转弯是由玩家2完成的-切换至玩家1。

if( gameState[tappedCounter] == 2){
    gameState[tappedCounter] = activePlayer;
    if(activePlayer==0){
         activePlayer = 1;}
    else{
        activePlayer =0;
    }
}

状态数组描述游戏中每个单元的状态。好像2-是空单元格的状态。玩家1标记的单元0状态; 1-标记为玩家2的单元格的状态。因此,此代码在每次选择单元格时都会执行以下操作:

  • 检查单元格是否为空(状态== 2)
  • 用当前玩家的标记(0或1)标记单元格
  • 切换播放器(从0切换到1,反之亦然)