mirror of
				https://github.com/bspeice/itcs4180
				synced 2025-11-03 18:00:37 -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:
		@ -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);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user