No older revisions available
No older revisions available
Dealer ¶
~cpp
public class Dealer {
public int[]ball = new int[3];
public int count= 0;
public int creatBall() {
// TODO 자동 생성된 메소드 스텁
return (int) (Math.random()*1000);
}
public int getBall(int i) {
// TODO 자동 생성된 메소드 스텁
return ball[i-1];
}
public void setBall(int number) {
// TODO 자동 생성된 메소드 스텁
for(int i = 1 ; i < 101 ; i*=10){
ball[count++]= ((int)number/(100/i));
number%= (100/i);
}
}
}
Judgement ¶
~cpp
public class Judgement {
public int dBall[]= new int[3];
public int pBall[]= new int[3];
private int strike=0;
private int ball= 0;
private boolean win= true;
public Judgement(int[] dealer, int[] player) {
// TODO 자동 생성된 생성자 스텁
dBall= dealer;
pBall= player;
for(int i = 0; i < 3; i++){
for(int j= 0; j<3 ; j++){
if(dBall[i] == pBall[j] && i == j ) strike++;
if(dBall[i] == pBall[j] && i != j ) ball++;
}
}
if( strike == 3) win= false;
}
public int getStrikeConclusion() {
// TODO 자동 생성된 메소드 스텁
return strike;
}
public int getBallConclusion() {
// TODO 자동 생성된 메소드 스텁
return ball;
}
public boolean getConclusion() {
// TODO 자동 생성된 메소드 스텁
return win;
}
}
mainBaseball ¶
~cpp
import javax.swing.JOptionPane;
public class mainBaseball {
public static void main(String[] args) {
Dealer dealer= new Dealer();
dealer.setBall(dealer.creatBall());
boolean judge= true;
do{
Player player= new Player();
String input= JOptionPane.showInputDialog(null, "숫자입력");
int number= Integer.parseInt(input);
player.setBall(number);
Judgement judgement= new Judgement(dealer.ball, player.ball);
JOptionPane.showMessageDialog(null, judgement.getStrikeConclusion() + " Strikes " + judgement.getBallConclusion() + " Balls ");
judge= judgement.getConclusion();
}while( judge );
JOptionPane.showMessageDialog(null, "you win");
}
}
Player ¶
~cpp
public class Player {
public String name;
public int count= 0;
public int ball[]=null;//={0,1,2,3,4};
public Player() {
ball= new int[3];
count=0;
}
public int getBall(int i) {
// TODO 자동 생성된 메소드 스텁
return ball[i-1];
}
public void setBall(int number) {
// TODO 자동 생성된 메소드 스텁
for(int i = 1 ; i < 101 ; i*=10){
ball[count++]= ((int)number/(100/i));
number%= (100/i);
}
}
}
testcode ¶
~cpp
import junit.framework.TestCase;
public class testBaseball extends TestCase {
// public void setUp(){
// }
public void testDealer(){
Dealer dealer= new Dealer();
dealer.setBall(123);
assertEquals(dealer.ball[0], dealer.getBall(1));
assertEquals(dealer.ball[1], dealer.getBall(2));
assertEquals(dealer.ball[2], dealer.getBall(3));
assertTrue(0 <= dealer.creatBall() && dealer.creatBall() < 1001);
}
public void testPlayer(){
Player player= new Player();
player.setBall(123);
assertEquals(player.ball[0], player.getBall(1));
assertEquals(player.ball[1], player.getBall(2));
assertEquals(player.ball[2], player.getBall(3));
}
public void testJudgement(){
Dealer dealer= new Dealer();
dealer.setBall(123);
Player player= new Player();
player.setBall(123);
Judgement judgement= new Judgement(dealer.ball, dealer.ball);
assertEquals(3, judgement.getStrikeConclusion());
assertEquals(0, judgement.getBallConclusion());
}
}
작성후기 ¶
- 테스트를 작성하며 느낀거지만 이건아니라는 생각이 자꾸만 드는 이유는 멀까요? ㅋㅋ 테스트를 이렇게 작성해도 돼는건지 모르겟네요... 프로그램도 좀 이상한거 같고... 괸히 삽질만 많이한거같은 생각이.... 흠 객체지향 개념을 다시한번 살펴봐야 겠다는 생각이 자꾸만 드네요... -장길-
- 객체지향 개념은 어느정도 된거 같은데?^^; 음... 디자인 패턴이라는 것을 보면 조금 생각이 바뀔지도... - 상욱