diff --git a/pom.xml b/pom.xml
index fe0f531..13b8e5f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,12 @@
spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
org.springframework.boot
diff --git a/src/main/java/com/example/catchTheLetters/config/WebSocketConfig.java b/src/main/java/com/example/catchTheLetters/config/WebSocketConfig.java
new file mode 100644
index 0000000..fc898ae
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/config/WebSocketConfig.java
@@ -0,0 +1,21 @@
+package com.example.catchTheLetters.config;
+
+import com.example.catchTheLetters.handler.WebSocketHandler;
+import jakarta.annotation.Resource;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.config.annotation.EnableWebSocket;
+import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
+import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
+
+@Configuration
+@EnableWebSocket
+public class WebSocketConfig implements WebSocketConfigurer {
+
+ @Resource
+ private WebSocketHandler webSocketHandler;
+
+ @Override
+ public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
+ registry.addHandler(webSocketHandler, "/ws");
+ }
+}
diff --git a/src/main/java/com/example/catchTheLetters/entity/GameRoom.java b/src/main/java/com/example/catchTheLetters/entity/GameRoom.java
new file mode 100644
index 0000000..57bd85c
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/entity/GameRoom.java
@@ -0,0 +1,38 @@
+package com.example.catchTheLetters.entity;
+
+import com.example.catchTheLetters.enums.Status;
+import com.example.catchTheLetters.model.vo.Letter;
+import org.springframework.web.socket.WebSocketSession;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class GameRoom {
+ private List players = new ArrayList<>();
+ private Status status = Status.WAITING;
+
+ public void addPlayer(WebSocketSession session) {
+ players.add(session);
+ }
+
+ public void removePlayer(WebSocketSession session) {
+ players.remove(session);
+ }
+
+ public void startGame() {
+ status = Status.PLAYING;
+ }
+
+ public void endGame() {
+ status = Status.END;
+ }
+
+ public void handleInput(WebSocketSession session, String input) {
+ // 处理玩家输入
+ }
+
+ public Letter generateLetter() {
+ // 生成字母
+ return null;
+ }
+}
diff --git a/src/main/java/com/example/catchTheLetters/enums/Status.java b/src/main/java/com/example/catchTheLetters/enums/Status.java
new file mode 100644
index 0000000..58dccdc
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/enums/Status.java
@@ -0,0 +1,5 @@
+package com.example.catchTheLetters.enums;
+
+public enum Status {
+ WAITING, PLAYING, END
+}
diff --git a/src/main/java/com/example/catchTheLetters/handler/WebSocketHandler.java b/src/main/java/com/example/catchTheLetters/handler/WebSocketHandler.java
new file mode 100644
index 0000000..e1302d7
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/handler/WebSocketHandler.java
@@ -0,0 +1,15 @@
+package com.example.catchTheLetters.handler;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.socket.TextMessage;
+import org.springframework.web.socket.WebSocketSession;
+import org.springframework.web.socket.handler.TextWebSocketHandler;
+
+@Controller
+public class WebSocketHandler extends TextWebSocketHandler {
+
+ @Override
+ public void handleTextMessage(WebSocketSession session, TextMessage message) {
+ // 处理接收到的消息
+ }
+}
diff --git a/src/main/java/com/example/catchTheLetters/model/vo/Letter.java b/src/main/java/com/example/catchTheLetters/model/vo/Letter.java
new file mode 100644
index 0000000..d44f59c
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/model/vo/Letter.java
@@ -0,0 +1,15 @@
+package com.example.catchTheLetters.model.vo;
+
+public class Letter {
+ // 字母值,如果是10则是加血
+ private String letterVal;
+
+ // 下落速度
+ private float speed = 3f;
+
+ // 字母的x坐标
+ private float x;
+
+ // 字母的y坐标
+ private float y;
+}
diff --git a/src/main/java/com/example/catchTheLetters/service/RoomService.java b/src/main/java/com/example/catchTheLetters/service/RoomService.java
new file mode 100644
index 0000000..d494de4
--- /dev/null
+++ b/src/main/java/com/example/catchTheLetters/service/RoomService.java
@@ -0,0 +1,18 @@
+package com.example.catchTheLetters.service;
+
+import com.example.catchTheLetters.model.vo.Letter;
+import org.springframework.web.socket.WebSocketSession;
+
+public interface RoomService {
+ void addPlayer(WebSocketSession session);
+
+ void removePlayer(WebSocketSession session);
+
+ void startGame();
+
+ void endGame();
+
+ void handleInput(WebSocketSession session, String input);
+
+ Letter generateLetter();
+}