볼링게임 점수판 만들라는데 스트라이크 계산이 제대로 안돼.
머리 터질거 같아..도와주세요 형누나삼촌이모들...
public class Bowling_game {
static int result[] = new int[22];
static int score[] = new int[30];
static int[] score_input() {
Scanner scan = new Scanner(System.in);
System.out.printf("총 10회차 볼링 점수판을 입력하시오.(공백구분)");
for(int i=0 ; i<20 ; i++) {
result[i] = scan.nextInt();
if(result[i]==10) { //스트라이크시 해당 회차 두번째 점수판 건너뛰기
i++;
continue;
}
if((result[i] < 0 && result[i] > 10) || (i%2==1 && result[i]+result[i-1] > 10)) {
System.out.printf("input error! 점수범위(1~10점)\n처음부터 다시 입력하세요.");
i=0;
continue; //잘못된 점수 입력 감지 처음부터 다시
}
}
if(result[18]==10) {
System.out.printf("10회차 스트라이크 성공입니다. 보너스 점수(2회)를 입력하세요.");
result[20] = scan.nextInt();
result[21] = scan.nextInt();
}
else if(result[18]+result[19]==10) {
System.out.printf("10회차 스페어 성공하셨습니다. 보너스 점수(1회)를 입력하세요.");
result[20] = scan.nextInt();
}
scan.close();
return result;
}
static int[] sum(int result[]) {
for(int i=0 ; i<20 ; i++) {
if(i%2 == 0) {
if(result[i] == 10) score[i] = result[i] + result[i+2] + result[i+3]; //strike
else score[i] = result[i] + result[i+1]; //normal
if(result[i] + result[i+1] == 10) //스페어
score[i] = result[i] + result[i+1] + result[i+2];
if(result[i] == 10 && result[i+2] == 10) //2연 스트라이크
score[i] = result[i] + result[i+2] + result[i+4];
}
}
return score;
}
public static void main(String[] args) {
result = score_input();
score = sum(result);
for(int i=0 ; i<22 ; i++) {
System.out.printf("%2d ", result[i]);
} //잘 입력됐나 확인용 코드
System.out.printf("\n");
for(int i=0 ; i<20 ; i++) {
if(i%2==0)
System.out.printf("%4d ", score[i]);
}
}
}
재밋는거 만드네
볼링 룰을 몰?루ㅇㅅㅇ
이클립스 쓰면 디버그 한번 돌려봐 for문 같은데서 제대로 값 들어가고 있는지 line쪽 더블클릭하고
우클릭 - Debug as - java application 해보면 어디서 잘못하고 있는지 바로 나올텐디 ㅋㅋ
한번 봐볼게 위에 말은 머 확인하는건지 잘 모르겠지만
근데 이거 똑같이 실행만 되는데 어떻게 확인하는거야
소스코드 각 줄마다 앞에 line 번호 있잖음 그거 더블클릭하면 파란색 동글뱅이 생김 그게 실행하다가 거기서 멈추겠다고 breakpoint 설정해주는거임 그거 설정하고 디버그 돌리면 잘 돌다가 거기서 멈춤, 멈춘대서부터 F6키로 한칸씩 실행하는거임 변수에 마우스 갔다대면 변수에 뭐 들어가있는지 보임 ㅇㅇ
자세한 설명 고마워!