Presentation is loading. Please wait.

Presentation is loading. Please wait.

Network 두더지 잡기 게임 2 조 9861081 신흥섭 9861009 권석진 9861012 김관수 9961201 최현식 0061060 김주호.

Similar presentations


Presentation on theme: "Network 두더지 잡기 게임 2 조 9861081 신흥섭 9861009 권석진 9861012 김관수 9961201 최현식 0061060 김주호."— Presentation transcript:

1 Network 두더지 잡기 게임 2 조 9861081 신흥섭 9861009 권석진 9861012 김관수 9961201 최현식 0061060 김주호

2 개발환경 및 개발 툴 개발환경 j2sdk1.4.1_01 mm.mysql-2.0.14-bin.jar Mysql-3.24.54-nt 개발툴 Edit plus photoshop

3 Server – client socket ServerSocket ClientSocket connect()accept()

4 서버 구조 Server Viewtext.javaInfo.javaServer.java Server 상태표시 Server 정보 Main()

5 서버 상태 표시 서버에서 서버의 상 태를 보여주는 창 Mysql 에 접속하여 접 속한곳을 저장하고 사용자의 아이디와 password, 점수를 불 러와 보여준다.

6 Server – info.java Class User Class RoomManager Class Chatter Class TextManagement Class db

7 TextManagement class 01 사용자 인증 02 사용자 추가 03 만들어진 방 04 접속자 명당 05 사용자정보 06 방만들기 07 선택한 방의 정보 08 채팅 메시지 전달 09 방에 들어가기 10 방에서 나가기 11 게임 시작하기

8 TextManagement class 소스 class TextManagement { String control = null; String realText = null; String id=null, pass=null, name=null; TextManagement(String text, int sid) { control = text.substring(0,2); realText = text.substring(3, text.length()); //System.out.print(control+" Send "); if (control.equals("01")) // 01 사용자 인증부분 { id = realText.substring(0,realText.indexOf(",",0)); pass = realText.substring(realText.indexOf(",",0)+1,realText.length()); boolean temp = User[sid].certify(id,pass); }

9 JDBC DriverManager Jdbc:mysql Mysql getConnection()

10 Db class String url = "jdbc:mysql://localho st:3306/taza"; con = DriverManager.getC onnection(url,user,p sw); Class.forName("org. gjt.mm.mysql.Driver" ); - jdbc url 을 이용하여 커넥션을 열기위해 DriverManager 의 getConnection() 메 소드를 호출한다 - Mysql 에서 mm 드라 이버를 로드한다.

11 DataBase 구조 Userinfo table idnamescorelastlogindatepass

12 Db class – 소스 부분 public String userName(String id) { String te=""; try { stmt = con.createStatement(); result = stmt.executeQuery("Select name from userinfo Where id='"+id+"'"); if(result.next()) te = result.getString(1); stmt.close(); }catch(Exception e) {System.out.println(e.toString());} return te; }

13 Client AccountFrame.java - user 추가 CreateRoomFrame.java – 방 만들기 cRoomFrame.java – chatting room GameEnding.java – ending 화면 GameRoom.java – 게임실 LoginFrame.java - 로그인 MoleGame.java – main() NetClient.java – client socket QuitDialog.java – Quit 버튼처리 UserInfo.java – 게임에 관한 정보관리 WaitRoomFrame.java - 대기실 Warning.java - 경고창

14 LoginFrame.java 로그인 화면  가입버튼을 누르면 AccountFrame 이 호출  기존의 가입자는 아이디와 비밀번호를 입력받아 info class 에서 usersearch() 를 통해 인증

15 LoginFrame.java 아이디와 패스워드 를 누르면 waring class 가 호출

16 AccountFrame.java 가입버튼을 누르면 AccountFrame 이 활 성화 아이디, 비밀번호, 이 름을 입력받아 Db 에 저장후 다시 LoginFrame 활성화

17 AccountFrame.java 소스 netClient.sendMessage("02 "+id+","+pass1+"."+name); w:while(true) { if (!(netClient.readMessage==null)) { String getMemo = netClient.readMessage,control=null; netClient.readMessage=null; control = getMemo.substring(0,2); getMemo = getMemo.substring(3,getMemo.length()); if (control.equals("00")) // 유저 추가 실패 { new Warning(this,getMemo); break w; } if (control.equals("01")) // 정확히 유저가 추가 { new Warning(this,getMemo); LoginFrame_Window(); break w; }

18 WaitRoomFrame.java 아이디를 클릭하면 그 사용자의 정보가 뜬다. – 아이디, 점수 만들어져 있는 방이 있다면 이 곳에 list 가 뜬다.

19 WaitRoomFrame.java class ServerInfo extends Thread // 서버와 계속적인 통신을 위해.. { String getMemo=null,control=null; String[] userList = new String[100]; String[] sRoomList = new String[100]; public void run() { boolean temp = false; while (true) { if (netClient.readMessage != null) { getMemo = netClient.readMessage; // 메시지를 받아와서 control = getMemo.substring(0,2); // 앞 2 문자만 때어내고 getMemo = getMemo.substring(3,getMemo.length()); // 나머지 netClient.readMessage = null; if (control.equals("03" )) // 만들어진 방목록 받기 { String buffer = null; boolean tmp = true; // 방리스트 갱신하기 - 없는 방목록 지우기 sRoomList = roomList.getItems(); for (int i=0; i<sRoomList.length;i++) if (getMemo.indexOf(sRoomList[i]) == -1) roomList.delItem(i);

20 cRoomFrmae.java 방 이름을 적고 확인 을 누르면 방이 만들 어 진다. 비밀번호를 만들고 싶으면 체크한 후 방을 만들면 비밀방을 만들 수 있다.

21 CreateRoomFrame.java 첫번째 User 의 Message 두번째 User 의 Message 텍스트필드 입력창

22 CreateRoomFrame.java 소스 class NetThread extends Thread { public void run() { String getMemo="",control=""; String[] temp = new String[8]; String tID =""; int time=0; w:while(true) { if (netClient.readMessage != null) { System.out.println(netClient.readMessage); getMemo=netClient.readMessage; // 메시지를 받아와서 control = getMemo.substring(0,2); // 앞 2 문자만 때어내고 getMemo = getMemo.substring(3,getMemo.length()); // 나머지 문자들 netClient.readMessage=null; if (control.equals("07")) // 방 정보를 받아옴 { int i=0; temp = textCutter("'", getMemo); label1.setText(" 방 이름 : "+temp[0]); user.roomMateID = textCutter(",",getMemo); } if (control.equals("08")) // 체팅 메시지를 받았을때 { tID = getMemo.substring(0,getMemo.indexOf(",")); getMemo = getMemo.substring(getMemo.indexOf(",")+1,getMemo.length());

23 GameRoom.java 게임화면  두더지가 튀어나오 면 마우스로 클릭하 여 잡는다.  클릭하면 점수가 올 라간다.

24 GameRoom.java 게임이 종료되면 점 수를 표시하고 변경 된 점수를 Db 에 저장 한 후 일정시간이 지 나면 다시 채팅방으 로 돌아간다.

25 GameRoom.java-Thread 부분 public void run() { while (true) { if (user.start==6) {GameRoomFrame_End();this.stop();} if (netClient.readMessage != null) { getMemo = netClient.readMessage; // 메시지를 받아와서 control = getMemo.substring(0,2); // 앞 2 문자만 때어내고 getMemo = getMemo.substring(3,getMemo.length()); // 나머지 문자 netClient.readMessage = null; if (control.equals("11")) // 게임준비 { user.start=1; System.out.println(" 게임준비 "); } else if (control.equals("12")) // 게임시작 { user.start=2; System.out.println(" 게임시작 "); } else if (control.equals("13")) // 게임중 { user.start=3; System.out.println(" 게임중 "); }

26 GameRoom.java-Event 부분 public void mouseClicked(MouseEvent me) { if ((me.getX() > 45 && me.getX() 118 && me.getY() < 138) && user.moleC[0][0] == true) { netClient.sendMessage("15 "+user.roomNum+","+user.id); // 서버에 내가 입력했다고 알려줌.. user.roomMateScore[0]++; } if ((me.getX() > 140 && me.getX() 118 && me.getY() < 138) && user.moleC[0][1] == true) { netClient.sendMessage("15 "+user.roomNum+","+user.id); user.roomMateScore[0]++; } if ((me.getX() > 235 && me.getX() 118 && me.getY() < 138) && user.moleC[0][2] == true) { netClient.sendMessage("15 "+user.roomNum+","+user.id); user.roomMateScore[0]++; }

27 마치며 … 2 조 9861081 신흥섭 9861009 권석진 9861012 김관수 9961201 최현식 0061060 김주호


Download ppt "Network 두더지 잡기 게임 2 조 9861081 신흥섭 9861009 권석진 9861012 김관수 9961201 최현식 0061060 김주호."

Similar presentations


Ads by Google