我刚开始学习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;
}
有人能更清楚地解释这些事情吗?
答案 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的单元格的状态。因此,此代码在每次选择单元格时都会执行以下操作: