이번 시간에는 야구게임을 만들어 보겠습니다.
게임의 규칙을 설명하겠습니다.
1. 게임을 시작하면 랜덤한 숫자 3개를 생성합니다.
2. 사용자는 랜덤으로 생성된 숫자 3개를 맞춰야 합니다.
3. 숫자의 위치를 맞춘다면 스트라이크
4, 위치는 틀렸지만 숫자라도 맞춘다면 볼
5. 기회는 10번으로 정하고, 그 횟수 안에 맞춰야 합니다.
이제 시작해보겠습니다.
- 설명 -
1. life_count_text: 기회횟수 보여주는 텍스트뷰
2. response_text: 정답확인 보여주는 텍스트뷰
3. result_text: 제출한 답 목록 보여주는 텍스트뷰
4. request_text: 입력한 숫자 보여주는 텍스트뷰
5. start_btn: 게임 시작하는 기능
6. answer_btn: 입력한 숫자 제출하는 기능
7. reset_btn: 게임 초기화하는 기능
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/dialog_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray"
android:orientation="horizontal">
<!-- 기회 횟수-->
<TextView
android:id="@+id/life_count_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="기회: 3번"
android:textSize="25sp"
android:textColor="@android:color/white"
android:textStyle="bold"
android:layout_gravity="center_vertical"/>
<!-- 정답 맞는지 보여주는 텍스트뷰-->
<TextView
android:id="@+id/response_text"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_margin="10dp"
android:layout_weight="2"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="25sp"
android:textStyle="bold"/>
</LinearLayout>
<!-- 답 제출목록 보여주는 텍스트뷰-->
<TextView
android:id="@+id/result_text"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_below="@id/dialog_layout"
android:textSize="20sp"
android:textStyle="bold" />
<!-- 답 제출-->
<EditText
android:id="@+id/request_text"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@id/result_text"
android:layout_margin="10dp"
android:gravity="center"
android:hint="숫자를 입력해주세요."
android:inputType="number"
android:maxLength="3"
android:textSize="25sp"
android:textStyle="bold" />
<!-- 버튼 레이아웃-->
<LinearLayout
android:id="@+id/btn_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/request_text"
android:orientation="horizontal">
<!-- 게임 시작-->
<Button
android:id="@+id/start_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"
android:background="@android:color/holo_green_light"
android:text="시작"
android:textSize="25sp"/>
<!-- 정답 제출-->
<Button
android:id="@+id/answer_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"
android:background="@android:color/holo_green_light"
android:text="정답"
android:textSize="25sp"/>
<Button
android:id="@+id/reset_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_margin="5dp"
android:background="@android:color/holo_green_light"
android:text="초기화"
android:textSize="25sp"/>
</LinearLayout>
</RelativeLayout>
- 설명 -
1. randomNumber: 랜덤한 숫자를 생성하는 메서드
2. HashSet을 쓰는 이유는 랜덤 숫자의 중복을 막기
위해서입니다.
public class MainActivity extends AppCompatActivity{
EditText requestText;
TextView responseText, resultText, lifeCountText;
Button startBtn, answerBtn, resetBtn;
//랜덤한 숫자 들어갈 배열
int[] com = new int[3];
//사용자가 입력한 숫자 들어갈 배열
int[] user = new int[3];
int strike = 0; //스트라이크 갯수
int ball = 0; // 볼 갯수
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//입력된 숫자가 보여지는 텍스트뷰
requestText = findViewById(R.id.request_text);
//정답이 맞는지 보여주는 텍스트뷰
responseText = findViewById(R.id.response_text);
//라이프 카운트
lifeCountText = findViewById(R.id.life_count_text);
//결과 모음
resultText = findViewById(R.id.result_text);
//정답버튼
answerBtn = findViewById(R.id.answer_btn);
//시작버튼
startBtn = findViewById(R.id.start_btn);
//초기화 버튼
resetBtn = findViewById(R.id.reset_btn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
randomNumber();
responseText.setText("랜덤한수:" + com[0]+", " + com[1] + ", " + com[2]);
}
});
}//onCreate();
/**
* 랜덤숫자 생성
*/
public void randomNumber(){
int count = 0;
Random random = new Random();
HashSet set = new HashSet();
//랜덤 숫자 3개 생성
while(set.size() < 3){
int randomNumber = random.nextInt(9)+1;// 1 ~ 9
set.add(randomNumber);
}
//배열에 숫자 담기
for( Object number : set){
Integer tempNum = (Integer) number;
com[count] = tempNum;
count++;
}
}
}//MainActivity
2022.03.28 - [안드로이드] - [안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성
2022.03.29 - [안드로이드] - [안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part2 - 기능 구현
2022.03.27 - [안드로이드] - [안드로이드] 룰렛(Roulette) 쉽게 만드는 방법
[안드로이드] RecyclerView 라디오버튼(RadioButton) 리스트 만드는 방법 (3) | 2022.04.01 |
---|---|
[안드로이드] 야구게임 만드는 방법 part2 - 기능구현 (0) | 2022.03.31 |
[안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part2 - 기능 구현 (0) | 2022.03.29 |
[안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성 (0) | 2022.03.28 |
[안드로이드] 룰렛(Roulette) 쉽게 만드는 방법 (0) | 2022.03.27 |
댓글 영역