<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=TheJavaMan%2F%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC</id>
	<title>TheJavaMan/숫자야구 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=TheJavaMan%2F%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TheJavaMan/%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC&amp;action=history"/>
	<updated>2026-05-15T08:48:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=TheJavaMan/%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC&amp;diff=39634&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TheJavaMan/%EC%88%AB%EC%9E%90%EC%95%BC%EA%B5%AC&amp;diff=39634&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;여기까지 하고 끝내기로 했습니다.&lt;br /&gt;
----&lt;br /&gt;
=== 숫자야구란? ===&lt;br /&gt;
 1~9까지 겹치지 않는 숫자를 골라서 사용자가 맞추기&lt;br /&gt;
=== 할 일 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 세부사항&lt;br /&gt;
| 시간&lt;br /&gt;
| 장소&lt;br /&gt;
| 진행상황&lt;br /&gt;
|-&lt;br /&gt;
| 틀 만들기&lt;br /&gt;
| 1/13일 4시&lt;br /&gt;
| 7피&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 사용자 입력 받기 - 겹치지 않는 숫자&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 확인 버튼 누를 때 동작&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 확인 버튼 누를 때 리스트에서 결과 표시&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 리스트에 스크롤바 달기&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 자동으로 생김&lt;br /&gt;
|-&lt;br /&gt;
| 포기 버튼 누를 때 동작 - 답 알려주고, 새 게임 시작&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 크기 조절&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 입력 제대로 하지 않을때 처리하기&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
|-&lt;br /&gt;
| 스크롤 같이 내려가기&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|-&lt;br /&gt;
| 시작할 때 포커스를 텍스트필드에 맞추기&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| 끝냄&lt;br /&gt;
|}&lt;br /&gt;
+a&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 하이스코어 - 물어본 횟수가 적은 순으로&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
|-&lt;br /&gt;
| 3아웃까지 하기&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
|-&lt;br /&gt;
| 리팩토링&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
| .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 초기 코드 ===&lt;br /&gt;
뭔가 메인에 모두 몰아넣은 느낌이 드는 코드&lt;br /&gt;
 public class BBGameFrame extends Frame implements WindowListener{&lt;br /&gt;
 	static BBGameFrame f;&lt;br /&gt;
 	public BBGameFrame(String aStr){&lt;br /&gt;
 		super(aStr);&lt;br /&gt;
 		addWindowListener(this);&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		f = new BBGameFrame(&amp;quot;숫 자 야 구 게 임 !&amp;quot;);&lt;br /&gt;
 		f.setSize(400, 300);&lt;br /&gt;
 		&lt;br /&gt;
 		Panel up = new Panel();&lt;br /&gt;
 		List result = new List();&lt;br /&gt;
 		up.add(result);&lt;br /&gt;
 		f.add(up, &amp;quot;North&amp;quot;);&lt;br /&gt;
 		&lt;br /&gt;
 		Panel lp = new Panel();&lt;br /&gt;
 		TextField input = new TextField();&lt;br /&gt;
 		lp.add(input, &amp;quot;West&amp;quot;);&lt;br /&gt;
 		Button ok = new Button(&amp;quot;확인&amp;quot;);&lt;br /&gt;
 		lp.add(ok, &amp;quot;Center&amp;quot;);&lt;br /&gt;
 		Button submit = new Button(&amp;quot;포기&amp;quot;);&lt;br /&gt;
 		lp.add(submit); &lt;br /&gt;
 		f.add(lp, &amp;quot;South&amp;quot;);&lt;br /&gt;
 		&lt;br /&gt;
 		f.pack();&lt;br /&gt;
 		f.show();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public void windowClosing(WindowEvent e) {&lt;br /&gt;
 			dispose(); // 모든 자원을 반납한다.&lt;br /&gt;
 			System.exit(0); // Program을 종료한다.&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public void windowOpened(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 	public void windowIconified(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 	public void windowDeiconified(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 	public void windowClosed(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 	public void windowActivated(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 	public void windowDeactivated(WindowEvent e) { }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
=== 발전된 코드 ===&lt;br /&gt;
&lt;br /&gt;
BBGame.java&lt;br /&gt;
 import java.util.Random; &lt;br /&gt;
  &lt;br /&gt;
 /* &lt;br /&gt;
  * Created on 2004. 1. 17. &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated file go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
  &lt;br /&gt;
 /** &lt;br /&gt;
  * @author 125 &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated type comment go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
 public class BBGame { &lt;br /&gt;
    public static String correct_answer; &lt;br /&gt;
         public static void startGame(){&lt;br /&gt;
                 correct_answer = &amp;quot;&amp;quot;; &lt;br /&gt;
                 Random rmd = new Random(); &lt;br /&gt;
                 int temp[] = new int[3]; &lt;br /&gt;
                 while ( temp[0] == temp [1] | temp[1] == temp [2] | temp[2] == temp [0]) &lt;br /&gt;
                         for ( int i = 0 ; i &amp;amp;lt; 3 ; i++) &lt;br /&gt;
                                 temp[i] = rmd.nextInt(9); &lt;br /&gt;
                 for ( int i = 0 ; i &amp;amp;lt; 3 ; i++ ) &lt;br /&gt;
                         correct_answer += temp[i];&lt;br /&gt;
 		} &lt;br /&gt;
          &lt;br /&gt;
         public static String compare(String aStr){ &lt;br /&gt;
                 if ( correct_answer.compareTo(aStr) == 0) &lt;br /&gt;
                         return &amp;quot;아웃&amp;quot;; &lt;br /&gt;
                 int strike = 0, ball = 0; &lt;br /&gt;
                 for ( int i = 0 ; i &amp;amp;lt; 3 ; i++) &lt;br /&gt;
                         if ( correct_answer.charAt(i) == aStr.charAt(i)) &lt;br /&gt;
                                 strike++; &lt;br /&gt;
                         else &lt;br /&gt;
                                 for ( int j = 0 ; j &amp;amp;lt; 3 ; j++) &lt;br /&gt;
                                         if ( correct_answer.charAt(i) == aStr.charAt(j)) &lt;br /&gt;
                                                 ball++; &lt;br /&gt;
                 if ( strike == ball &amp;amp;amp; ball == 0) &lt;br /&gt;
                         return &amp;quot;찐따-_-&amp;quot;; &lt;br /&gt;
                 return strike + &amp;quot; 스트라이크, &amp;quot; &lt;br /&gt;
                                  + ball + &amp;quot;볼&amp;quot;; &lt;br /&gt;
         } &lt;br /&gt;
         public static void main(String[] args) { &lt;br /&gt;
                 startGame(); &lt;br /&gt;
                 BBGameFrame frame = new BBGameFrame(); &lt;br /&gt;
                 frame.show(); &lt;br /&gt;
                 frame.giveFocus();&lt;br /&gt;
         } &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
BBGameFrame.java&lt;br /&gt;
 import java.awt.Container; &lt;br /&gt;
 import java.awt.event.WindowAdapter; &lt;br /&gt;
 import java.awt.event.WindowEvent; &lt;br /&gt;
  &lt;br /&gt;
 import javax.swing.JFrame; &lt;br /&gt;
  &lt;br /&gt;
 /* &lt;br /&gt;
  * Created on 2004. 1. 17. &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated file go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
  &lt;br /&gt;
 /** &lt;br /&gt;
  * @author 125 &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated type comment go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
 public class BBGameFrame extends JFrame { &lt;br /&gt;
         public BBGameFrame(){  &lt;br /&gt;
                         this.setTitle(&amp;quot;숫 자 야 구 게 임&amp;quot;); &lt;br /&gt;
                         this.setSize(200, 200); &lt;br /&gt;
                         addWindowListener(new WindowAdapter(){ &lt;br /&gt;
                                 public void windowClosing(WindowEvent e){ &lt;br /&gt;
                                         System.exit(0); &lt;br /&gt;
                                 } &lt;br /&gt;
                         });  &lt;br /&gt;
          &lt;br /&gt;
                         /*Container upper = getContentPane(); &lt;br /&gt;
                          &lt;br /&gt;
                         upper.add(new UpperPanel(), &amp;quot;North&amp;quot;); &lt;br /&gt;
                          &lt;br /&gt;
                          &lt;br /&gt;
                         Container lower = getContentPane();  &lt;br /&gt;
                         lower.add(new LowerPanel(), &amp;quot;South&amp;quot;);*/ &lt;br /&gt;
                         Container cp = getContentPane();  &lt;br /&gt;
                         cp.add(new UpperPanel(), &amp;quot;Center&amp;quot;); &lt;br /&gt;
                         cp.add(new LowerPanel(), &amp;quot;South&amp;quot;);&lt;br /&gt;
         } &lt;br /&gt;
         public void giveFocus(){&lt;br /&gt;
 			LowerPanel.input.requestFocus();&lt;br /&gt;
         }&lt;br /&gt;
         public static void main(String[] args) { &lt;br /&gt;
         } &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
UpperPanel.java&lt;br /&gt;
 import java.awt.BorderLayout; &lt;br /&gt;
 import java.awt.List; &lt;br /&gt;
 import java.awt.Panel; &lt;br /&gt;
  &lt;br /&gt;
 /* &lt;br /&gt;
  * Created on 2004. 1. 17. &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated file go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
  &lt;br /&gt;
 /** &lt;br /&gt;
  * @author 125 &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated type comment go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
 public class UpperPanel extends Panel { &lt;br /&gt;
 	private static int tail = 0;&lt;br /&gt;
     private static List result; &lt;br /&gt;
         public UpperPanel(){ &lt;br /&gt;
                 result = new List(); &lt;br /&gt;
                 result.setSize(400,200);&lt;br /&gt;
 		        this.setLayout(new BorderLayout()); &lt;br /&gt;
                 this.add(result, &amp;quot;Center&amp;quot;); &lt;br /&gt;
 		} &lt;br /&gt;
         public static void addResult(String aStr){ &lt;br /&gt;
                 result.add(aStr);&lt;br /&gt;
                 result.select(tail);&lt;br /&gt;
                 tail++;&lt;br /&gt;
 		} &lt;br /&gt;
         public static void main(String []args) { &lt;br /&gt;
         } &lt;br /&gt;
         public static void restart() { &lt;br /&gt;
                 result.clear();  &lt;br /&gt;
         } &lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
LowerPanel.java&lt;br /&gt;
 import java.awt.Button; &lt;br /&gt;
 import java.awt.Panel; &lt;br /&gt;
 import java.awt.TextField; &lt;br /&gt;
 import java.awt.event.ActionEvent; &lt;br /&gt;
 import java.awt.event.ActionListener; &lt;br /&gt;
 import java.awt.event.KeyEvent; &lt;br /&gt;
 import java.awt.event.KeyListener; &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
 /* &lt;br /&gt;
  * Created on 2004. 1. 17. &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated file go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
  &lt;br /&gt;
 /** &lt;br /&gt;
  * @author 125 &lt;br /&gt;
  * &lt;br /&gt;
  * To change the template for this generated type comment go to &lt;br /&gt;
  * Window - Preferences - Java - Code Generation - Code and Comments &lt;br /&gt;
  */ &lt;br /&gt;
 public class LowerPanel extends Panel implements ActionListener, KeyListener{ &lt;br /&gt;
         public static TextField input; &lt;br /&gt;
         private static Button ok; &lt;br /&gt;
         private static Button submit; &lt;br /&gt;
          &lt;br /&gt;
         public LowerPanel(){ &lt;br /&gt;
                 input = new TextField(3); &lt;br /&gt;
                 this.add(input, &amp;quot;West&amp;quot;);  &lt;br /&gt;
                 input.addActionListener(new ActionListener() { &lt;br /&gt;
                         public void actionPerformed(ActionEvent arg0) &lt;br /&gt;
                         {processOK();} &lt;br /&gt;
                 }); &lt;br /&gt;
 				ok = new Button(&amp;quot;확인&amp;quot;);  &lt;br /&gt;
                 this.add(ok, &amp;quot;Center&amp;quot;); &lt;br /&gt;
                 ok.addActionListener(this); &lt;br /&gt;
                 ok.addKeyListener(this); &lt;br /&gt;
                 submit = new Button(&amp;quot;포기&amp;quot;);  &lt;br /&gt;
                 this.add(submit, &amp;quot;East&amp;quot;); &lt;br /&gt;
                 submit.addActionListener(this);&lt;br /&gt;
 				input.requestFocus();&lt;br /&gt;
 		} &lt;br /&gt;
          &lt;br /&gt;
         public void actionPerformed(ActionEvent e){ &lt;br /&gt;
                 processEvent(e.getSource());     &lt;br /&gt;
         } &lt;br /&gt;
         private static boolean isCorrect(String aStr) { &lt;br /&gt;
                 if ( aStr.length() != 3) &lt;br /&gt;
                         return false; &lt;br /&gt;
                 return true; &lt;br /&gt;
         } &lt;br /&gt;
         public static void main(String[] args) { &lt;br /&gt;
         } &lt;br /&gt;
  &lt;br /&gt;
         public void keyPressed(KeyEvent e) { &lt;br /&gt;
                 processEvent(e.getSource()); &lt;br /&gt;
         } &lt;br /&gt;
         public static void processEvent(Object aSource){  &lt;br /&gt;
                 if ( aSource == ok) &lt;br /&gt;
                         processOK(); &lt;br /&gt;
                 else if ( aSource == submit) &lt;br /&gt;
                         processSubmit(); &lt;br /&gt;
                 input.selectAll(); &lt;br /&gt;
                 input.requestFocus(); &lt;br /&gt;
         } &lt;br /&gt;
  &lt;br /&gt;
         private static void processSubmit() { &lt;br /&gt;
                 UpperPanel.restart(); &lt;br /&gt;
                 UpperPanel.addResult(&amp;quot;이전 게임 답 : &amp;quot; + BBGame.correct_answer); &lt;br /&gt;
                 UpperPanel.addResult(&amp;quot;다시-_-&amp;quot;); &lt;br /&gt;
                 BBGame.startGame(); &lt;br /&gt;
         } &lt;br /&gt;
  &lt;br /&gt;
         public static void processOK(){ &lt;br /&gt;
                 String newResult = null; &lt;br /&gt;
                 if (!isCorrect(input.getText())) &lt;br /&gt;
                         return; &lt;br /&gt;
                 newResult = input.getText() + &amp;quot; -&amp;amp;gt; &amp;quot; + BBGame.compare(input.getText());  &lt;br /&gt;
                 UpperPanel.addResult(newResult); &lt;br /&gt;
         } &lt;br /&gt;
         /* (non-Javadoc) &lt;br /&gt;
          * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent) &lt;br /&gt;
          */ &lt;br /&gt;
         public void keyReleased(KeyEvent arg0) { &lt;br /&gt;
                 // TODO Auto-generated method stub &lt;br /&gt;
                  &lt;br /&gt;
         } &lt;br /&gt;
  &lt;br /&gt;
         /* (non-Javadoc) &lt;br /&gt;
          * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent) &lt;br /&gt;
          */ &lt;br /&gt;
         public void keyTyped(KeyEvent arg0) { &lt;br /&gt;
                 // TODO Auto-generated method stub &lt;br /&gt;
                  &lt;br /&gt;
         } &lt;br /&gt;
  &lt;br /&gt;
 } &lt;br /&gt;
----&lt;br /&gt;
[[TheJavaMan]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>