1. 총 게임수
2. 사용자의 입력 받음 ex) 가위 바위 보
3. 램덤 3가지(숫자)를 뽑음
4. user와 com간의 무승패 결정
5. 무승패의 결과를 저장 ( ?전 ?승 ?패 )
6. 출력
import java.io.*;
import java.util.*;
public class GaBaBo {
int gCount = 3;
int i;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
GaBaBo(){
inputGameCount();
}
void inputGameCount(){
p("총 게임수(기본:3): ");
try{
String gCountStr = br.readLine();
gCountStr = gCountStr.trim();
if(gCountStr.length() != 0){
gCount = Integer.parseInt(gCountStr);
}
i = gCount/2;
}catch(IOException ie){
}catch(NumberFormatException ne){
pln("숫자만 가능합니다. 다시 입력해주세요!");
inputGameCount();
return;
}
input();
}
int usr;
void input(){
p("가위 바위 보: ");
try{
String userChoice = br.readLine();
userChoice = userChoice.trim();
if(userChoice.length() != 0){
switch(userChoice){
case "가위": usr=0; break;
case "바위": usr=1; break;
case "보": usr=2; break;
default: pln("가위 바위 보만 가능"); input(); return;
}
}else{
input();
return;
}
}catch(IOException ie){}
ran();
}
Random r = new Random();
int com;
void ran(){
com = r.nextInt(3); //0~2
winOrLose();
}
int win;
int lose;
void winOrLose(){
switch(usr){
case 0:
switch(com){
case 0: pln("draw!"); input(); return;
case 1: pln("lose!"); lose++; gCount--; break;
case 2: pln("win!"); win++; gCount--; break;
} break;
case 1:
switch(com){
case 0: pln("win!"); win++; gCount--; break;
case 1: pln("draw!"); input(); return;
case 2: pln("lose!"); lose++; gCount--; break;
} break;
case 2:
switch(com){
case 0: pln("lose!"); lose++; gCount--; break;
case 1: pln("win!"); win++; gCount--; break;
case 2: pln("draw!"); input(); return;
} break;
}
//stopToEnd(); //모든 게임을 다하고 Stop!
stopToWin(); //승리가 결정되면 Stop!
}
void stopToEnd(){
if(gCount>0) {
input();
}else{
showResult();
}
}
void stopToWin(){
if(gCount>0) {
if(win>=(i+1) || lose>=(i+1)){
showResult();
}else{
input();
}
}else{
showResult();
}
}
void showResult(){
pln((win+lose)+"전 "+ win+"승 "+lose+"패");
}
void pln(String str){
System.out.println(str);
}
void p(String str){
System.out.print(str);
}
public static void main(String[] args) {
new GaBaBo();
}
}
'문제풀이 > Java' 카테고리의 다른 글
[Java] 학점 구하기 (0) | 2021.06.03 |
---|---|
[Java] 계산기(Calculator) (0) | 2021.05.15 |
[Java] Baseball Game 야구게임 (10번의 기회) (0) | 2021.05.10 |
[Java] Random Game Up&Down 숫자 맞추기. (1~100까지, 10회) (0) | 2021.05.10 |
[Java] Lotto, 숫자 중복 없이 5000원어치 (0) | 2021.05.10 |