14. 위피 게임: 가위바위보 게임 초기에 점수=0 처음 이기면 10 점 그 다음부터 이기면 점수=현재 점수*2 지면 현재점수가 10점이면 0점 아니면 점수=현재점수/2 가위 보 바위 14. 위피 게임: 바위바위보 게임
game_ex1.java import org.kwis.msp.lcdui.*; public class game_ex1 extends Jlet { protected void startApp(String[] args) { Display disp = Display.getDefaultDisplay(); disp.pushCard(new game_ex2(disp)); } protected void pauseApp() { protected void resumeApp(){ protected void destroyApp(boolean b) { 14. 위피 게임: 바위바위보 게임
game_ex2.java import org.kwis.msp.lcdui.*; import java.util.*; class game_ex2 extends Card { int jumsu = 0 ; int rand1 ; int w, h, b; private int[] a = {0,1,2} ; int g_state = 0; Display disp; Random rand_b; Image g_title, g_bg, i_com, i_user, i_back; String contents; Font f = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM); game_ex2(Display disp) { this.disp = disp; rand_b = new Random(); h = getHeight(); w = getWidth(); try g_title = Image.createImage("/g_title.gif"); g_bg = Image.createImage("/g_bg.gif"); i_back = Image.createImage("/i_back.gif"); } 14. 위피 게임: 바위바위보 게임
public void next_game() { g_state = 1 ;//초기값 설정 catch (Exception e) {} } public void next_game() { g_state = 1 ;//초기값 설정 contents = "짱..게...뽀?"; //초기값 설정 try { rand1 = Math.abs(rand_b.nextInt()) % 3; //0~2사이의 난수 i_com = Image.createImage("/" + rand1 + ".gif"); repaint(); protected void paint(Graphics g) if(g_state == 0) //초기화면이면 g.drawImage(g_title, 0, 0, 0);//메인 이미지 else g.drawImage(g_bg, 0, 0, 0); //바탕이미지 g.drawImage(i_com, 23, 70, 0);//컴퓨터가 내고 있는짱 게 뽀 이미지및위치 14. 위피 게임: 바위바위보 게임
//뒤집어진 카드 : 사용자가 고를 카드 이미지 if(g_state == 1) { //뒤집어진 카드 : 사용자가 고를 카드 이미지 g.drawImage(i_back, 23,70, 0); //물음표 이미지 이걸로 컴퓨터가 어떤것을 내었는지 가려준다 } else if(g_state == 2) g.drawImage(i_user, w-i_user.getWidth()-20, 70 , 0);//지금 내가 내고있는 이미지를 나타내줌 //현재의 점수를 나타내기 위한 처리 g.setFont(f); g.setColor(255,0,0); g.drawString(Integer.toString(jumsu), w/2+13, 25, g.TOP | g.RIGHT);//점수 표시 //메시지를 나타내기 위한 처리 g.setColor(255, 234, 209); g.fillRect(w/2-44, h-58, 90, 20); g.setColor(255,128,0); g.drawRect(w/2-44, h-58, 90, 20); g.drawString(contents, w/2-34, h-56, g.TOP | g.LEFT);//이부분은 메세지를 알려주는 부분 짱 게 뽀 public void equal() g_state = 2; 14. 위피 게임: 바위바위보 게임
contents = "둘다똑같은넘";//컴퓨터와 내가 낸 카드가 같앗을때 나타나는 메세지 repaint(); } public void victory() //컴퓨터가 나타내는 기본 카드보다 사용자가 선택한 카드가 높은 경우 0<1<2 순서를 말한것임 { if(jumsu == 0) jumsu += 10; else jumsu *= 2; g_state = 2 ; contents = "좋냐??아싸"; public void defeat() //컴퓨터가 나타내는 기본 카드보다 사용자가 선택한 카드가 낮을경우 if(jumsu != 0) jumsu /= 2; if(jumsu == 0 | jumsu < 10) jumsu = 0; g_state = 2; contents = "쫌하는데!!"; protected boolean keyNotify(int type, int key)//키입력을 받아서 해당 이미지를 나타낸다. 14. 위피 게임: 바위바위보 게임
int gameKey = Display.getGameAction(key); //입력키를 얻는다. if(type == EventQueue.KEY_PRESSED)//키가 눌려지면 { if(g_state == 0)//초기화면 if(gameKey == EventQueue.FIRE)//입력키가 OK 키이면 next_game(); //메소드 호출 } // 이기는수 1.2 2.3 3.1 1<2<3<1 else if(g_state == 1)//게임 준비 상태이면 if(gameKey == EventQueue.LEFT)// 입력키가 가위 //'가위'를 눌렀을때 try i_user = Image.createImage("/0.gif"); catch (Exception e){} if(rand1 == a[0])// rand1 과 rand2 값이 같으면 equal(); //equal() 메소드 호출 else if(rand1 == a[1]){ defeat(); else if(rand1 == a[2]){ victory(); 14. 위피 게임: 바위바위보 게임
else if(gameKey == EventQueue.DOWN) //입력키가 바위 { try i_user = Image.createImage("/1.gif"); } catch (Exception e){} //' 바위'일때 if(rand1 == a[1]) equal(); else if(rand1 == a[2]){ defeat(); else if(rand1 == a[0]){ victory(); else if(gameKey == EventQueue.RIGHT) //입력키가 보 i_user = Image.createImage("/2.gif"); //'보'일때 if(rand1 == a[2]) 14. 위피 게임: 바위바위보 게임
if(gameKey == EventQueue.FIRE) next_game(); return false; else if(rand1 == a[0]) { defeat(); } else if(rand1 == a[1]){ victory(); else { if(gameKey == EventQueue.FIRE) next_game(); return false; 14. 위피 게임: 바위바위보 게임
실행 결과 14. 위피 게임: 바위바위보 게임