들어가기 전에 1
예전에 프로그램 연습할때 가위바위보 비교를 하는데 무진장 귀찮더라구요
if문을 9개를 쓰니까 짜증이나서 간략하게 줄였습니다.
가위 1
바위 2
보 3
이라고 한다면
이기는 경우의 수를 생각해봅시다.
1-3=-2
2-1=1
3-2=1
이렇게 결과는 -2,1이 나옵니다.
지는경우는 반대로 -1, 2가 나오지요
비기는 경우는 0이 나오구요
나름 고민해서 만든 소스입니다 -_-V
int checkGame(int com, int my)
{
int a;
a=com-my;
ggb_total++;
if(a==1||a==-2)
{
ggb_lost++;
a=2;
}
else if(a==0)
{
a=0;
}
else
{
ggb_win++;
a=1;
}
return a;
}
들어가기 전에 2
혹시 패키지 컴파일 못해서 울거같아 올립니다.
패키지 컴파일은 쪼오끔 다릅니다.
- 컴파일 하는 방법 -
C:\test\ggb\Main.java
이렇게 나와 있다면
C:\test\ggb>javac *.java
이렇게하면 아래 3개의 파일이 모두 컴파일이 되지요
- 실행하는 방법 -
C:\test>java ggb.Main
입력하면 잘 실행 됩니다.
Player.java
package ggb;
import java.io.*;
public class Player
{
BufferedReader input_key;
public Player()
{
input_key=new BufferedReader(new InputStreamReader(System.in));
}
int go()
{
int a;
String str;
a=0;
str="";
try
{
System.out.println("선택하시오 (1:가위, 2:바위, 3:보, 4:종료)");
str = input_key.readLine();
}
catch (IOException err)
{
a=4;
}
int i=1;
while(i==1)
{
if(a > 0 && a < 5)
{
System.out.println("입력3:"+str);
i++;
}
else
{
input_key=new BufferedReader(new InputStreamReader(System.in));
System.out.println(" 선택지만 입력하세요. \n (1:가위, 2:바위, 3:보, 4:종료)");
try
{
str = input_key.readLine();
}
catch (Exception e )
{
a=4;
}
}
}
return a;
}
}
Computer.java
package ggb;
import java.util.*;
public class Computer
{
Random ggb_rnd;
public Computer()
{
ggb_rnd=new Random();
}
int go()
{
int a;
a = ggb_rnd.nextInt(3)+1;
return a;
}
}
Main.java
package ggb;
public class Main
{
Computer ggb_com;
Player ggb_Player;
int ggb_total;
int ggb_win;
int ggb_lost;
public Main()
{
ggb_com=new Computer();
ggb_Player=new Player();
ggb_total=0;
ggb_win=0;
ggb_lost=0;
}
String getValue(int a)
{
String str;
str="";
if(1==a)
{
str="가위";
}
else if(2==a)
{
str="바위";
}
else if(3==a)
{
str="보";
}
return str;
}
void showPlay(int com, int p, int result)
{
String str;
switch(result)
{
case 0:
str="비김";
break;
case 1:
str="이김 ㅊㅋㅊㅋ";
break;
default:
str="졌음 ㅋㅋㅋㅋ";
break;
}
System.out.println("컴퓨터:" + getValue(com) + "\n플레이어:" + getValue(p));
System.out.println("결과:" + str);
}
void showEndGame()
{
int equal;
float rate;
equal=ggb_total - (ggb_win + ggb_lost);
rate=(float)ggb_win/ggb_total;
System.out.println("-------------------------");
System.out.println("총게임수 : " + ggb_total);
System.out.println("이긴수 : " +ggb_win);
System.out.println("비긴수 : " +equal);
System.out.println("진수 : " + ggb_lost);
System.out.println("승률 : " + rate );
System.out.println("-------------------------");
}
int checkGame(int com, int my)
{
int a;
a=com-my;
ggb_total++;
if(a==1||a==-2)
{
ggb_lost++;
a=2;
}
else if(a==0)
{
a=0;
}
else
{
ggb_win++;
a=1;
}
return a;
}
void run()
{
int com;
int p;
int result;
while(true)
{
p = ggb_Player.go();
com = ggb_com.go();
if(4==p)
{
break;
}
result=checkGame(com,p);
showPlay(com,p,result);
}
showEndGame();
}
public static void main(String[] args)
{
Main m;
m=new Main();
m.run();
}
}
'기타 > 프로그래밍 분류' 카테고리의 다른 글
Eclips 라인넘버 보기 (0) | 2013.11.14 |
---|---|
이클립스 디버깅하기 (0) | 2013.11.14 |
8.클래스예제(로또생성기) (0) | 2013.11.06 |
JAVA - 스레드의 상태변이 (0) | 2013.10.16 |
JAVA - 제네릭 (0) | 2013.10.16 |