
이전까지 싱글로 구현한 뿌요뿌요를 멀티로 확장해보자 기능 설계 Server socket을 통하여 C base 서버를 구현한다. 여러 사용자가 동시에 match가 가능하게 구현한다 (multi thread) 게임이 진행 중에 player들의 서로의 정보를 수신, 송신해주는 중계역 역할을 수행한다. Client 상대방이 연결될때까지 wait 게임이 진행되는 도중 비동기적인 player 정보를 송수신 필요 (상대방의 공격, field update) Server Socket 리눅스 상에서 멀티 즉 통신을 구현하기 위하여 소켓을 사용한다. 소켓은 process끼리 통신이 가능하게 구현된 프로토콜이다. 우리가 사용할 network socket은 원하는 transport(tcp or udp) , ip procotol..

일단 멀티플레이는 나중에 생각하고 기본적인 게임을 코드로 구현해보자. 배포 : https://puyo.cspc.me 게임 방식 설명 블럭의 색깔이 4개이고 한번에 2 X 1 블럭에 한칸마다 색깔이 랜덤하게 나온다. 블럭은 회전이 가능하며 위에서 아래로 떨어지게 되고 블럭은 밑에서부터 채우게 된다. 같은 색깔의 블럭이 4개가 이상 뭉치면 같이 지워진다. 블럭이 지워지고 위에 있던 블럭이 아래로 내려와 채우게 된다. 이 때 만약 4개의 블럭이 모여있다면 블럭이 다시 지워지며 추가점수를 얻는다. (연쇄) 설계 구현해야할 기능 블럭이 주기적으로 아래로 내려 쌓기 + 블럭이 아래부터 쌓이게 만들기 랜덤으로 새로운 블럭 생성하기 블럭 4개가 뭉쳐있나 확인후 터트리기 + 블럭을 아래로 내려 해당 내용 반복 우린 1초..

완성 : https://puyo.cspc.me NCURSES 터미널상에 뿌요뿌요 테트리스 같은 그래픽을 구현하기 위해선 printf 같은 함수로는 한계가 있다. 따라서 ncurses 라이브러리를 이용하여 화면을 띄울 스크린을 생성하고 원하는 좌표에만 게임을 출력한다. NCURSES을 사용하여 구현할 목록 그래픽 구현 색깔 출력 1. 그래픽 구현 ncurses 사용 방법 #include int main(){ initscr(); move(0,0); printw("hello"); move(1,0); printw("Hi"); move(2,0); printw("bye"); refresh(); getch(); endwin(); return 0; } WINDOW initscr(void); 화면을 띄울 스크린을 초기화..
뿌요뿌요란? 테트리스와 비슷하게 블럭을 쌓아가며 블럭을 지워가며 점수를 얻는 게임 학교에서 과제로 터미널상에 테트리스를 구현한 것을 바탕으로 뿌요뿌요를 만들어 보자. 게임 룰 블럭의 색깔이 4개이고 한번에 2 X 1 블럭에 한칸마다 색깔이 랜덤하게 나온다. 블럭은 위에서 아래로 떨어지게 되고 블럭은 밑에서부터 채우게 된다. 같은 색깔의 블럭이 4개가 이상 뭉치면 같이 지워진다. 게임 예시 개발 환경 : Ubuntu 구현 언어 : C 1. 기본적인 게임 구현 터미널상에 그래픽 구현 블럭과 필드의 구조 블럭이 떨어져 필드에 쌓기 블럭이 4개이상 붙어 있을 때 블럭 지우기 블럭을 지울 때 얻는 점수 구현 2. 1 vs 1 대전 게임 구현 통신을 위한 서버 구현 게임에 통신기능 추가 (2021.04.27 수정)..
- Total
- Today
- Yesterday
- 백준
- FastAPI
- 토이프로젝트
- ttyd
- OpenSearch
- Python
- 해커톤
- 분할 정복
- 코딩
- os
- 뿌요뿌요
- pintos
- vector search
- C
- 사이버정보지식방
- 정보보호병
- HNSW
- 리눅스
- 싸지방
- Web
- letsencrypt
- 시간 초과
- 프로젝트
- io blocking
- 뿌요뿌요 테트리스
- codeanywhere
- 구름ide
- 웹IDE
- react
- pvm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |