점수계산이 이전데이터를 저장이 안되네요.
VanilLa
제 코딩한것이 약간 문제있습니다. 배열함수를 써서 이전데이터를 보관하려했는데. 오류가 걸리고있고
이전데이터와 합산을 하려고해도 안되고있어서..그냥 배열함수 빼고 일반으로 했는데.. 쉽지가 않습니다.
제 코딩을보자면 점선친곳만 봐주시면 될듯합니다. 점수가 이전데이터를 기억을 못하다보니. .답답하네요.
점수는 연속적으로 이겨야만 올라가네요. 이전에 이겨서 점수가 있는게 다 사라집니다. 그거와 합산을 하고싶습니다만.
쉽지가 않습니다.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
public class Zero implements Runnable {
public void userPlay() throws IOException {
FileWriter fw = new FileWriter(test.txt);
BufferedWriter bw = new BufferedWriter(fw);
boolean flag = true;
int count =0;
Scanner in = new Scanner(System.in);
int score=0;
while(flag){
count++;
System.out.print(몇 개 말하겠습니까? 제로(0), 하나(1), 둘(2),3번 게임종료);
int num = in.nextInt();
if(num 3){
System.out.print(숫자가 너무 큽니다. 다시!! 제로(0), 하나(1), 둘(2),3번 게임종료);
num = in.nextInt();
}
System.out.print(유저 : );
switch(num){
case 0: System.out.println(제로!!); break;
case 1: System.out.println(하나!!); break;
case 2: System.out.println(둘!!); break;
case 3 : System.out.println(당신이 최종 점수는 +score);
System.out.println(이름을말하세요:);
Scanner in1 = new Scanner(System.in);
String name ;
name = in1.nextLine();
String base = 순위 이름 점수 ;
bw.write(base);
bw.newLine();
bw.flush();
for(int i=1;i2;i++){
String total1 = i+ +name+ +score;
System.out.println(i+ +name+ +score);
bw.write(total1);
bw.newLine();
bw.flush();
}
bw.close();
System.exit(0);
}
int userFingers = userAction();
int computerFingers = computerAction();
flag = judge(유저, num, userFingers, computerFingers,count);
score= ScoreUpdate(유저,num,userFingers,computerFingers,count);
}
computerPlay();
}
public int userAction() throws IOException{
Scanner in = new Scanner(System.in);
System.out.print(손가락을 몇 개 드시겠습니까? 안든다(0), 한개(1), 두개(2));
int userFingers = in.nextInt();
if(userFingers 2){
System.out.print(손가락을 너무 많이 드셨습니다. 다시!! 안든다(0), 한개(1), 두개(2));
userFingers = in.nextInt();
}
return userFingers;
}
========================================================================================================
public int ScoreUpdate(String str,int num,int userFingers,int computerFingers,int count){
&n
int sum = userFingers+computerFingers;
int total =0 ;
int score=0;
if(num==sum){
if(str==유저){
for(int i=0;icount;i++){
total=10;
score+=total;
} System.out.println(str+점수+score);
}else {
for(int i=0;icount;i++){
total=10;
score+=total;
}
System.out.println(str+점수+score);
}
}
return score;
}
================================================================================================================
public int computerAction(){
Random random = new Random();
int computerFingers = random.nextInt(3);
return computerFingers;
}
public boolean judge(String str, int num, int userFingers, int computerFingers,int count){
int sum = userFingers + computerFingers;
System.out.println(외친 수 : + num);
System.out.println(유저 손가락 개수 : + userFingers + 개);
System.out.println(컴퓨터 손가락 개수 : + computerFingers + 개);
if(num == sum){
System.out.println(str + 승리!!);
System.out.println(사용한횟수+count);
return true;
}else{
System.out.println(비겼습니다. 턴을 넘깁니다.);
return false;
}
}
public void computerPlay() throws IOException{
FileWriter fw = new FileWriter(test.txt);
BufferedWriter bw = new BufferedWriter(fw);
boolean flag = true;
Random number = new Random();
int num = number.nextInt(3);
int count=0;
int score=0;
while(flag){
count++;
int userFingers = userAction();
int computerFingers = computerAction();
System.out.print(컴퓨터 : );
switch(num){
case 0: System.out.println(제로!!); break;
case 1: System.out.println(하나!!); break;
case 2: System.out.println(둘!!); break;
case 3:System.out.println(당신이 최종 점수는 +score);
System.out.println(이름을말하세요:);
Scanner in1 = new Scanner(System.in);
String name ;
name = in1.nextLine();
String base = 순위 이름 점수 ;
bw.write(base);
bw.newLine();
bw.flush();
for(int i=1;i2;i++){
String total1 = i+ +name+ +score;
System.out.println(i+ +name+ +score);
bw.write(total1);
bw.newLine();
bw.flush();
}
bw.close();
System.exit(0);
default :
break;
}
flag = judge(컴퓨터, num, userFingers, computerFingers,count);
score = ScoreUpdate(컴퓨터,num,userFingers,computerFingers,count);
userPlay(); }
} public void run() {
Random random = new Random();
try {
System.out.println(제로 게임을 시작하겠습니다.);
System.out.println(선공을 선택하겠습니다.);
int i = random.nextInt(2);
if(i == 0){
System.out.println(선공은 유저입니다.);
userPlay();
}else{
System.out.println(선공은 컴퓨터입니다.);
computerPlay();
}
random = null;
}catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
-
두나
이것 메인 함수가 없고, 어느 변수를 말하는 것인지 모르겠고
그리고 if(str==\유저\){ 이렇게 쓰면 안되요.
if(\유저\.equals(str)){ 이렇게 써야 해요. (str이 null일 땐 예외 발생 안하고 else로 감)