본문 바로가기
Android

Constraint Layout + 주사위게임 만들기

by noddu 2021. 3. 21.
728x90
반응형

●주사위게임 만들기

package com.kmg.ex0318;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Random;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    // Java 소스코드로 Button 에 ClickListener 달기
    // 1.MainActivity.class 파일에 OnClickListener 를 implements 하기
    // 2. OnClickListener 인터페이스의 onClick 메소드를 Overriding 하기 (alt + enter)
    // 3. 이벤트 발생시킬 Button 에 ClickListener 를 달기 (setOnClickListener(this))
    Button btn_shake;
    ImageView img1, img2;
    TextView tv_score;

    int score1 = 0; //왼쪽주사위 이긴횟수
    int score2 = 0; //오른쪽주사위 이긴횟수

    int[]dice = {R.drawable.dice1,R.drawable.dice2,R.drawable.dice3,
            R.drawable.dice4,R.drawable.dice5,R.drawable.dice6};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_shake = findViewById(R.id.btn_shake);
        img1 = findViewById(R.id.iv_dice1);
        img2 = findViewById(R.id.iv_dice2);
        tv_score = findViewById(R.id.tv_score);

        btn_shake.setOnClickListener(this);



    }

    @Override
    public void onClick(View v) {
        // 버튼을 누르면 실행될 메소드
        // 주사위 이미지 중에서 한개를 랜덤으로 뽑아야 함 (두번)
        // 1.이미지 리소스들을(R.drawable.dice1..) 배열에 넣고 배열 인덱스 중에서 랜덤으로 뽑기
        // 2.이미지 뷰의 이미지를 방금 뽑은 리소스로 바꾸기
        int num1 = new Random().nextInt(6);
        int num2 = new Random().nextInt(6);

        img1.setImageResource(dice[num1]);  // 배열에서 num1번째의 이미즈를꺼내서 왼쪽 이미지뷰에 지정
        img2.setImageResource(dice[num2]);  // num2번째 이미지를 오른쪽 이미지뷰에 지정

        //스코어 표시하기
        if(num1>num2){  //왼쪽 주사위가 이기면
            score1++;   //1점추가
        }else if(num2 > num1){
            score2++;
        }else{  //무승부라면
            Toast.makeText(this, "무승부여",Toast.LENGTH_SHORT).show();
        }
        
        tv_score.setText(score1 + ":" + score2);

    }
}

배열에 주사위 이미지넣고 랜덤으로 뽑아서

더 큰 숫자가 나온 주사위 스코어를 1점씩 추가, 무승부라면 Toast메세지 출력하기

 

 

 

 

●Constraint Layout

 

 

 

Pixel로 해상도 조절가능

 

 

 

 

제약조건 활용해 카카오 화면 만들기

 

 

 

 

MainActivity하나 , xml파일 두개만들기

 

 

반응형

'Android' 카테고리의 다른 글

Intent 사용 2  (0) 2021.03.23
Intent 사용하기  (0) 2021.03.22
View와 xml 이란  (0) 2021.03.21
Constraint Layout 예제 실습  (0) 2021.03.19
Button + onclick속성  (0) 2021.03.11