This commit is contained in:
Rishab Kulkarni 2021-06-27 19:32:49 +05:30
parent 25e5343cf5
commit eaf3448aeb
13 changed files with 120 additions and 332 deletions

6
.idea/compiler.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
</component>
</project>

View File

@ -14,6 +14,7 @@
</set> </set>
</option> </option>
<option name="resolveModulePerSourceSet" value="false" /> <option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

25
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

28
.project Normal file
View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>alzapp</name>
<comment>Project alzapp created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1624798007654</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

View File

@ -0,0 +1,13 @@
arguments=
auto.sync=false
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
java.home=C\:/Program Files/Java/jdk-11.0.8
jvm.arguments=
offline.mode=false
override.workspace.settings=true
show.console.view=true
show.executions.view=true

6
app/.classpath Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>

34
app/.project Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>app</name>
<comment>Project app created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1624798007678</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

View File

@ -0,0 +1,2 @@
connection.project.dir=..
eclipse.preferences.version=1

View File

@ -15,7 +15,6 @@
<activity android:name=".QuizQuestionPage" /> <activity android:name=".QuizQuestionPage" />
<activity android:name=".UserAreaActivity" /> <activity android:name=".UserAreaActivity" />
<activity android:name=".QuickPlayMenu" /> <activity android:name=".QuickPlayMenu" />
<activity android:name=".PuzzleMainActivity"/>
<activity android:name=".TileMatchingActivity" /> <activity android:name=".TileMatchingActivity" />
<activity android:name=".WelcomeActivity" /> <activity android:name=".WelcomeActivity" />
<activity android:name=".JumbleActivity" /> <activity android:name=".JumbleActivity" />

View File

@ -1,322 +0,0 @@
package com.example.alzapp;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import com.example.alzapp.A_Star_Class_Solver.model.Board;
import com.example.alzapp.A_Star_Class_Solver.model.Place;
import java.io.FileNotFoundException;
//import com.example.alzapp.A_Star_Class_Solver.model.R;
public class PuzzleMainActivity extends AppCompatActivity {
/** The main view. */
private ViewGroup mainView;
/** The game board. */
private Board board;
/** The board view that generates the tiles and lines using 2-D graphics. */
private BoardView boardView;
/** Text view to show the user the number of movements. */
private TextView moves;
/** The board size. Default value is an 4x4 game. */
private int boardSize = 4;
private Chronometer chronometer;
public boolean running;
Button b;
/*
* (non-Javadoc)
*
* @see android.support.v7.app.ActionBarActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slide_tile_puzzle);
mainView = (ViewGroup) findViewById(R.id.mainLayout);
chronometer = (Chronometer) findViewById(R.id.slidingTileChronometer);
moves = (TextView) findViewById(R.id.moves);
moves.setTextColor(Color.WHITE);
moves.setTextSize(20);
this.newGame();
b = findViewById(R.id.btnSelectImage);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
photoPickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, false);
startActivityForResult(Intent.createChooser(photoPickerIntent,"Complete Action Using"), 1);
}
});
if (!running) {
chronometer.start();
running = true;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri pickedImage = data.getData();
String[] filePath = { MediaStore.Images.Media.DATA };
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(pickedImage));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bitmap = resizeBitmapFitXY(this.boardView.getWidth(), this.boardView.getHeight(), bitmap);
boardView.setBitmap(bitmap);
}
}
public Bitmap resizeBitmapFitXY(int width, int height, Bitmap bitmap){
Bitmap background = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
float originalWidth = bitmap.getWidth(), originalHeight = bitmap.getHeight();
Canvas canvas = new Canvas(background);
float scale, xTranslation = 0.0f, yTranslation = 0.0f;
if (originalWidth > originalHeight) {
scale = height/originalHeight;
xTranslation = (width - originalWidth * scale)/2.0f;
}
else {
scale = width / originalWidth;
yTranslation = (height - originalHeight * scale)/2.0f;
}
Matrix transformation = new Matrix();
transformation.postTranslate(xTranslation, yTranslation);
transformation.preScale(scale, scale);
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(bitmap, transformation, paint);
return background;
}
/*
* (non-Javadoc)
*
* @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/**
* Generates a new game.
*/
private void newGame() {
this.board = new Board(this.boardSize);
this.board.addBoardChangeListener(boardChangeListener);
this.board.rearrange();
this.mainView.removeView(boardView);
this.boardView = new BoardView(this, board);
this.mainView.addView(boardView);
this.moves.setText("Number of movements: 0");
}
/**
* Changes the size of the board
*
* @param newSize
*/
public void changeSize(int newSize) {
if (newSize != this.boardSize) {
this.boardSize = newSize;
this.newGame();
boardView.invalidate();
}
}
/*
* (non-Javadoc)
*
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case R.id.action_settings:
FragmentManager fm = getSupportFragmentManager();
SettingsDialogFragment settings = new SettingsDialogFragment(
this.boardSize);
settings.show(fm, "fragment_settings");
break;
case R.id.action_new_game:
new AlertDialog.Builder(this)
.setTitle("New Game")
.setMessage("Are you sure you want to begin a new game?")
.setPositiveButton(android.R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
board.rearrange();
}
})
.setNegativeButton(android.R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// do nothing
}
}).setIcon(android.R.drawable.ic_dialog_alert)
.show();
break;
case R.id.action_help:
boardView.autoSolve();
break;
}
return super.onOptionsItemSelected(item);
}
/** The board change listener. */
private Board.BoardChangeListener boardChangeListener = new Board.BoardChangeListener() {
public void tileSlid(Place from, Place to, int numOfMoves) {
moves.setText("Number of movements: "
+ Integer.toString(numOfMoves));
}
public void solved(int numOfMoves) {
moves.setText("Solved in " + Integer.toString(numOfMoves)
+ " moves!");
if(running){
chronometer.stop();
running = false;
}
Toast.makeText(getApplicationContext(), "You won!",
Toast.LENGTH_LONG).show();
finish();
}
};
/**
* The Class SettingsDialogFragment. Shows the settings alert dialog in
* order to change the size of the board.
*/
public class SettingsDialogFragment extends DialogFragment {
/** The size. */
private int size;
/**
* Instantiates a new settings dialog fragment.
*
* @param size
* the size
*/
public SettingsDialogFragment(int size) {
this.size = size;
}
/**
* Sets the size.
*
* @param size
* the new size
*/
void setSize(int size) {
this.size = size;
}
/**
* Gets the size.
*
* @return the size
*/
int getSize() {
return this.size;
}
/*
* (non-Javadoc)
*
* @see
* android.support.v4.app.DialogFragment#onCreateDialog(android.os.Bundle
* )
*/
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Set the dialog title
builder.setTitle("Define the size of the puzzle")
.setSingleChoiceItems(R.array.size_options, this.size - 2,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
setSize(which + 2);
}
})
.setPositiveButton("Change",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int id) {
((PuzzleMainActivity) getActivity())
.changeSize(getSize());
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});
return builder.create();
}
}
}

View File

@ -83,14 +83,6 @@ public class QuickPlayMenu extends AppCompatActivity {
} }
}); });
slidingTiles.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(QuickPlayMenu.this,PuzzleMainActivity.class);
startActivity(intent);
}
});

View File

@ -16,6 +16,10 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
//import com.example.alzapp.Question;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
public class QuizQuestionPage extends AppCompatActivity { public class QuizQuestionPage extends AppCompatActivity {