버전 1.0 완성!!

GEISTER 2007. 10. 4. 22:22
사용자 삽입 이미지

첫게임 이혜진 승 ㅋㅋ
Posted by UrC9
,
사용자 삽입 이미지

게임판의 왼쪽위부터 차례대로
0 ~ 5,
6 ~ 11
12 ~ 17
18 ~ 23
24 ~ 29
30 ~ 35

내말 쪽
죽은 말 : 36 ~ 43

상대말 쪽
죽은 말 : 44 ~ 51

화면밖 : 52 (박스가 필요 없을때와 상대말이 죽거나 도착했을때 를 대비)

상대방의 말이 죽거나 도착하면 흰색말은 화면 밖으로 빼고 색깔말을 상대말 쪽에 배치
Posted by UrC9
,

서버 실행 (7000번 포트 이용)

 final int portNum = 7000;
 
 public testServer() {
  try {
   m_sckServer = new ServerSocket(portNum);
   m_vctClients = new Vector();
   System.out.println(portNum + "번 소켓 생성");
   this.start();
  }
  catch(IOException e) {
   System.out.println("서버소켓생성 에러 : " + e);
  }
 }

7000번 소켓 생성

사용자 삽입 이미지

----------------------------------------------------------------------------------

클라이언트 2개가 접속하면 게임을 진행하고

   System.out.println("연결시도\n");
   socket = new Socket(ip, 7000);
   System.out.println("연결완료\n");


각 클라이언트가 "ready"를 받으면 랜덤함수로 선을 정하고

      ready = true;
      sendMsg("ready");
      System.out.println("ready : " + ready);


사용자 삽입 이미지

----------------------------------------------------------------------------------

    Socket socket = m_sckServer.accept();
    clientSocket client = new clientSocket(socket, this, m_vctClients.size());
    m_vctClients.addElement(client);
   
    System.out.println("연결 소켓수 : " + m_vctClients.size());
    if(m_vctClients.size() == 2) {
//     send("게임시작", 0);
//     send("게임시작", 1);
     
     clientSocket temp = null;
     temp = (clientSocket)m_vctClients.elementAt(0);
     System.out.println("0번 : " + temp.clientReady());
     temp.start();
     temp = (clientSocket)m_vctClients.elementAt(1);
     System.out.println("1번 : " + temp.clientReady());
     temp.start();
     
     Random random=new Random();
     int first;
     first=random.nextInt(2);
     System.out.println("선공 : " + first);
     send("01", first);
     send("00", ((first+1) % 2));
    }



선공에는 01, 후공에는 00 을 보낸다.

사용자 삽입 이미지

----------------------------------------------------------------------------------

메시지의 첫자리는 메시지의 종류를 나타맨
0 : 게임 개시와 선을 알림
1 : 상대가 메시지를 보내옴(상대 가이스터의 위치). 이걸 받음으로써 자신의 차례임을 암

종류가 0일때
둘째자리가 1이면 선공, 0이면 후공
종류가 1일때
둘째자리부터 두자리씩 파란 가이스터 4개의 자리번호와 빨간 가이스터 4개의 자리번호가 차례로 옴 (메시지를 받은 측에서는 상대가 자신 중심으로 자리 번호를 보내기 때문에 이 번호에서 35를 빼서 내 중심으로 변형해야 한다.)
사용자 삽입 이미지

 - 그림에서는 상대의 자리를 받고(파란 가이스터 10,9,14,2 빨간 가이스터 3,4,1,7 - 메시지를 순차적으로 읽은것이 아님)나서 내가 플레이 후에는 메시지 종류는 1로 하고 나의 자리(파란 가이스터 19,32,26,27 빨간 가이스터 33,34,28,31)을 보낸다.

Posted by UrC9
,

InstantRails 설치

Ajax/Ruby 2007. 9. 12. 17:25
초고속 웹개발의 시작!!

윈도우에서 사용하기 위한 루비 온 레일즈 중 가장 쉬운방법은 인스턴트레일즈이다.

http://instantrails.rubyforge.org/


접속하면 자동으로 위키페이지로 이동한다.
게링 스타리드에 다운로드 페이지로

사용자 삽입 이미지

아무래도 최신버전이 좋겠지~

다운받아서 원하는 폴더에 압축을 풀면 바로 사용이 가능하다.

사용자 삽입 이미지

실행파일을 실행해보자

사용자 삽입 이미지

아파치서버와 MySQL을 기본으로 제공한다.
이게 돌아가지 않으면 데모로 제공하고 있는 애플리케이션이 돌아가지 않는다.
자체적으로 MySQL을 돌리고 있으면 일단 중지시키고 인스턴트레일즈에서 제공하는 걸로 해보자.

사용자 삽입 이미지

내가 돌리고 있는 MySQL을 중지 시켰다.

사용자 삽입 이미지

기본으로 제공하는 애플리케이션중 쿡북 실행
실행법은 실행시킬 애플리케이션의 폴더에 가서
ruby script\server
하면 된다.
당연히 ruby의 bin 폴더가 패스설정이 되있어야 한다.

사용자 삽입 이미지

기본적으로 포트를 3000번을 써서
http://localhost:3000 을 치니 쿡북이 실행되고 있다.
주소를 보면 알겠지만 이건 html이나 asp, php 처럼 파일로의 이동이 아니고,
컨트롤러와 메소드간의 이동이다
이 페이지에서는 recipe가 컨트롤러(일반 프로그래밍에서의 클래스정도라고 보면 될듯)
list 혹은 show(밑의 상태표시줄)가 메쏘드
3(밑의 상태표시줄)이 인수(혹은 인자?)이다.
Posted by UrC9
,
매번 내보내기하고, 선택하기가 무지하게 귀찮다.
그래서 이번엔 외구도구로 만들어보자.

사용자 삽입 이미지

외부도구에서 프로그램을 추가하자

위치
C:\Program Files\JAVA\jdk1.6.0_02\bin\jar.exe (JDK가 깔린곳의 jar.exe)

작업 디렉토리
${workspace_loc:/${project_name}} (현재 프로젝트 - 사용자마다 다름)

인수
-cvf ${java_type_name}.jar *.class *.gif *.png *.bmp *.mid *.mmf (JAR의 압축명령 인수이다)

적용을 시키고

사용자 삽입 이미지

외부도구의 단축메뉴가 2개있다.
이제 소스 수정 후엔 2번과 1번을 차례대로 실행하면 된다.
Posted by UrC9
,