diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..6db89b9
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,38 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ namespace 'com.game2048'
+ compileSdk 33
+
+ defaultConfig {
+ applicationId "com.game2048"
+ minSdk 11
+ targetSdk 33
+ versionCode 17
+ versionName "17"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ externalNativeBuild {
+ ndkBuild {
+ path file('src/main/cpp/CMakeLists.mk')
+ }
+ }
+}
+
+dependencies {
+
+}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..b5787b9
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/cpp/2048.cpp b/app/src/main/cpp/2048.cpp
new file mode 100644
index 0000000..9d7fdea
--- /dev/null
+++ b/app/src/main/cpp/2048.cpp
@@ -0,0 +1,448 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "android/log.h"
+#include "2048.h"
+
+#include "config.h"
+
+#if defined(HAVE_UNORDERED_MAP)
+#include
+typedef std::unordered_map trans_table_t;
+#elif defined(HAVE_TR1_UNORDERED_MAP)
+#include
+typedef std::tr1::unordered_map trans_table_t;
+#else
+
+#include