romworld

Python 09 - (Android)로또게임, 가위바위보, 별찍기 본문

Python

Python 09 - (Android)로또게임, 가위바위보, 별찍기

inderrom 2022. 12. 28. 17:48

로또게임

<AndoroidManifest.xml>

 

<activity_main5.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv1"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
               android:textSize="30dp"
                android:text="__" />

            <TextView
                android:id="@+id/tv2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />

            <TextView
                android:id="@+id/tv3"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />

            <TextView
                android:id="@+id/tv4"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />

            <TextView
                android:id="@+id/tv5"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />

            <TextView
                android:id="@+id/tv6"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
              android:textSize="30dp"
                android:text="__" />

        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="출력하기" />


    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<MainActiviry5.java>

1.첫번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;

public class MainActivity5 extends AppCompatActivity {
    private TextView tv1;
    private TextView tv2;
    private TextView tv3;
    private TextView tv4;
    private TextView tv5;
    private TextView tv6;

    List<TextView> tvList = new ArrayList<>();

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

      tv1 = findViewById(R.id.tv1);
      tv2 = findViewById(R.id.tv2);
      tv3 = findViewById(R.id.tv3);
      tv4 = findViewById(R.id.tv4);
      tv5 = findViewById(R.id.tv5);
      tv6 = findViewById(R.id.tv6);
      Button btn = findViewById(R.id.btn);

      tvList.add(tv1);
      tvList.add(tv2);
      tvList.add(tv3);
      tvList.add(tv4);
      tvList.add(tv5);
      tvList.add(tv6);

      btn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              myLotto();

          }
      });
    }

    private void myLotto() {

        Random rnd = new Random();
        int[] lotto = new int[6];

        for(int i = 0; i <  lotto.length; i++){
            lotto[i] = rnd.nextInt(45) + 1;
            for (int j = 0; i < i; j++){
                if(lotto[i] == lotto[j]){
                    i--;
                    break;
                }
            }
        }

        for(int i = 0; i < lotto.length-1; i++){
            for(int j = i +1; j < lotto.length; j++){
                if(lotto[i]> lotto[j]){
                    int temp = lotto[i];
                    lotto[i] = lotto[j];
                    lotto[j] = temp;
                }
            }
        }

        for(int i = 0; i < tvList.size(); i++){
            tvList.get(i).setText(lotto[i] + "");
        }
    }
}

2.두번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;

public class MainActivity5 extends AppCompatActivity {
    private TextView tv1;
    private TextView tv2;
    private TextView tv3;
    private TextView tv4;
    private TextView tv5;
    private TextView tv6;

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

      tv1 = findViewById(R.id.tv1);
      tv2 = findViewById(R.id.tv2);
      tv3 = findViewById(R.id.tv3);
      tv4 = findViewById(R.id.tv4);
      tv5 = findViewById(R.id.tv5);
      tv6 = findViewById(R.id.tv6);
      Button btn = findViewById(R.id.btn);


      btn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              myLotto();

          }
      });
    }

    private void myLotto() {
        int[] arr = {
           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
        };

        for(int i = 0; i<1000; i++){
            int rnd = (int)(Math.random()*arr.length);
            int a = arr[rnd];
            int b = arr[0];
            arr[0] = a;
            arr[rnd] = b;
        }
        Log.d("rom",arr[0]+"");
        Log.d("rom",arr[1]+"");
        Log.d("rom",arr[2]+"");
        Log.d("rom",arr[3]+"");
        Log.d("rom",arr[4]+"");
        Log.d("rom",arr[5]+"");

      tv1.setText(arr[0]+"");
      tv2.setText(arr[1]+"");
      tv3.setText(arr[2]+"");
      tv4.setText(arr[3]+"");
      tv5.setText(arr[4]+"");
      tv6.setText(arr[5]+"");


    }
}

 

결과


가위바위보

<AndroidManifest.xml>

 

<activiry_main6.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvMine"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:text="나:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/et_mine"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvCom"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:text="컴:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/et_com"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvResult"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="결과:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/et_result"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="출력하기" />


    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

<MainActivity6.java>

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity6 extends AppCompatActivity {
    EditText et_mine;
    EditText et_com;
    EditText et_result;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);

       et_mine = findViewById(R.id.et_mine);
       et_com = findViewById(R.id.et_com);
       et_result = findViewById(R.id.et_result);
       Button btn = findViewById(R.id.btn);
       btn.setOnClickListener(view -> {
           myclick();
       });
    }

    private void myclick() {
        String mine = et_mine.getText().toString();
        String com="";
        String result = "";
        double rnd = Math.random();

        if(rnd > 0.66){
            com ="가위";
        }else if(rnd > 0.33){
            com = "바위";
        }else{
            com = "보";
        }
        if(com.equals("가위")&& mine.equals("가위")) result = "비김";
        if(com.equals("바위")&& mine.equals("가위")) result = "짐";
        if(com.equals("보")&& mine.equals("가위")) result = " 이김";

        if(com.equals("가위")&& mine.equals("바위")) result = "이김";
        if(com.equals("바위")&& mine.equals("바위")) result = "비김";
        if(com.equals("보")&& mine.equals("바위")) result = " 짐";

        if(com.equals("가위")&& mine.equals("보")) result = "짐";
        if(com.equals("바위")&& mine.equals("보")) result = "이김";
        if(com.equals("보")&& mine.equals("보")) result = "비김";

        et_com.setText(com);
        et_result.setText(result);
    }
}

 

 

결과

 


별찍기

<AndroidManifest.xml>

<activity_main7.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvFirst"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:text="첫번째별수:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etFirst"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvLast"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:text="마지막별수:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etLast"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>


        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="출력하기" />

        <TextView
            android:id="@+id/tvDisp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="__" />


    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

<MainActiviry7.java>

1.첫번째 방법 (내가 푼 방법)

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity7 extends AppCompatActivity {
       EditText etFirst;
       EditText etLast;
       TextView tvDisp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);


        etFirst = findViewById(R.id.etFirst);
        etLast = findViewById(R.id.etLast);
        tvDisp = findViewById(R.id.tvDisp);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(view ->{
            myclick();
        } );
    }

    private void myclick() {
        String a = etFirst.getText().toString();
        int aa = Integer.parseInt(a);

        String b = etLast.getText().toString();
        int bb = Integer.parseInt(b);

        String str="";
        int count = aa;

        for(int i = 1; i <= bb-aa+1; i++){
            for(int j = 1; j <= count; j++){
                str += "*";
            }
            count++;
            str += "\n";
        }
        tvDisp.setText(str);
    }
}

1. for문을 돌릴 때 첫번째 for문 bb-aa +1 는 최대값 - 최솟값 +1 이다 그러면 별의 행의 수가 나온다.

2. 두번째 for문에서 변수 count는 aa를 담았다. 첫번째 별수는 입력하는 것에 따라 바뀌기 때문에 변수에 담아서

    for문을 돌려줘야 한다.

 

 

2.두번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity7 extends AppCompatActivity {
       EditText etFirst;
       EditText etLast;
       TextView tvDisp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);


        etFirst = findViewById(R.id.etFirst);
        etLast = findViewById(R.id.etLast);
        tvDisp = findViewById(R.id.tvDisp);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(view ->{
            myclick();
        } );
    }

    public  String strStar(int cnt){
        String ret = "";
        for(int i =0; i<cnt; i++){
            ret += "*";
        }
        ret += "\n";
        return ret;
    }

    private void myclick() {

        String a = etFirst.getText().toString();
        String b = etLast.getText().toString();

        int aa = Integer.parseInt(a);
        int bb = Integer.parseInt(b);

        String txt ="";
        for(int i=aa; i<=bb;i++){
            txt += strStar(i);
        }
       tvDisp.setText(txt);
    }
}

*을 출력하는 부분을 메서드로 만들어서 실행한다~

 

결과

 

Comments