zoukankan      html  css  js  c++  java
  • Game2048

    本人Android小白,这个程序也是比较简陋,也没有经过完整测试,不喜勿喷。发到博客纯属为了保存资料。

    接下来是布局代码xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="horizontal">
    <TextView
    android:id="@+id/one"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:layout_marginLeft="10dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/two"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/three"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/four"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="horizontal">
    <TextView
    android:id="@+id/five"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"
    />
    <TextView
    android:id="@+id/six"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/seven"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/eight"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>

    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="horizontal">
    <TextView
    android:id="@+id/nine"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:layout_marginLeft="10dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/ten"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/eleven"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/twelve"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>

    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="horizontal">
    <TextView
    android:id="@+id/thirteen"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:layout_marginLeft="10dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/fourteen"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/fifteen"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    <TextView
    android:id="@+id/sixteen"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="80dp"
    android:layout_margin="5dp"
    android:background="#FFA54F"
    android:textSize="30sp"
    android:text=""
    android:gravity="center"/>
    </LinearLayout>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="vertical">
    <Button
    android:id="@+id/top"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_marginLeft="150dp"
    android:textSize="20sp"
    android:text="↑"
    android:gravity="center"
    />
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="horizontal">
    <Button
    android:id="@+id/left"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_marginLeft="60dp"
    android:textSize="20sp"
    android:text="←"
    android:gravity="center"
    />
    <Button
    android:id="@+id/right"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_marginLeft="80dp"
    android:textSize="20sp"
    android:text="→"
    android:gravity="center"
    />
    </LinearLayout>

    </LinearLayout>
    <Button
    android:id="@+id/bottom"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_marginLeft="150dp"
    android:textSize="20sp"
    android:text="↓"
    android:gravity="center"
    />

    <Button
    android:id="@+id/start"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_marginLeft="150dp"
    android:textSize="20sp"
    android:text="start"
    android:gravity="center"
    />
    </LinearLayout>

     接下来是MainActivity

    package com.example.win10.game2048;

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;

    import java.util.Random;

    public class MainActivity extends AppCompatActivity {

    private Random random=new Random();
    private int x;
    private int y;
    private String str="";
    private Button start;
    private Button top;
    private Button left;
    private Button right;
    private Button bottom;
    private TextView [][] textViews=new TextView[4][4];
    private int [][]result=new int[4][4];
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    inisit();
    /*if("".equals(str))
    {
    textViews[1][0].setText("1");
    }*/
    top.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    MoveTop();
    }
    });
    left.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    MoveLeft();
    }
    });
    right.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    MoveRight();
    }
    });
    bottom.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    MoveBottom();
    }
    });
    start.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
    result[i][j]=0;
    setXY();
    }
    });
    }
    public void inisit()
    {
    start=(Button) findViewById(R.id.start);
    top=(Button) findViewById(R.id.top);
    left=(Button) findViewById(R.id.left);
    right=(Button) findViewById(R.id.right);
    bottom=(Button) findViewById(R.id.bottom);
    textViews[0][0]=(TextView) findViewById(R.id.one);
    //textViews[1].setText("1");
    textViews[0][1]=(TextView) findViewById(R.id.two);
    //textViews[2].setText("2");
    textViews[0][2]=(TextView) findViewById(R.id.three);
    //textViews[3].setText("3");
    textViews[0][3]=(TextView) findViewById(R.id.four);
    //textViews[4].setText("4");
    textViews[1][0]=(TextView) findViewById(R.id.five);
    //textViews[5].setText("5");
    textViews[1][1]=(TextView) findViewById(R.id.six);
    //textViews[6].setText("6");
    textViews[1][2]=(TextView) findViewById(R.id.seven);
    //textViews[7].setText("7");
    textViews[1][3]=(TextView) findViewById(R.id.eight);
    //textViews[8].setText("8");
    textViews[2][0]=(TextView) findViewById(R.id.nine);
    //textViews[9].setText("9");
    textViews[2][1]=(TextView) findViewById(R.id.ten);
    //textViews[10].setText("10");
    textViews[2][2]=(TextView) findViewById(R.id.eleven);
    //textViews[11].setText("11");
    textViews[2][3]=(TextView) findViewById(R.id.twelve);
    // textViews[12].setText("12");
    textViews[3][0]=(TextView) findViewById(R.id.thirteen);
    //textViews[13].setText("13");
    textViews[3][1]=(TextView) findViewById(R.id.fourteen);
    //textViews[14].setText("14");
    textViews[3][2]=(TextView) findViewById(R.id.fifteen);
    // textViews[15].setText("15");
    textViews[3][3]=(TextView) findViewById(R.id.sixteen);
    //textViews[16].setText("16");
    for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
    result[i][j]=0;
    }
    public void MoveBottom(){
    getXY();
    for (int j=0;j<4;j++)
    {
    for(int i=3;i>=0;i--)
    {
    int t=i;
    if(result[i][j]==0)
    {
    while (t>=1&&result[t][j]==0)
    {
    t--;
    }
    result[i][j]=result[t][j];
    result[t][j]=0;
    }

    }

    }
    for (int j=0;j<4;j++)
    {
    for(int i=3;i>=1;i--)
    {
    if(result[i][j]==result[i-1][j]&&result[i][j]!=0)
    {
    result[i][j]=2*result[i][j];
    result[i-1][j]=0;
    for(int t=i-1;t>0;t--)
    {
    result[t][j]= result[t-1][j];
    result[t-1][j]=0;
    }
    }
    }
    }
    setXY();
    createNumber();
    }
    public void MoveLeft(){
    getXY();
    for (int i=0;i<4;i++)
    {
    for(int j=0;j<4;j++)
    {
    int t=j;
    if(result[i][j]==0)
    {
    while (t<3&&result[i][t]==0)
    {
    t++;
    }
    result[i][j]=result[i][t];
    result[i][t]=0;
    }
    }
    }
    for (int i=0;i<4;i++)
    {
    for(int j=0;j<3;j++)
    {
    if(result[i][j]==result[i][j+1]&&result[i][j]!=0)
    {
    result[i][j]=2*result[i][j];
    result[i][j+1]=0;
    for(int t=j+1;t<3;t++)
    {
    result[i][t]= result[i][t+1];
    result[i][t+1]=0;
    }
    }
    }
    }
    setXY();
    createNumber();
    }
    public void MoveRight(){
    getXY();
    for (int i=0;i<4;i++)
    {
    for(int j=3;j>=0;j--)
    {
    int t=j;
    if(result[i][j]==0)
    {
    while (t>=1&&result[i][t]==0)
    {
    t--;
    }
    result[i][j]=result[i][t];
    result[i][t]=0;
    }

    }

    }
    for (int i=0;i<4;i++)
    {
    for(int j=3;j>=1;j--)
    {
    if(result[i][j]==result[i][j-1]&&result[i][j]!=0)
    {
    result[i][j]=2*result[i][j];
    result[i][j-1]=0;
    for(int t=j-1;t>0;t--)
    {
    result[i][t]= result[i][t-1];
    result[i][t]=0;
    }
    }
    }
    }
    setXY();
    createNumber();
    }
    public void MoveTop(){
    getXY();
    for (int j=0;j<4;j++)
    {
    for(int i=0;i<4;i++)
    {
    int t=i;
    if(result[i][j]==0)
    {
    while (t<3&&result[t][j]==0)
    {
    t++;
    }
    result[i][j]=result[t][j];
    result[t][j]=0;
    }

    }

    }
    for (int j=0;j<4;j++)
    {
    for(int i=0;i<3;i++)
    {
    if(result[i][j]==result[i+1][j]&&result[i][j]!=0)
    {
    result[i][j]=2*result[i][j];
    result[i+1][j]=0;
    for(int t=i+1;t<3;t++)
    {
    result[t][j]= result[t+1][j];
    result[t+1][j]=0;
    }
    }
    }
    }
    setXY();
    createNumber();
    }

    public void createNumber()
    {
    Boolean isfill=true;
    for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
    if(result[i][j]==0)
    {
    isfill=false;
    break;
    }
    if(isfill==true)
    return;
    x=random.nextInt(4);
    y=random.nextInt(4);
    while(result[x][y]!=0)
    {
    x=random.nextInt(4);
    y=random.nextInt(4);
    }
    result[x][y]=2;
    setXY();
    }
    public void getXY()
    {
    for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
    {
    if(textViews[i][j].getText().toString().equals(""))
    result[i][j]=0;
    else
    result[i][j] =Integer.valueOf(textViews[i][j].getText().toString()).intValue();
    }
    }
    public void setXY()
    {
    for (int i=0;i<4;i++)
    for (int j=0;j<4;j++)
    {

    if(result[i][j]!=0)
    textViews[i][j].setText(String.valueOf(result[i][j]));
    else
    textViews[i][j].setText("");
    }
    }

    }
  • 相关阅读:
    jackson、gson、fastjson
    jackson、gson、fastjson
    Java 常见面试题
    java8的新特性2
    关于mybatis的注释问题
    java PropertyDescriptor 应用及源码分析
    Java 反射总结
    java8的新特性1
    vo、po、dto、bo、pojo、entity、mode如何区分
    倒计时 不加锁 老代码
  • 原文地址:https://www.cnblogs.com/CY-947205926/p/7748170.html
Copyright © 2011-2022 走看看