package com.sist.design;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class BaseBall extends Frame implements ActionListener{
int my[] = new int[3];//내가 입력한 3자리 숫자
int com[] = new int [3];//컴퓨터가 발생한 3자리 난수
Panel p1 = new Panel();
Panel p2 = new Panel();
TextArea ta = new TextArea();
TextField tf = new TextField();
Button newG = new Button("새게임");
Button dap = new Button("정답");
Button clear = new Button("지우기");
Button exit = new Button("종료");
public BaseBall(){
super("야구게임");
nansu();
p1.setLayout(new BorderLayout(0,10));
p1.add("Center", ta);
p1.add("South", tf);
newG.setBackground(Color.CYAN);
newG.setForeground(new Color(255,0,255));
newG.setFont(new Font("굴림",Font.BOLD, 20));
p2.setLayout(new GridLayout(4, 1, 0, 10));
p2.add(newG);
p2.add(dap);
p2.add(clear);
p2.add(exit);
setLayout(new BorderLayout(10, 0));
add("Center", p1);
add("East", p2);
setBounds(400, 250, 400, 300);
setVisible(true);
tf.requestFocus();//텍스트 필드에 커서 이동
ta.setEditable(false);//회색으로 변하고 커서 깜빡임
// ta.setEnabled(false);//회색으로 변하고 커서 이동안됨
tf.addActionListener(this);
newG.addActionListener(this);
clear.addActionListener(this);
dap.addActionListener(this);
exit.addActionListener(this);
}
public static void main(String agrs[]){
new BaseBall();
}
@Override
public void actionPerformed(ActionEvent e) {
Object ob = e.getSource();
if(ob == tf){
game();
}else if(ob == newG){
nansu();
clear();
}else if(ob == clear){
clear();
}else if(ob == dap){
ta.append("맞춰보자 다시 도전해라!! " + com[0] + com[1] + com[2]+ " 이거다");
}else if(ob == exit){
System.exit(0);
}
}
private void clear(){
ta.setText("");
tf.setText("");
tf.requestFocus();
}
private void game() {
String mystr = tf.getText().trim();//트림 공백제거
if(mystr.length() != 3 ){
ta.append("3자리 정수만 입력하세요\n");
tf.setText("");
return;
}
for(int i = 0; i<mystr.length();i++){
int su = mystr.charAt(i) - 48;// 0= 48 65 97
if(su < 0 || su > 9){
ta.append("숫자만 입력하세요\n");
tf.setText("");
return;
}
}
// my[0] = mystr.charAt(i) - 48;
// my[1] = mystr.charAt(i) - 48;
// my[2] = mystr.charAt(i) - 48;
int mysu = Integer.parseInt(mystr);
my[0] = mysu / 100;
my[1] = mysu % 100 /10;
my[2] = mysu % 10;
int strike= 0;
int ball = 0;
int cnt = 0;
for(int i = 0; i<my.length; i++){
for(int k=0; k<com.length; k++){
cnt = cnt + 1;
if(my[i] == com[k]){
if(i ==k){
strike++;
}else{
ball++;
}
}
}
}
if(strike == 3){
ta.append(mystr + "은 정답입니다!!!");
}else{
ta.append(cnt + " 번째" + mystr + " 은 " +strike + " 스트라이크 " + ball + " 입니다\n");
}
tf.setText("");
}
public void nansu(){
Random ra = new Random();
do{
com[0] = ra.nextInt(10);
com[1] = ra.nextInt(10);
}while(com[0] == 0|| com[0] == com[1]);
do{
com[2] = ra.nextInt(10);
}while(com[0] == com[2]|| com[1] == com[2]);
// System.out.println("난수발생"+ com[0] + com[1] + com[2]);
}
}
'개발 > java' 카테고리의 다른 글
이클립스 단축키모음 (0) | 2020.02.11 |
---|---|
자바 Error 예외 (0) | 2020.02.06 |