mirror of
https://github.com/bspeice/itcs4180
synced 2024-12-04 21:28:10 -05:00
Functionality for HW3. Tried to seperate Tile class and MainActivity.
Has 2 issues. First is that a completed row has the Tile ImageViews change size and second is that finish()does not properly close the entire application.
This commit is contained in:
parent
05dfaa8ebf
commit
0a80acace1
@ -194,7 +194,8 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/btnNewGame" />
|
||||
android:text="@string/btnNewGame"
|
||||
android:onClick="newGame"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnUnCover"
|
||||
@ -202,7 +203,8 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/btnUnCover" />
|
||||
android:text="@string/btnUnCover"
|
||||
android:onClick="uncover" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
@ -3,5 +3,7 @@
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
<dimen name="imageHeight">80dp</dimen>
|
||||
<dimen name="imageWidth">80dp</dimen>
|
||||
|
||||
</resources>
|
||||
|
@ -7,16 +7,39 @@ package com.uncc.hw3;
|
||||
* MainActivity.java
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.app.Activity;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
public class MainActivity extends Activity {
|
||||
|
||||
public class MainActivity extends Activity
|
||||
{
|
||||
|
||||
ImageView iv;
|
||||
public int [] imageViews = {R.id.imgTile1_1, R.id.imgTile1_2, R.id.imgTile1_3, R.id.imgTile1_4,
|
||||
R.id.imgTile2_1, R.id.imgTile2_2, R.id.imgTile2_3, R.id.imgTile2_4,
|
||||
R.id.imgTile3_1, R.id.imgTile3_2, R.id.imgTile3_3, R.id.imgTile3_4,
|
||||
R.id.imgTile4_1, R.id.imgTile4_2, R.id.imgTile4_3, R.id.imgTile4_4,};
|
||||
public int[] iconIds = {R.drawable.diamond, R.drawable.garnet, R.drawable.gem, R.drawable.pearl, R.drawable.ruby, R.drawable.sapphire, R.drawable.swarovski, R.drawable.toppaz};
|
||||
static ArrayList<Tile> tiles;
|
||||
static ArrayList<Tile> focusImages;
|
||||
Handler handler = new Handler();
|
||||
static int focusIndex;
|
||||
static long startTime, endTime;
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
newGame((View)findViewById(R.id.LinearLayout1));
|
||||
focusImages.get(focusIndex).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -26,4 +49,64 @@ public class MainActivity extends Activity {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void newGame(View v)
|
||||
{
|
||||
tiles = new ArrayList<Tile>();
|
||||
focusImages = new ArrayList<Tile>();
|
||||
ArrayList<Tile> focusImagesTemp = new ArrayList<Tile>();
|
||||
|
||||
//Create list of board tiles and tiles to find
|
||||
for(int x: iconIds)
|
||||
{
|
||||
tiles.add(new Tile(null, x));
|
||||
tiles.add(new Tile(null, x));
|
||||
focusImagesTemp.add(new Tile((ImageView)findViewById(R.id.imgResult), x));
|
||||
}
|
||||
|
||||
//Shuffle Tiles
|
||||
Collections.shuffle(tiles);
|
||||
Collections.shuffle(focusImagesTemp);
|
||||
|
||||
//Set focusImages list
|
||||
for(int x=0; x<focusImagesTemp.size(); x++)
|
||||
{
|
||||
focusImages.add(focusImagesTemp.get(x));
|
||||
focusImages.add(focusImagesTemp.get(x));
|
||||
}
|
||||
|
||||
//Assign ImageViews id to the tiles and assign listener to all imageViews
|
||||
for(int x=0; x<imageViews.length; x++)
|
||||
{
|
||||
tiles.get(x).setImageView((ImageView)findViewById(imageViews[x]));
|
||||
tiles.get(x).reset();
|
||||
((ImageView)findViewById(imageViews[x])).setOnClickListener(tiles.get(x));
|
||||
}
|
||||
|
||||
//reset focus images and show
|
||||
focusIndex = 0;
|
||||
focusImages.get(focusIndex).show();
|
||||
|
||||
startTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void uncover(View v)
|
||||
{
|
||||
//Show all of the tiles
|
||||
for(int x=0; x<imageViews.length; x++)
|
||||
{
|
||||
tiles.get(x).show();
|
||||
}
|
||||
handler.postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
for(int x=0; x<imageViews.length; x++)
|
||||
{
|
||||
//Cover the tiles that aren't already found
|
||||
if(!tiles.get(x).getMatched())
|
||||
{
|
||||
tiles.get(x).cover();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
@ -49,8 +49,12 @@ public class ResultActivity extends Activity {
|
||||
|
||||
public void onClick(View v) {
|
||||
// Figure out if the Try Again or Exit button was clicked
|
||||
Intent intent = new Intent(this, MainActivity.class);
|
||||
if (v.getId() == R.id.btnTryAgain)
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
{
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
}
|
||||
else if (v.getId() == R.id.btnExit)
|
||||
finish();
|
||||
}
|
||||
|
126
HW3/src/com/uncc/hw3/Tile.java
Normal file
126
HW3/src/com/uncc/hw3/Tile.java
Normal file
@ -0,0 +1,126 @@
|
||||
package com.uncc.hw3;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
/*
|
||||
* Bradlee Speice, Brandon Rodenmayer
|
||||
* ITIS 4180
|
||||
* Homework 3
|
||||
* ResultActivity.java
|
||||
*/
|
||||
|
||||
public class Tile implements View.OnClickListener
|
||||
{
|
||||
private ImageView iv;
|
||||
private int id;
|
||||
private boolean show;
|
||||
private boolean matched;
|
||||
private boolean touchEnabled;
|
||||
Handler handler= new Handler();
|
||||
|
||||
public Tile(ImageView iv, int id)
|
||||
{
|
||||
this.iv = iv;
|
||||
this.id = id;
|
||||
show = false;
|
||||
matched = false;
|
||||
touchEnabled = true;
|
||||
}
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public boolean getShow()
|
||||
{
|
||||
return show;
|
||||
}
|
||||
|
||||
public void show()
|
||||
{
|
||||
show = true;
|
||||
touchEnabled = false;
|
||||
iv.setImageResource(id);
|
||||
}
|
||||
|
||||
public void cover()
|
||||
{
|
||||
show = false;
|
||||
touchEnabled = true;
|
||||
iv.setImageResource(R.drawable.cover);
|
||||
}
|
||||
|
||||
public void reset()
|
||||
{
|
||||
show = false;
|
||||
touchEnabled = true;
|
||||
matched = false;
|
||||
iv.setImageResource(R.drawable.cover);
|
||||
}
|
||||
|
||||
public boolean touchEnabled()
|
||||
{
|
||||
return touchEnabled;
|
||||
}
|
||||
|
||||
public boolean getMatched()
|
||||
{
|
||||
return matched;
|
||||
}
|
||||
|
||||
public void setMatched()
|
||||
{
|
||||
matched = true;
|
||||
}
|
||||
|
||||
public void setImageView(ImageView iv)
|
||||
{
|
||||
this.iv = iv;
|
||||
}
|
||||
|
||||
public void onClick(View v)
|
||||
{
|
||||
if(!matched)
|
||||
{
|
||||
if(touchEnabled)
|
||||
{
|
||||
show();
|
||||
if(id==MainActivity.focusImages.get(MainActivity.focusIndex).getId())
|
||||
{
|
||||
setMatched();
|
||||
try
|
||||
{
|
||||
MainActivity.focusIndex++;
|
||||
MainActivity.focusImages.get(MainActivity.focusIndex).show();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
Intent intent = new Intent(iv.getContext(), ResultActivity.class);
|
||||
MainActivity.endTime = System.currentTimeMillis();
|
||||
intent.putExtra("ELAPSED_TIME", (float)((MainActivity.endTime - MainActivity.startTime)/1000.0));
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
iv.getContext().startActivity(intent);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
handler.postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
cover();
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user