본문 바로가기

프로그램언어/android & iPhone

[ 안드로이드 ] 안드로이드 게임 만들기 - 윷놀이

android 게임을 책 내용을 따라하면서 의외로 많은 즐거움을 선사하고 있습니다. 일단 무료했던 시간을 보낼 수도 있고, 

간단한 어플을 통해서 시간을 보낼 수 있다는 장점이 가장 크다는 생각을 하게 되었습니다.

저의 조카들( 10살 / 12살 / 14살 / 15살 ) 이녀석들이 모이면 윷놀이를 자주하고 있습니다.

가족 모임에서 용돈을 주면 그 돈으로 편을 먹고 윷놀이를 하는 것을 보고 이녀석들 헨드폰을 던져 주면 지들끼리

잘 놀겠구나라는 생각을 하였습니다. 그래서 어플을 만들어 보기로 하였습니다.

먼저 프로젝트를 생성합니다. 아래 강좌에서 몇번 포스팅을 한 관계로 넘기고 실제로 코딩해야 되는 부분만

포스팅하겠습니다.

 


yut_0 / yut_1 이미지를 통해서 윷놀이의 엎었다 뒤집었다 하는 윷놀이 이미지 입니다.  

먼저 main.xml을 수정을 해야 합니다. 먼저 텍스를 먼저 출력 후, 이미지를 덮어서 적용해보겠습니다. 

main.xml 을 다음과 같이 수정합니다.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView  

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" 

    android:text="윷을 던지세요"

    android:gravity="center"

    android:textSize="18sp"

    />

    <LinearLayout

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    android:layout_width="fill_parent">

   

   <TextView

    android:id="@+id/TextView01"

    android:text="○○○○○"

    android:textSize="30sp"

    android:layout_weight="1"

    android:layout_width="fill_parent"

    android:gravity="center"

    android:layout_height="40dip" />

   

    <TextView

    android:id="@+id/TextView02"

    android:text="○○○○○"

    android:textSize="30sp"

    android:layout_weight="1"

    android:layout_width="fill_parent"

    android:gravity="center"

    android:layout_height="40dip" />

   

    </LinearLayout>

    <LinearLayout

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    android:layout_width="fill_parent">

    <TextView

    android:id="@+id/TextView03"

    android:text="●●●●●"

    android:textSize="30sp"

    android:layout_weight="1"

    android:layout_width="fill_parent"

    android:gravity="center"

    android:layout_height="40dip"/>

    <TextView

    android:id="@+id/TextView04"

    android:text="●●●●●"

    android:textSize="30sp"

    android:layout_weight="1"

    android:layout_width="fill_parent"

    android:gravity="center"

    android:layout_height="40dip"/>

   

    </LinearLayout>

    <TextView

    android:id="@+id/TextView05"

    android:text="결과"

    android:layout_width="fill_parent"

    android:textSize="18sp"

    android:layout_height="60dip"

    android:gravity="center"/>

   

    <Button

    android:id="@+id/Button01"

    android:text="확인"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:layout_width="120sp"

    android:textSize="16sp"/>

</LinearLayout>


 
자바파일을 다음과 같이 수정합니다.

package com.game.yut;

//import android.app.Activity;
//import android.os.Bundle;
import java.util.*;

import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;

public class playing extends Activity {
    /** Called when the activity is first created. */
	String tYut[] = {"○○○○○", "●●●●●"};
	String Yut[] = {"윷", "도", "개", "걸", "모"};
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViewById(R.id.Button01).setOnClickListener( myButtonClick );
    }
    
    Button.OnClickListener myButtonClick = new Button.OnClickListener() {
    	public void onClick( View v ) {
    		Random rnd = new Random();
    		int n1 = 1 - rnd.nextInt( 10 )/6;
    		int n2 = 1 - rnd.nextInt(10)/6;
    		int n3 = 1 - rnd.nextInt(10)/6;
    		int n4 = 1 - rnd.nextInt(10)/6;
    		int n = n1 + n2 + n3 + n4;
    		
			((TextView)findViewById(R.id.TextView01)).setText(tYut[n1]);
			((TextView)findViewById(R.id.TextView02)).setText(tYut[n2]);
			((TextView)findViewById(R.id.TextView03)).setText(tYut[n3]);
			((TextView)findViewById(R.id.TextView04)).setText(tYut[n4]);
			((TextView)findViewById(R.id.TextView05)).setText(Yut[n]);
    	}
    };
}
 


윷놀이 게임을 다음과 같이 만듭니다.

 
이미지를 입히는 작업을 하겠습니다. 아까 수정한 xml 을 수정합니다.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView  

    android:text="윷을 던지세요" 

    android:layout_width="fill_parent" 

    android:layout_height="60dip" 

    android:gravity="center" 

    android:textSize="20sp"/>

<LinearLayout 

android:layout_width="fill_parent" 

android:layout_height="90dip">

<ImageView 

android:id="@+id/ImageView01" 

android:src="@drawable/yut_0" 

android:layout_width="wrap_content" 

android:layout_height="wrap_content" 

android:layout_marginLeft="20dip" 

android:layout_marginRight="10dip"/>

<ImageView 

android:id="@+id/ImageView02" 

android:src="@drawable/yut_1" 

android:layout_width="wrap_content" 

android:layout_height="wrap_content" 

android:layout_marginLeft="10dip"/> 

</LinearLayout>

<LinearLayout 

android:layout_width="fill_parent" 

android:layout_height="90dip">

<ImageView 

android:id="@+id/ImageView03" 

android:src="@drawable/yut_0" 

android:layout_width="wrap_content" 

android:layout_height="wrap_content" 

android:layout_marginLeft="20dip"

android:layout_marginRight="10dip"/> 

<ImageView 

android:id="@+id/ImageView04" 

android:src="@drawable/yut_1" 

android:layout_width="wrap_content" 

android:layout_height="wrap_content" 

android:layout_marginLeft="10dip"/> 

</LinearLayout>

<TextView 

android:id="@+id/TextView05"

android:text="결과 : " 

android:layout_width="fill_parent" 

android:textSize="18sp" 

android:layout_height="60dip" 

android:gravity="center"/> 

<Button 

android:id="@+id/Button01" 

android:text="확인" 

android:layout_height="wrap_content" 

android:layout_gravity="center" 

android:layout_width="120dip" 

android:textSize="16sp"/>

</LinearLayout>


 
xml을 수정하셨다면 다음과 같이 java 파일을 수정 후, 이미지를 위 경로에 복사해서 놓습니다.

 

package com.game.yut;
//import android.app.Activity;
//import android.os.Bundle;
import java.util.*;

import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;

public class playing extends Activity {
	int imgYut[] = {R.drawable.yut_0, R.drawable.yut_1}; 
	String Yut[] = {"윷", "걸", "개", "도", "모"};

	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViewById(R.id.Button01).setOnClickListener(myButtonClick);
    }
    
    //----------------------------------------
    //   Button OnClickListener
    //----------------------------------------
    Button.OnClickListener myButtonClick = new Button.OnClickListener() {
		public void onClick(View v) {
			Random rnd = new Random();
			int n1 = 1 - rnd.nextInt(10) / 6;
			int n2 = 1 - rnd.nextInt(10) / 6;
			int n3 = 1 - rnd.nextInt(10) / 6;
			int n4 = 1 - rnd.nextInt(10) / 6;
			int n = n1 + n2 + n3 + n4;

			((ImageView) findViewById(R.id.ImageView01)).setImageResource(imgYut[n1]);
			((ImageView) findViewById(R.id.ImageView02)).setImageResource(imgYut[n2]);
			((ImageView) findViewById(R.id.ImageView03)).setImageResource(imgYut[n3]);
			((ImageView) findViewById(R.id.ImageView04)).setImageResource(imgYut[n4]);
			((TextView) findViewById(R.id.TextView05)).setText(Yut[n]);
		}
	};
}