Android编写编写2048小游戏小游戏
先来说说2048游戏规则:
开始时棋盘内随机出现两个数字,出现的数字仅可能为2或4
玩家可以选择上下左右四个方向,若棋盘内的数字出现位移或合并,视为有效移动
玩家选择的方向上若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并
合并所得的所有新生成数字想加即为该步的有效得分
玩家选择的方向行或列前方有空格则出现位移
每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4)
棋盘被数字填满,无法进行有效移动,判负,游戏结束
棋盘上出现2048,判胜,游戏结束
下面代码
MainActivity类类
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GameView(this));
}
}
定义一个卡片类显示数据定义一个卡片类显示数据
/卡片类型
public class Card extends FrameLayout {
//2
TextView tv;
private int number = 0;
int width;
public Card(Context context, int width) {
super(context);
this.width = width;
init();
}
private void init() {
tv = new TextView(getContext());
setPadding(5, 5, 5, 5);
FrameLayout.LayoutParams lp = new LayoutParams(width - 10, width - 10);
tv.setLayoutParams(lp);
tv.setGravity(Gravity.CENTER);
tv.setTextColor(Color.WHITE);
tv.setTextSize(48);
this.addView(tv);
setColor();
}
public void setNumber(int number) {
this.number = number;
if (number == 0)
tv.setText("");
else
tv.setText(number + "");
setColor();