본문 바로가기

개발/java

야구게임 진행중

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