안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
안드로이드 쪽으로 개발해보고자 하는 완전초보인 학생입니다 ㅠㅠ
빙고 어플을 제작하려고 하는데요
이 부분이 게임 클레스 부분입니다.
package net.npaka.Bingo;
import java.util.*;
import net.npaka.Bingo.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Gamepage extends Activity{
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
Intent intent = new Intent(Gamepage.this, Waiting_room.class);
startActivity(intent);
finish();
}
int buttenaera[] = {R.drawable.a0,R.drawable.a01,R.drawable.a02,R.drawable.a03,R.drawable.a04
,R.drawable.a05,R.drawable.a06,R.drawable.a07,R.drawable.a08,R.drawable.a09,R.drawable.a10,
R.drawable.a11,R.drawable.a12,R.drawable.a13,R.drawable.a14,R.drawable.a15,R.drawable.a16,R.drawable.a17
,R.drawable.a18,R.drawable.a19,R.drawable.a20,R.drawable.a21,R.drawable.a22,R.drawable.a23,R.drawable.a24
,R.drawable.a25,R.drawable.a26,R.drawable.a27,R.drawable.a28,R.drawable.a29,R.drawable.a30,R.drawable.a31
,R.drawable.a32,R.drawable.a33,R.drawable.a34,R.drawable.a35,R.drawable.a36,R.drawable.a37,R.drawable.a38
,R.drawable.a39,R.drawable.a40,R.drawable.a41,R.drawable.a42,R.drawable.a43,R.drawable.a44,R.drawable.a45
,R.drawable.a46,R.drawable.a47,R.drawable.a48,R.drawable.a49,R.drawable.a50};
int buttenId[] = {R.id.button1,R.id.button2,R.id.button3,R.id.button4,R.id.button5,R.id.button6,R.id.button7
,R.id.button8,R.id.button9,R.id.button10,R.id.button11,R.id.button12,R.id.button13,R.id.button14,R.id.button15,
R.id.button16,R.id.button17,R.id.button18,R.id.button19,R.id.button20,R.id.button21,R.id.button22,R.id.button23,
R.id.button24,R.id.button25};
int Line[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int go = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
Random rd =new Random();
int i=0;
int blank[] = new int[25];
for (int j=0;j<25;j++){
i = rd.nextInt(49)+1;
blank[j] = i;
}
for(int j=0;j<25;j++){
for(int k=0;k<25;k++){
if(j==k && blank[j]==blank[k]);
else if(blank[j] ==blank[k]){
i = rd.nextInt(49)+1;
blank[j] = i;
k=0;
}
}
}
for(int j=0;j<25;j++){
findViewById(buttenId[j]).setBackgroundResource(buttenaera[blank[j]]);
}
findViewById(R.id.back).setOnClickListener(mClickListener);
findViewById(R.id.button1).setOnClickListener(mClickListener);
findViewById(R.id.button2).setOnClickListener(mClickListener);
findViewById(R.id.button3).setOnClickListener(mClickListener);
findViewById(R.id.button4).setOnClickListener(mClickListener);
findViewById(R.id.button5).setOnClickListener(mClickListener);
findViewById(R.id.button6).setOnClickListener(mClickListener);
findViewById(R.id.button7).setOnClickListener(mClickListener);
findViewById(R.id.button8).setOnClickListener(mClickListener);
findViewById(R.id.button9).setOnClickListener(mClickListener);
findViewById(R.id.button10).setOnClickListener(mClickListener);
findViewById(R.id.button11).setOnClickListener(mClickListener);
findViewById(R.id.button12).setOnClickListener(mClickListener);
findViewById(R.id.button13).setOnClickListener(mClickListener);
findViewById(R.id.button14).setOnClickListener(mClickListener);
findViewById(R.id.button15).setOnClickListener(mClickListener);
findViewById(R.id.button16).setOnClickListener(mClickListener);
findViewById(R.id.button17).setOnClickListener(mClickListener);
findViewById(R.id.button18).setOnClickListener(mClickListener);
findViewById(R.id.button19).setOnClickListener(mClickListener);
findViewById(R.id.button20).setOnClickListener(mClickListener);
findViewById(R.id.button21).setOnClickListener(mClickListener);
findViewById(R.id.button22).setOnClickListener(mClickListener);
findViewById(R.id.button23).setOnClickListener(mClickListener);
findViewById(R.id.button24).setOnClickListener(mClickListener);
findViewById(R.id.button25).setOnClickListener(mClickListener);
}
int cnt;
Button.OnClickListener mClickListener = new Button.OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case R.id.button1:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[5]++;Line[10]++;
if(Line[0]==5||Line[5]==5||Line[10]==5)
go++;
break;
case R.id.button2:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[6]++;
if(Line[0]==5||Line[6]==5)
go++;
break;
case R.id.button3:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[7]++;
if(Line[0]==5||Line[7]==5)
go++;
break;
case R.id.button4:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[8]++;
if(Line[0]==5||Line[8]==5)
go++;
break;
case R.id.button5:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[9]++;Line[11]++;
if(Line[0]==5||Line[9]==5||Line[11]==5)
go++;
break;
case R.id.button6:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[5]++;
if(Line[1]==5||Line[5]==5)
go++;
break;
case R.id.button7:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[6]++;Line[10]++;
if(Line[1]==5||Line[6]==5||Line[10]==5)
go++;
break;
case R.id.button8:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[7]++;
if(Line[1]==5||Line[7]==5)
go++;
break;
case R.id.button9:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[8]++;Line[11]++;
if(Line[1]==5||Line[8]==5||Line[11]==5)
go++;
break;
case R.id.button10:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[9]++;
if(Line[1]==5||Line[9]==5)
go++;
break;
case R.id.button11:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[5]++;
if(Line[2]==5||Line[5]==5)
go++;
break;
case R.id.button12:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[6]++;
if(Line[2]==5||Line[6]==5)
go++;
break;
case R.id.button13:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[7]++;Line[10]++;Line[11]++;
if(Line[2]==5||Line[7]==5||Line[10]==5||Line[11]==5)
go++;
break;
case R.id.button14:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[8]++;
if(Line[2]==5||Line[8]==5)
go++;
break;
case R.id.button15:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[9]++;
if(Line[2]==5||Line[9]==5)
go++;
break;
case R.id.button16:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[5]++;
if(Line[3]==5||Line[5]==5)
go++;
break;
case R.id.button17:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[6]++;Line[11]++;
if(Line[3]==5||Line[6]==5||Line[11]==5)
go++;
break;
case R.id.button18:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[7]++;
if(Line[3]==5||Line[7]==5)
go++;
break;
case R.id.button19:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[8]++;Line[10]++;
if(Line[3]==5||Line[8]==5||Line[10]==5)
go++;
break;
case R.id.button20:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[9]++;
if(Line[3]==5||Line[9]==5)
go++;
break;
case R.id.button21:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[5]++;Line[11]++;
if(Line[4]==5||Line[5]==5||Line[11]==5)
go++;
break;
case R.id.button22:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[6]++;
if(Line[4]==5||Line[6]==5)
go++;
break;
case R.id.button23:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[7]++;
if(Line[4]==5||Line[7]==5)
go++;
break;
case R.id.button24:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[8]++;
if(Line[4]==5||Line[8]==5)
go++;
break;
case R.id.button25:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[9]++;Line[10]++;
if(Line[4]==5||Line[9]==5||Line[10]==5)
go++;
break;
case R.id.back:
Intent intent = new Intent(Gamepage.this, Waiting_room.class);
startActivity(intent);
finish();
break;
}
if(go!=0&&(go%3)==0){
new AlertDialog.Builder(Gamepage.this)
.setTitle("Game Over")
.setMessage(go+"줄 완성")
.setPositiveButton("나가기", new DialogInterface.OnClickListener() {
// @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
Intent intent = new Intent(Gamepage.this, Bingo.class);
startActivity(intent);
finish();
}
else if(go!=0){
new AlertDialog.Builder(Gamepage.this)
.setTitle("Game")
.setMessage(go+"줄 완성")
.setPositiveButton("닫기", new DialogInterface.OnClickListener() {
// @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
};
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
Intent intent = new Intent(Gamepage.this, Waiting_room.class);
startActivity(intent);
finish();
}
int buttenaera[] = {R.drawable.a0,R.drawable.a01,R.drawable.a02,R.drawable.a03,R.drawable.a04
,R.drawable.a05,R.drawable.a06,R.drawable.a07,R.drawable.a08,R.drawable.a09,R.drawable.a10,
R.drawable.a11,R.drawable.a12,R.drawable.a13,R.drawable.a14,R.drawable.a15,R.drawable.a16,R.drawable.a17
,R.drawable.a18,R.drawable.a19,R.drawable.a20,R.drawable.a21,R.drawable.a22,R.drawable.a23,R.drawable.a24
,R.drawable.a25,R.drawable.a26,R.drawable.a27,R.drawable.a28,R.drawable.a29,R.drawable.a30,R.drawable.a31
,R.drawable.a32,R.drawable.a33,R.drawable.a34,R.drawable.a35,R.drawable.a36,R.drawable.a37,R.drawable.a38
,R.drawable.a39,R.drawable.a40,R.drawable.a41,R.drawable.a42,R.drawable.a43,R.drawable.a44,R.drawable.a45
,R.drawable.a46,R.drawable.a47,R.drawable.a48,R.drawable.a49,R.drawable.a50};
int buttenId[] = {R.id.button1,R.id.button2,R.id.button3,R.id.button4,R.id.button5,R.id.button6,R.id.button7
,R.id.button8,R.id.button9,R.id.button10,R.id.button11,R.id.button12,R.id.button13,R.id.button14,R.id.button15,
R.id.button16,R.id.button17,R.id.button18,R.id.button19,R.id.button20,R.id.button21,R.id.button22,R.id.button23,
R.id.button24,R.id.button25};
int Line[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int go = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
Random rd =new Random();
int i=0;
int blank[] = new int[25];
for (int j=0;j<25;j++){
i = rd.nextInt(49)+1;
blank[j] = i;
}
for(int j=0;j<25;j++){
for(int k=0;k<25;k++){
if(j==k && blank[j]==blank[k]);
else if(blank[j] ==blank[k]){
i = rd.nextInt(49)+1;
blank[j] = i;
k=0;
}
}
}
for(int j=0;j<25;j++){
findViewById(buttenId[j]).setBackgroundResource(buttenaera[blank[j]]);
}
findViewById(R.id.back).setOnClickListener(mClickListener);
findViewById(R.id.button1).setOnClickListener(mClickListener);
findViewById(R.id.button2).setOnClickListener(mClickListener);
findViewById(R.id.button3).setOnClickListener(mClickListener);
findViewById(R.id.button4).setOnClickListener(mClickListener);
findViewById(R.id.button5).setOnClickListener(mClickListener);
findViewById(R.id.button6).setOnClickListener(mClickListener);
findViewById(R.id.button7).setOnClickListener(mClickListener);
findViewById(R.id.button8).setOnClickListener(mClickListener);
findViewById(R.id.button9).setOnClickListener(mClickListener);
findViewById(R.id.button10).setOnClickListener(mClickListener);
findViewById(R.id.button11).setOnClickListener(mClickListener);
findViewById(R.id.button12).setOnClickListener(mClickListener);
findViewById(R.id.button13).setOnClickListener(mClickListener);
findViewById(R.id.button14).setOnClickListener(mClickListener);
findViewById(R.id.button15).setOnClickListener(mClickListener);
findViewById(R.id.button16).setOnClickListener(mClickListener);
findViewById(R.id.button17).setOnClickListener(mClickListener);
findViewById(R.id.button18).setOnClickListener(mClickListener);
findViewById(R.id.button19).setOnClickListener(mClickListener);
findViewById(R.id.button20).setOnClickListener(mClickListener);
findViewById(R.id.button21).setOnClickListener(mClickListener);
findViewById(R.id.button22).setOnClickListener(mClickListener);
findViewById(R.id.button23).setOnClickListener(mClickListener);
findViewById(R.id.button24).setOnClickListener(mClickListener);
findViewById(R.id.button25).setOnClickListener(mClickListener);
}
int cnt;
Button.OnClickListener mClickListener = new Button.OnClickListener(){
public void onClick(View v){
switch(v.getId()){
case R.id.button1:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[5]++;Line[10]++;
if(Line[0]==5||Line[5]==5||Line[10]==5)
go++;
break;
case R.id.button2:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[6]++;
if(Line[0]==5||Line[6]==5)
go++;
break;
case R.id.button3:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[7]++;
if(Line[0]==5||Line[7]==5)
go++;
break;
case R.id.button4:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[8]++;
if(Line[0]==5||Line[8]==5)
go++;
break;
case R.id.button5:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[9]++;Line[11]++;
if(Line[0]==5||Line[9]==5||Line[11]==5)
go++;
break;
case R.id.button6:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[5]++;
if(Line[1]==5||Line[5]==5)
go++;
break;
case R.id.button7:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[6]++;Line[10]++;
if(Line[1]==5||Line[6]==5||Line[10]==5)
go++;
break;
case R.id.button8:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[7]++;
if(Line[1]==5||Line[7]==5)
go++;
break;
case R.id.button9:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[8]++;Line[11]++;
if(Line[1]==5||Line[8]==5||Line[11]==5)
go++;
break;
case R.id.button10:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[1]++;Line[9]++;
if(Line[1]==5||Line[9]==5)
go++;
break;
case R.id.button11:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[5]++;
if(Line[2]==5||Line[5]==5)
go++;
break;
case R.id.button12:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[6]++;
if(Line[2]==5||Line[6]==5)
go++;
break;
case R.id.button13:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[7]++;Line[10]++;Line[11]++;
if(Line[2]==5||Line[7]==5||Line[10]==5||Line[11]==5)
go++;
break;
case R.id.button14:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[8]++;
if(Line[2]==5||Line[8]==5)
go++;
break;
case R.id.button15:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[2]++;Line[9]++;
if(Line[2]==5||Line[9]==5)
go++;
break;
case R.id.button16:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[5]++;
if(Line[3]==5||Line[5]==5)
go++;
break;
case R.id.button17:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[6]++;Line[11]++;
if(Line[3]==5||Line[6]==5||Line[11]==5)
go++;
break;
case R.id.button18:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[7]++;
if(Line[3]==5||Line[7]==5)
go++;
break;
case R.id.button19:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[8]++;Line[10]++;
if(Line[3]==5||Line[8]==5||Line[10]==5)
go++;
break;
case R.id.button20:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[3]++;Line[9]++;
if(Line[3]==5||Line[9]==5)
go++;
break;
case R.id.button21:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[5]++;Line[11]++;
if(Line[4]==5||Line[5]==5||Line[11]==5)
go++;
break;
case R.id.button22:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[6]++;
if(Line[4]==5||Line[6]==5)
go++;
break;
case R.id.button23:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[7]++;
if(Line[4]==5||Line[7]==5)
go++;
break;
case R.id.button24:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[8]++;
if(Line[4]==5||Line[8]==5)
go++;
break;
case R.id.button25:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[4]++;Line[9]++;Line[10]++;
if(Line[4]==5||Line[9]==5||Line[10]==5)
go++;
break;
case R.id.back:
Intent intent = new Intent(Gamepage.this, Waiting_room.class);
startActivity(intent);
finish();
break;
}
if(go!=0&&(go%3)==0){
new AlertDialog.Builder(Gamepage.this)
.setTitle("Game Over")
.setMessage(go+"줄 완성")
.setPositiveButton("나가기", new DialogInterface.OnClickListener() {
// @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
Intent intent = new Intent(Gamepage.this, Bingo.class);
startActivity(intent);
finish();
}
else if(go!=0){
new AlertDialog.Builder(Gamepage.this)
.setTitle("Game")
.setMessage(go+"줄 완성")
.setPositiveButton("닫기", new DialogInterface.OnClickListener() {
// @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
};
}
어느 부분을 손대야 할지 몰라 풀로 올리는데..
어느 부분을 손대야 할지 몰라 풀로 올리는데..
아시다 시피 빙고라는게 1줄이 완성되고 쭉쭉 해서 5줄 완성이 되고 마무리 되는 게임입니다.
이 소스에서는 일단 3줄로 해놨는데요
여기 소스 실행을 했을때 1줄에 버튼 5개가 있는데 하나 버튼이 중복적으로 해서 인식이 되버립니다;;;;
예를들자면, (1,1) 부터 (1,5) 까지 해야 빙고 한줄 완성인데
(1,1) 5번을 클릭하면 또 한줄이 완성됫다고 뜨더군요 'ㅁ';;
게다가 한줄 완성하고 또 다른 버튼을 눌렀을때 게속 한줄이 완성됫다는 알림창이 떠버립니다;;
도저히 어느부분을 어떻게 다가가야 할지 엄두가 나질 않네요 ㅠㅠ
고수님들 조언 부탁드립니다. ㅠㅠ




case R.id.button1:
findViewById(v.getId()).setBackgroundResource(buttenaera[0]);
Line[0]++;Line[5]++;Line[10]++;
if(Line[0]==5||Line[5]==5||Line[10]==5)
go++;
break;
한번눌린것에대한 체크가 없는거같아요 ~ 그부분을 추가해주시면 될듯..