import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.util.Random;
public class GameJava {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//Random r = new Random();
//int computer = Math.abs(r.nextInt() % 3);
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
String user, com;
System.out.print("가위, 바위,보 중 하나를 선택하시오. (가위=a, 바위=b, 보=c): ");
user = in.readLine();
com = in.readLine();
//String com1; com1= Math.abs(r.toString());
if(user. equals("a")) {
if(com.equals("a")) System.out.println("무승부 (컴퓨터:가위, 사람:가위)");
if(com.equals("b")) System.out.println("컴퓨터 승! (컴퓨터:바위, 사람:가위)");
if(com.equals("c")) System.out.println("사람 승!(컴퓨터:보, 사람:가위)");
}else if(user.equals("b")){
if(com.equals("a")) System.out.println("사람 승! (컴퓨터:가위, 사람:가위)");
if(com.equals("b")) System.out.println("무승부(컴퓨터:바위, 사람:바위)");
if(com.equals("c")) System.out.println("컴퓨터 승! (컴퓨터:보, 사람:바위)");
}else if(user.equals("c")){
if(com.equals("a")) System.out.println("컴퓨터 승!(컴퓨터:가위, 사람:보)");
if(com.equals("b")) System.out.println("사람 승! (컴퓨터:바위, 사람:보)");
if(com.equals("c")) System.out.println("무승부 (컴퓨터:보, 사람:보)");
}
}
}
-----------------
if(com.equals("c")) 문자열로 바꿔도 실행이 안 돼요ㅠㅠㅠ
문자로 한다는거는 상대방도 콘솔로 입력받는다는 뜻인가요?
네...그런것이죠!!!!!!!!!!저게 지금
if(computer==0) 이 부분자체를 문자열로 바꿔서...
컴퓨터가 문자를 받아서 인식하게끔..숫자가아니라.ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ으 ㅇ ㅏ먼말이지ㅠㅠㅠㅠㅠㅠ
지금 해오신 그대로 하면 될것 같은데요. String com; com=in.readLine(); 해놓으시고 if (com.equals(\"a\")) {...} 이렇게 하시면 될것같네요.
ㅄ아 쉬우면 니가 해 존나 어처구니 없는 놈일세
근데 String은 숫자가 아니잖아요 int computer = Math.abs(r.nextInt() % 3); 이것처럼 정의를 해놓고 String으로 바꿔야하지않나요?!!
글쓴이님이 원하시는게 콘솔에서 나의 선택(a, b, c 중 하나)와 상대방의 선택(a, b, c 중 하나)를 입력받아서 처리하는게 아닌가요?
맞아요 근데...그렇게 해도 실행이 안 돼요...
상대방이 컴퓨터잖아요...컴퓨터는 지금 이프문 안에 보면 0,1,2로 되어있잖아요 근ㄷㅔ 이거 난수? 발생시켜서 한거같은데.. 그러니까 컴퓨터는 랜덤으로 해서..0,1,2를 abc처럼 문자..아니 무슨 말이야............
Random r = new Random(); int computer = Math.abs(r.nextInt() % 3); 이 두 문장을 지우시고 String user, com; System.out.print(\"가위, 바위,보 중 하나를 선택하시오. (가위=a, 바위=b, 보=c): \"); user = in.readLine(); com = in.readLine(); 해보세요. 그 다음에 if문은 직접 작성해보세요.
BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); String user, com; System.out.print(\"가위, 바위,보 중 하나를 선택하시오. (가위=a, 바위=b, 보=c): \"); user = in.readLine(); com = in.readLine();
if(user. equals(\"a\")) { if(com==(\"a\")) System.out.println(\"무승부 (컴퓨터:가위, 사람:가위)\"); if(com==(\"b\")) System.out.println(\"컴퓨터 승! (컴퓨터:바위, 사람:가위)\"); if(com==(\"c\")) System.out.println(\"사람 승!(컴퓨터:보, 사람:가위)\");
이런식으로...인가요? 아닌거같은데ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
com==(\"a\")로 하면 두 문자열의 *주소*가 비교되기 때문에 원하는 결과를 얻지 못해요. com.equals(\"a\")로 해보세요.
그렇게해도안나와요...실행창에 a를 쳐도 b를 쳐도 결과가 안 나오네요ㅠㅠㅠㅠ왜 이러는 거죠..?
지금까지 수정한 소스를 본문에 다시올려보세요.
Random r 이 있어야 되지 않나요?!!!!
수정했어요@!@1
Random r;은 말그대로 임의의 값을 생성하는데 필요한 인스턴스예요. 지금은 난수가 필요한 부분이 없으니 없애도 되요.
아..그럼 지금은 문자를 정해주는거니까 랜덤이 필요 없는건가요?! 근데 왜 실행이 안 될까요ㅠㅠ
이 글을 보니까 추억이 새록새록 떠오른다
글쓴이/제가 직접 이클립스에 그대로 붙여넣어서 실행했는데 잘 돌아가는데요? 환경이 어떻게 되세요? 그리고 지금은 글쓴이님 말씀대로 문자를 정해주니까 랜덤이 필요없습니다.
헐 nono님 된거같아요...
가위, 바위,보 중 하나를 선택하시오. (가위=a, 바위=b, 보=c): aa 무승부 (컴퓨터:가위, 사람:가위)
글쓴이/어떻게 하셨길래 됬나요?
알파벳을 두번 치지 않고 바로 결과가 나올수는 없는건가요?
글쓴이/이제 직접 연구해보세요. 수고하셨습니다.
문자열이라서 그런 건가요?
ㄴㅇㄴㄹ나ㅣㅇ러ㅣㅁㄴ러ㅣ나러니ㅏ러ㅣ나러ㅣ니ㅏㄴ 안돼요ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
nono님..감사합니다..
사랑해여ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
노노 사랑받았네