ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 안드로이드 방탈출!! 거의완성..
    program_language 및 궁금한것/Android Studio 2018. 4. 5. 12:34

    자바 소스에서 클레스 복사 후 안드로이드스튜디오에서 src에 붙여 넣기 한다면 그대로 불러옴

    오류날 경우엔 전체내용 복붙


    메인

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    package com.example.administrator.maze;
     
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
     
    import java.util.ArrayList;
     
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     
        TextView txt1;
        TextView info;
        TextView qq;
        TextView item;
        EditText edit;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            txt1 = (TextView) findViewById(R.id.txt1);
            info = (TextView) findViewById(R.id.info);
            qq = (TextView) findViewById(R.id.qq);
            item = (TextView) findViewById(R.id.item);
            edit = (EditText) findViewById(R.id.edit);
     
     
            init();
     
            Button buttonUp = (Button) findViewById(R.id.buttonUp);
            buttonUp.setOnClickListener(this);
            Button buttonLeft = (Button) findViewById(R.id.buttonLeft);
            buttonLeft.setOnClickListener(this);
            Button buttonRight = (Button) findViewById(R.id.buttonRight);
            buttonRight.setOnClickListener(this);
            Button buttonDown = (Button) findViewById(R.id.buttonDown);
            buttonDown.setOnClickListener(this);
            Button ok = (Button) findViewById(R.id.ok);
            ok.setOnClickListener(this);
        }
     
        Player player;
        Room[][] map;
        ArrayList<Player> playerArr;
     
        public void init() {
            playerArr = new ArrayList();
            player = new Player(22"개똥이");
            playerArr.add(player);
     
     
            map = new Room[10][4];
     
            setMap(map);
     
            info.setText("현재 위치 " + "[" + player.getPosX() + "]" + "[" + player.getPosY() + "]");
            qq.setText("어디로 이동하시겠습니까?");
     
        }
     
        public void setMap(Room[][] map) {
            for (int i = 0; i < map.length; i++) {
                for (int j = 0; j < map[0].length; j++) {
                    map[i][j] = new Room(00000);
                }
            }
            /** 이벤트 세팅 **/
            map[0][2].setEventType(3);
            map[4][2].setEventType(1);
            map[4][0].setEventType(2);
     
            /** 일반문 및 잠긴문 세팅 **/
            map[0][0].setRightDoor(1);
            map[1][0].setLeftDoor(1);
            map[1][0].setRightDoor(1);
            map[2][0].setLeftDoor(1);
            map[2][0].setRightDoor(1);
            map[2][0].setDownDoor(1);
            map[3][0].setLeftDoor(1);
            map[3][0].setRightDoor(1);
            map[4][0].setLeftDoor(1);
     
            map[2][1].setUpDoor(1);
            map[2][1].setDownDoor(1);
     
            map[0][2].setDownDoor(1);
            map[2][2].setUpDoor(1);
            map[2][2].setRightDoor(1);
            map[2][2].setDownDoor(1);
            map[4][2].setDownDoor(1);
     
            map[0][3].setUpDoor(2);
            map[0][3].setRightDoor(1);
            map[1][3].setLeftDoor(1);
            map[1][3].setRightDoor(1);
            map[2][3].setUpDoor(1);
            map[2][3].setRightDoor(1);
            map[2][3].setLeftDoor(1);
            map[3][3].setRightDoor(1);
            map[3][3].setLeftDoor(1);
            map[4][3].setUpDoor(3);
            map[4][3].setLeftDoor(1);
        }
     
     
        @Override
        public void onClick(View v) {
            info.setText("현재 위치 " + "[" + player.getPosX() + "]" + "[" + player.getPosY() + "]");
            if (v.getId() == R.id.buttonUp) {
                txt1.setText("위로가");
                player.up(map, qq);
            } else if (v.getId() == R.id.buttonLeft) {
                txt1.setText("왼쪽으로가.");
                player.left(map, qq);
            } else if (v.getId() == R.id.buttonRight) {
                txt1.setText("오른쪽으로 가.");
                player.right(map, qq);
            } else if (v.getId() == R.id.buttonDown) {
                txt1.setText("아래로가.");
                player.down(map, qq);
            }
     
            if (map[player.getPosX()][player.getPosY()].getEventType() == 2) {
                qq.setText("퀴즈! 사과를 영어로?");
                edit.setHint("영어로입력");
     
                if (v.getId() == R.id.ok && edit.getText().toString().equals("apple")) {
                    item.setText("1번키를 획득");
    //                player.down(map, qq);
                }
                edit.setText("");
            }
    //        }
            int playerIdx;
     
    //    public class Main {
    //                public void main(String[] args) {
    //
    //            playerIdx = 0;
    //            while (true) {
    //                System.out.println();
    //                System.out.println("-------------------------");
    //                System.out.println("[" + player.getName() + "] 님의 차례");
    //                System.out.println("어디로 이동하시겠습니까?");
    //                System.out.println("1. 위   2. 아래  3. 왼쪽  4. 오른쪽");
    //                System.out.println("현재 위치 " + "[" + player.getPosX() + "]" + "[" + player.getPosY() + "]");
    //
    //
    //                //이동 후 이벤트 체크
    //                if (map[player.getPosX()][player.getPosY()].getEventType() == 2) {
    //                    //영어 문제 후 1번키
    //                    if (map[player.getPosX()][player.getPosY()].quiz()) {
    //                        player.setHasOneKey(true);
    //                    } item.setText("1번키 획득");
    //                } else if (map[player.getPosX()][player.getPosY()].getEventType() == 1) {
    //                    //게임 클리어
    //                    System.out.println("게임이 클리어 하였습니다");
    //                    break;
    //                } else if (map[player.getPosX()][player.getPosY()].getEventType() == 3) {
    //                    //2번키
    //                    player.setHasTwoKey(true);
    //                    System.out.println("2번 키를 획득하였습니다");
    //                }
    //
    //                playerIdx++;
    //            }
    //        }
    //    }
        }
    }
     
     
    cs


    플레이어

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    package com.example.administrator.maze;
     
    import android.widget.TextView;
     
    public class Player {
        private String name;
        private boolean hasOneKey = false;
        private boolean hasTwoKey = false;
        private int posX;
        private int posY;
     
        public Player(int posX, int posY, String name) {
            this.posX = posX;
            this.posY = posY;
            this.name = name;
        }
     
     
        public String getName() {
            return name;
        }
     
     
        public void setName(String name) {
            this.name = name;
        }
     
     
        public void right(Room[][] map, TextView qq) {
            if (posX == map.length - 1) {
                // 벽인 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getRightDoor() == 0) {
                // 문이 없는 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getRightDoor() == 2) {
                // 빨간 문 경우
                if (hasOneKey == true) {
                    posX++;
                } else {
                    qq.setText("1번 키가 필요합니다.");
                }
            } else if (map[posX][posY].getRightDoor() == 3) {
                // 파란 문 경우
                if (hasTwoKey == true) {
                    posX++;
                } else {
                    qq.setText("2번 키가 필요합니다.");
                }
            } else {
                posX++;
            }
        }
     
        public void left(Room[][] map, TextView qq) {
            if (posX == 0) {
                // 벽인 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getLeftDoor() == 0) {
                // 문이 없는 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getLeftDoor() == 2) {
                // 빨간 문 경우
                if (hasOneKey == true) {
                    posX--;
                } else {
                    qq.setText("1번 키가 필요합니다.");
                }
            } else if (map[posX][posY].getLeftDoor() == 3) {
                // 파란 문 경우
                if (hasTwoKey == true) {
                    posX--;
                } else {
                    qq.setText("2번 키가 필요합니다.");
                }
            } else {
                posX--;
            }
        }
     
        public void up(Room[][] map, TextView qq) {
            if (posY == 0) {
                // 벽인 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getUpDoor() == 0) {
                // 문이 없는 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getUpDoor() == 2) {
                // 빨간 문 경우
                if (hasOneKey == true) {
                    posY--;
                } else {
                    qq.setText("1번 키가 필요합니다.");
                }
            } else if (map[posX][posY].getUpDoor() == 3) {
                // 파란 문 경우
                if (hasTwoKey == true) {
                    posY--;
                } else {
                    qq.setText("2번 키가 필요합니다.");
                }
            } else {
                posY--;
            }
        }
     
        public void down(Room[][] map, TextView qq) {
     
            if (posY == map[0].length - 1) {
                // 벽인 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getDownDoor() == 0) {
                // 문이 없는 경우
                qq.setText("못간다~~");
            } else if (map[posX][posY].getDownDoor() == 2) {
                // 빨간 문 경우
                if (hasOneKey == true) {
                    posY++;
                } else {
                    qq.setText("1번 키가 필요합니다.");
                }
            } else if (map[posX][posY].getDownDoor() == 3) {
                // 파란 문 경우
                if (hasTwoKey == true) {
                    posY++;
                } else {
                    qq.setText("2번 키가 필요합니다.");
                }
            } else {
                posY++;
            }
        }
     
        public boolean isHasTwoKey() {
            return hasTwoKey;
        }
     
        public void setHasTwoKey(boolean hasTwoKey) {
            this.hasTwoKey = hasTwoKey;
        }
     
        public boolean isHasOneKey() {
            return hasOneKey;
        }
     
        public void setHasOneKey(boolean hasOneKey) {
            this.hasOneKey = hasOneKey;
        }
     
        public int getPosX() {
            return posX;
        }
     
        public void setPosX(int posX) {
            this.posX = posX;
        }
     
        public int getPosY() {
            return posY;
        }
     
        public void setPosY(int posY) {
            this.posY = posY;
        }
     
     
    cs

    room

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    package com.example.administrator.maze;
     
    import android.widget.EditText;
    import android.widget.TextView;
     
    import java.util.Random;
    import java.util.Scanner;
     
    public class Room {
        private int upDoor; // 0 문이 없다 1 문이 있다 2 빨간문 3 파란문
        private int leftDoor;
        private int downDoor;
        private int rightDoor;
        private int eventType; // 0  없음, 1 게임클리어, 2 영어문제 풀고 1번키 획득, 3 2번키 획득
     
        public Room(int upDoor, int leftDoor, int downDoor, int rightDoor, int eventType) {
            this.upDoor = upDoor;
            this.leftDoor = leftDoor;
            this.downDoor = downDoor;
            this.rightDoor = rightDoor;
            this.eventType = eventType;
        }
        String[] questionArr;
        int[] answerArr;
        int ranIdx;
     
        public boolean quiz(TextView qq,TextView item) {
            questionArr = new String[5];
            questionArr[0= "1+1";
            questionArr[1= "2+1";
            questionArr[2= "3+3";
            questionArr[3= "4+5";
            questionArr[4= "5+10";
     
            answerArr = new int[questionArr.length];
            answerArr[0= 2;
            answerArr[1= 3;
            answerArr[2= 6;
            answerArr[3= 9;
            answerArr[4= 15;
     
            Random rd = new Random();
            Scanner scan = new Scanner(System.in);
     
            ranIdx = rd.nextInt(questionArr.length);
            qq.setText(questionArr[ranIdx]);
            int input = Integer.parseInt(scan.nextLine());
     
            if(answerArr[ranIdx] == input) {
                qq.setText("정답입니다");
                item.setText("1번 키를 획득하였습니다");
                return true;
            }else {
                qq.setText("오답입니다");
                return false;
            }
        }
     
     
     
        public int getEventType() {
            return eventType;
        }
     
     
     
        public void setEventType(int eventType) {
            this.eventType = eventType;
        }
     
     
     
        public int getUpDoor() {
            return upDoor;
        }
     
        public void setUpDoor(int upDoor) {
            this.upDoor = upDoor;
        }
     
        public int getLeftDoor() {
            return leftDoor;
        }
     
        public void setLeftDoor(int leftDoor) {
            this.leftDoor = leftDoor;
        }
     
        public int getDownDoor() {
            return downDoor;
        }
     
        public void setDownDoor(int downDoor) {
            this.downDoor = downDoor;
        }
     
        public int getRightDoor() {
            return rightDoor;
        }
     
        public void setRightDoor(int rightDoor) {
            this.rightDoor = rightDoor;
        }
     
     
     
    }
     
     
    cs


    xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    <?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">
     
        <TextView
            android:id="@+id/txt1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="130dp"
            android:background="#00ff00"
            android:text="Hello World!"
            android:textSize="25dp" />
     
        <Button
            android:id="@+id/buttonUp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/buttonDown"
            android:layout_alignLeft="@id/buttonDown"
            android:text="up"
            android:textColor="#ff0000"
            android:textSize="25dp"
            />
     
        <Button
            android:id="@+id/buttonLeft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@id/buttonDown"
            android:text="Le"
            android:textColor="#ff0000"
            android:textSize="25dp" />
     
        <Button
            android:id="@+id/buttonRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:text="Ri"
            android:textColor="#ff0000"
            android:textSize="25dp"
            tools:layout_editor_absoluteX="294dp"
            tools:layout_editor_absoluteY="447dp" />
     
     
        <Button
            android:id="@+id/buttonDown"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@id/buttonRight"
            android:text="Do"
            android:textColor="#ff0000"
            android:textSize="25dp" />
     
        <TextView
            android:id="@+id/qq"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="77dp"
            android:text="TextView"
            android:textColor="#0000ff"
            android:textSize="25dp" />
     
        <TextView
            android:id="@+id/info"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:background="#0000ff"
            android:text="TextView"
            android:textColor="#ffffff"
            android:textSize="25dp" />
     
        <TextView
            android:id="@+id/item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25dp"
            android:layout_alignParentEnd="true"
            android:layout_alignParentTop="true"
            android:text="TextView" />
     
        <Button
            android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="202dp"
            android:text="입력"
            android:textColor="#ff0000"
            android:textSize="25dp" />
     
        <EditText
            android:id="@+id/edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="179dp"
            android:textSize="25dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="Name" />
     
    </RelativeLayout>
    cs


    키획득 텍스트 사이즈 조절


    반응형

    'program_language 및 궁금한것 > Android Studio' 카테고리의 다른 글

    setVisibility //// visible, invisible  (0) 2018.04.12
    안드로이드 숙제  (0) 2018.04.10
    이전수업에 했던것  (0) 2018.04.05
    버튼에 설정넣기.  (0) 2018.04.05
    안드로이드 기본틀  (0) 2018.04.05

    댓글

Designed by Tistory.