๋ฐ์ํ
โ ์์ฑํ ๊ฒ์ ๋ทฐ
โ ์ฝ๋
1) MainActivity
package com.example.colortimergame_2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
// for timer
private static int MILLISNFUTURE = 10*1000; // ์ด์๊ฐ
private static int COUNT_DOWN_INTERVAL = 1000; // Tick ์๊ฐ
private int count = 10;
private int scorenum =0;
private TextView timer;
private TextView score;
private CountDownTimer countDownTimer;
private CountDownTimer countDownTimeronResume;
static long millisecondsleft;
boolean isPause = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
timer = (TextView)findViewById(R.id.main_tv_timer);
score = (TextView)findViewById(R.id.main_tv_score);
Intent intent = getIntent();
int getScore = intent.getIntExtra("score",0);
scorenum = getScore;
score.setText(String.valueOf(scorenum));
Log.d("Life Cycle:","onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d("Life Cycle:","onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d("Life Cycle:","onResume");
score.setText(String.valueOf(scorenum));
// Pause ๊ฐ ์๋๋ฉด
if(isPause == false)
{
countDownTimer = new CountDownTimer(MILLISNFUTURE,COUNT_DOWN_INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
millisecondsleft = millisUntilFinished;
timer.setText(""+String.format("%02d",millisUntilFinished/1000));
}
@Override
public void onFinish() {
timer.setText("Finish.");
}
}.start();
}
else
{
countDownTimeronResume = new CountDownTimer(millisecondsleft,COUNT_DOWN_INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
Toast.makeText(MainActivity.this,"ONPAUSED",Toast.LENGTH_SHORT).show();
millisecondsleft = millisUntilFinished;
timer.setText(""+String.format("%02d",millisUntilFinished/1000));
}
@Override
public void onFinish() {
timer.setText("Finish.");
}
}.start();
}
// computer turn ์ ์
TextView game_turn = findViewById(R.id.main_tv_game);
String[] color_turn = {"R","G","B","Y","P"};
int[] original ={0,1,2,3,4};
for(int x=0; x<original.length;x++)
{
int i = (int)(Math.random()*original.length);
int j = (int)(Math.random()*original.length);
int tmp = original[i];
original[i] = original[j];
original[j]=tmp;
}
final String[] color_turn_result ={color_turn[original[0]],color_turn[original[1]],
color_turn[original[2]],color_turn[original[3]], color_turn[original[4]]};
String result_turn = color_turn[original[0]]+" "+
color_turn[original[1]]+ " "+
color_turn[original[2]]+ " "+
color_turn[original[3]]+ " "+
color_turn[original[4]]+" ";
game_turn.setText(result_turn);
Log.d("game Turn",result_turn);
// ์ฌ์ฉ์ turn ์ป๊ธฐ
final ArrayList user_turn = new ArrayList();
ImageButton red_btn = (findViewById(R.id.main_btn_red));
ImageButton blue_btn = (findViewById(R.id.main_btn_blue));
ImageButton green_btn = (findViewById(R.id.main_btn_green));
ImageButton yellow_btn = (findViewById(R.id.main_btn_yellow));
ImageButton purple_btn = (findViewById(R.id.main_btn_purple));
red_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_turn.add("R");
Log.d("user input: ",String.valueOf(user_turn));
if(user_turn.size() ==1)
{
if(String.valueOf(user_turn.get(0)) != color_turn_result[0])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
if(user_turn.size() == 5)
{
for(int i = 0; i<5; i++)
{
if(String.valueOf(user_turn.get(i)) != color_turn_result[i])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
break;
}
}
Intent intent = new Intent(MainActivity.this,MainActivity.class);
scorenum +=1;
intent.putExtra("score",scorenum);
Toast.makeText(MainActivity.this,"Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
});
blue_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_turn.add("B");
Log.d("user input: ",String.valueOf(user_turn));
if(user_turn.size() ==1)
{
if(String.valueOf(user_turn.get(0)) != color_turn_result[0])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
if(user_turn.size() == 5)
{
for(int i = 0; i<5; i++)
{
if(String.valueOf(user_turn.get(i)) != color_turn_result[i])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
break;
}
}
Intent intent = new Intent(MainActivity.this,MainActivity.class);
scorenum +=1;
intent.putExtra("score",scorenum);
Toast.makeText(MainActivity.this,"Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
});
green_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_turn.add("G");
Log.d("user input: ",String.valueOf(user_turn));
if(user_turn.size() ==1)
{
if(String.valueOf(user_turn.get(0)) != color_turn_result[0])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
if(user_turn.size() == 5)
{
for(int i = 0; i<5; i++)
{
if(String.valueOf(user_turn.get(i)) != color_turn_result[i])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
break;
}
}
Intent intent = new Intent(MainActivity.this,MainActivity.class);
Toast.makeText(MainActivity.this,"Match",Toast.LENGTH_SHORT).show();
scorenum +=1;
intent.putExtra("score",scorenum);
startActivity(intent);
}
}
});
yellow_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_turn.add("Y");
Log.d("user input: ",String.valueOf(user_turn));
if(user_turn.size() ==1)
{
if(String.valueOf(user_turn.get(0)) != color_turn_result[0])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
if(user_turn.size() == 5)
{
for(int i = 0; i<5; i++)
{
if(String.valueOf(user_turn.get(i)) != color_turn_result[i])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
break;
}
}
Intent intent = new Intent(MainActivity.this,MainActivity.class);
Toast.makeText(MainActivity.this,"Match",Toast.LENGTH_SHORT).show();
scorenum +=1;
intent.putExtra("score",scorenum);
startActivity(intent);
}
}
});
purple_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user_turn.add("P");
Log.d("user input: ",String.valueOf(user_turn));
if(user_turn.size() ==1)
{
if(String.valueOf(user_turn.get(0)) != color_turn_result[0])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
if(user_turn.size() == 5)
{
for(int i = 0; i<5; i++)
{
if(String.valueOf(user_turn.get(i)) != color_turn_result[i])
{
Intent intent = new Intent(MainActivity.this, EndActivity.class);
Toast.makeText(MainActivity.this,"Not Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
break;
}
}
Intent intent = new Intent(MainActivity.this,MainActivity.class);
scorenum +=1;
intent.putExtra("score",scorenum);
Toast.makeText(MainActivity.this,"Match",Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
});
}
@Override
protected void onPause() {
super.onPause();
if(countDownTimer != null)
{
countDownTimer.cancel();
isPause = true;
}
if(countDownTimeronResume != null)
{
countDownTimeronResume.cancel();
}
Log.d("Life Cycle:","onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d("Life Cycle:","onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("Life Cycle:","onDestroy");
}
}
2) StartActivity
package com.example.colortimergame_2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.spark.submitbutton.SubmitButton;
public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
getSupportActionBar().hide();
SubmitButton btnStart = findViewById(R.id.start_btn_start);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(StartActivity.this,MainActivity.class);
startActivity(intent);
}
});
}
}
3) EndActivity
package com.example.colortimergame_2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.spark.submitbutton.SubmitButton;
public class EndActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_end);
getSupportActionBar().hide();
SubmitButton btnAgain = findViewById(R.id.end_btn_again);
btnAgain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(EndActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}
๋ฐ์ํ
'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android::Java ๋ฌธ๋ฒ +๏ผ (0) | 2020.07.21 |
---|---|
Android:: countDownTimer & Lifecycle (0) | 2020.07.21 |
Android::Awesome UI (0) | 2020.07.14 |
Android:: RelativeLayout ๊ณผ ConstraintLayout์ ์ฐจ์ด (0) | 2020.07.07 |
Android:: TableLayout ๊ณผ GridLayout์ ์ฐจ์ด์ ๊ณ์ฐ๊ธฐ View ๋ง๋ค๊ธฐ (0) | 2020.07.07 |
๋๊ธ