romworld

Python11 - (Android), 숫자 더해서 출력, 배수합, 야구게임 본문

Python

Python11 - (Android), 숫자 더해서 출력, 배수합, 야구게임

inderrom 2022. 12. 29. 17:21

버튼 이벤트

 

숫자 더해서 출력하기

<AndroidManifest.xml>

 

 

<activity_main9.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:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="25dp"
        tools:layout_editor_absoluteY="1dp">

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

            <EditText
                android:id="@+id/et1"
                android:layout_width="70dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />

            <TextView
                android:id="@+id/tv"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="+" />
            <EditText
                android:id="@+id/et2"
                android:layout_width="70dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />

            <Button
                android:id="@+id/btn"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="=" />

            <EditText
                android:id="@+id/e31"
                android:layout_width="70dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<MainActivity9.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 MainActivity9 extends AppCompatActivity {
    EditText et1;
    EditText et2;
    EditText et3;

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

        et1 = findViewById(R.id.et1);
        et2 = findViewById(R.id.et2);
        et3 = findViewById(R.id.et3);
        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view -> {
            myclick();
        });

    }
    
    private void myclick() {
        int a = Integer.parseInt(et1.getText().toString());
        int b = Integer.parseInt(et2.getText().toString());

        et3.setText(plus(a,b)+"");
    }

    private int plus(int a, int b) {
      return a+b;
    };
}

 

 


배수합

<AndroidManifest.xml>

 

<activity_maina.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:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="-14dp"
        tools:layout_editor_absoluteY="-23dp">

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

            <EditText
                android:id="@+id/et1"
                android:layout_width="50dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />

            <TextView
                android:id="@+id/tv1"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="에서" />

            <EditText
                android:id="@+id/et2"
                android:layout_width="50dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />

            <TextView
                android:id="@+id/tv2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="까지" />

            <EditText
                android:id="@+id/et3"
                android:layout_width="50dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />

            <Button
                android:id="@+id/btn"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="배수합" />

            <EditText
                android:id="@+id/et4"
                android:layout_width="50dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<MainActivitya.java>

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

package kr.co.aiai.app;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivitya extends AppCompatActivity {
    EditText et1;
    EditText et2;
    EditText et3;
    EditText et4;

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

        et1 = findViewById(R.id.et1);
        et2 = findViewById(R.id.et2);
        et3 = findViewById(R.id.et3);
        et4 = findViewById(R.id.et4);
        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view -> {
            myclick();
        });
    }
    
    private void myclick() {
    int a = Integer.parseInt(et1.getText().toString());
    int b = Integer.parseInt(et2.getText().toString());
    int c = Integer.parseInt(et3.getText().toString());

    int res = 0;
    for(int i = a; i <=b; i++){
        if(i % c == 0){
            res += i;
        }
     
    }
       et4.setText(res+"");
    }

}

 

 

 

결과

 

 


야구게임

<AndroidManifest.xml>

 

<activity_mainb.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/tv1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="스트라이크" />

            <EditText
                android:id="@+id/et"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:inputType="number" />

        </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="fill_parent"
            android:text="__" />

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

<MainActivityb>

1.첫번째 방법

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 android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Arrays;

public class MainActivityb extends AppCompatActivity {
    EditText et;
    TextView tvDisp;
    int[] com;
    String old_res = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainb);

        et = findViewById(R.id.et);
        tvDisp = findViewById(R.id.tvDisp);
        Button btn = findViewById(R.id.btn);

        com = new int[] {1,2,3,4,5,6,7,8,9};

        for(int i =1; i<=100; i++){
            int rnd = (int)(Math.random()*9);
            int a = com[0];
            int b = com[rnd];

            com[0] = b;
            com[rnd] = a;
        }
        int[] arr = new int[3];
        arr[0] = com[0];
        arr[1] = com[1];
        arr[2] = com[2];

        Log.d("com/random", Arrays.toString(arr));





        btn.setOnClickListener(view -> {myclick();});



    }

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

        int[] me = new int[3];

        me[0] = Integer.parseInt(a.substring(0,1));
        me[1] = Integer.parseInt(a.substring(1,2));
        me[2] = Integer.parseInt(a.substring(2,3));

        int strike = 0;
        int ball = 0;
        for(int i = 0; i <=2; i++){
            for(int j =0; j<=2; j++){
                if(com[i] == me[j]){
                    if(i == j){
                        strike++;
                    }else{
                        ball++;
                    }
                }
            }
        }

        Log.d("ball", ball+"");
        Log.d("strike", strike+"");

        if(strike ==3) Toast.makeText(this.getApplicationContext(),"정답입니다!",Toast.LENGTH_SHORT).show();

        String new_res = a +" strike : " + strike + " ball : " + ball;
        tvDisp.setText(new_res+old_res);
        old_res += "\n" + a +" strike : " + strike + " ball : " + ball;
        et.setText("");


    }
}

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 android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Arrays;

public class MainActivityb extends AppCompatActivity {
    EditText et;
    TextView tvDisp;
    String com= "123";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainb);

        et = findViewById(R.id.et);
        tvDisp = findViewById(R.id.tvDisp);
        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view -> {myclick();});

        randomCom();
    }
    private  void randomCom(){
        String[] arr = {"1","2","3","4","5","6","7","8","9"};

        for(int i = 0; i <100; i++){
            int rnd = (int)(Math.random()*arr.length);
            String a = arr[1];
            String b = arr[rnd];
            arr[rnd]= a;
            arr[1]= b;
        }
        com = arr[0] + arr[1] + arr[2];
        Log.d("romrom",com);



    }

    private void myclick() {
        String mine = et.getText().toString();
        int s = getStricke(com,mine);
        int b = getBall(com,mine);

        String str_od = tvDisp.getText().toString();
        String str_new = mine + " " + s+"S"+b+"B"+"\n";
        tvDisp.setText(str_od+str_new);
        et.setText("");

        if(s ==3){

            Toast.makeText(this.getApplicationContext(),"you wind \n"+mine,Toast.LENGTH_SHORT).show();

        }

        Log.d("romrom",s+"");
        Log.d("romrom",b+"");
    }

    private int getBall(String com, String mine){
        int ret = 0;
        String c1 = com.substring(0,1);
        String c2 = com.substring(1,2);
        String c3 = com.substring(2,3);

        String m1 = mine.substring(0,1);
        String m2 = mine.substring(1,2);
        String m3 = mine.substring(2,3);

        if(c1.equals(m2) || c1.equals(m3)) ret++;
        if(c2.equals(m1) || c2.equals(m3)) ret++;
        if(c3.equals(m1) || c3.equals(m2)) ret++;

        return ret;
    }
    private int getStricke(String com,String mine){
        int ret = 0;
        String c1 = com.substring(0,1);
        String c2 = com.substring(1,2);
        String c3 = com.substring(2,3);

        String m1 = mine.substring(0,1);
        String m2 = mine.substring(1,2);
        String m3 = mine.substring(2,3);

        if(c1.equals(m1)) ret++;
        if(c2.equals(m2)) ret++;
        if(c3.equals(m3)) ret++;
        return ret;

    }

}
Comments