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;
}
}