aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/game/socket.py39
-rwxr-xr-xapi/game/voerbakbin0 -> 16592 bytes
-rw-r--r--api/game/voerbak.c (renamed from console/voerbak.c)0
-rw-r--r--api/game/voerbak_connector.py (renamed from console/voerbak_connector.py)0
-rw-r--r--package.json1
-rw-r--r--pages/game.tsx67
-rw-r--r--yarn.lock94
7 files changed, 168 insertions, 33 deletions
diff --git a/api/game/socket.py b/api/game/socket.py
index c4e5ac7..d6dff1b 100644
--- a/api/game/socket.py
+++ b/api/game/socket.py
@@ -1,30 +1,33 @@
from flask import Blueprint, request, make_response
-from flask_socketio import SocketIO, emit, disconnect, Namespace, emit
+from flask_socketio import SocketIO, emit, disconnect, emit
+from game.voerbak_connector import bord
+from db import cursor
import time
import json
-class GameSocketNamespace(Namespace):
- def connect(self):
- print("new connection")
- emit("gert", {"gert": "banaan"})
+namespace = "/game/socket"
- def on_connect(self):
- print("new connection")
- emit("gert", {"gert": "banaan"})
+class game:
+ def __init__(self, game_id):
+ self.game_id = game_id
+ self.board = bord(7, 6)
- def on_disconnect(self):
- print("disconnect")
+ def move(self, user_id, column):
+ # player_1 = cursor.execute("select player_1_id from games where game_id = ?", [self.game_id]).fetchone()[0]
+ # player_1_move = player_1 == user_id
+ # if not self.board.player_1 == player_1_move: return
+ self.board.drop_fisje(column)
- def new_move(self, data):
- print("new_move")
+def run(app):
+ io = SocketIO(app)
+
+ @io.on("new_move", namespace)
+ def new_move(data):
print(data)
- def resign(self, data):
- print("resign")
+ @io.on("resign", namespace)
+ def resign(data):
print(data)
-def run(app):
- socketio = SocketIO(app)
- socketio.on_namespace(GameSocketNamespace("/game/socket"))
- socketio.run(app, host="127.0.0.1", port=5000, debug=True)
+ io.run(app, host="127.0.0.1", port=5000, debug=True)
diff --git a/api/game/voerbak b/api/game/voerbak
new file mode 100755
index 0000000..e7b7a14
--- /dev/null
+++ b/api/game/voerbak
Binary files differ
diff --git a/console/voerbak.c b/api/game/voerbak.c
index f0ecb4a..f0ecb4a 100644
--- a/console/voerbak.c
+++ b/api/game/voerbak.c
diff --git a/console/voerbak_connector.py b/api/game/voerbak_connector.py
index 6274ada..6274ada 100644
--- a/console/voerbak_connector.py
+++ b/api/game/voerbak_connector.py
diff --git a/package.json b/package.json
index 406bf35..4db6c8d 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"react-dom": "^17.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "^4.0.1",
+ "socket.io-client": "^3.1.1",
"swr": "^0.4.0",
"typescript": "^4.1.3",
"uuid": "^8.3.2",
diff --git a/pages/game.tsx b/pages/game.tsx
index 513fc7a..f56452f 100644
--- a/pages/game.tsx
+++ b/pages/game.tsx
@@ -1,4 +1,10 @@
-import { CSSProperties } from 'react';
+import { CSSProperties, Component } from 'react';
+import { io } from 'socket.io-client';
+import axios from 'axios';
+import { userInfo } from '../api/api';
+import * as cookies from 'react-cookies';
+
+var socket = io("http://localhost:5000/game/socket");
import { NavBar } from '../components/navbar';
import { CenteredPage } from '../components/page';
@@ -37,22 +43,57 @@ var InviteButtonLabelStyle: CSSProperties = {
userSelect: "none"
}
+interface VoerGameProps {
+
+}
+
+class VoerGame extends Component<VoerGameProps> {
+ constructor(props: VoerGameProps) {
+ super(props);
+ }
+
+ board = [...Array(7 * 6)].map(() => 0);
+ userID = "";
+
+ move(column: number) {
+ console.log(column)
+ if(this.userID == "") {
+ axios.request<userInfo>({
+ method: "get",
+ url: `/api/user/info`,
+ headers: {"content-type": "application/json"}
+ })
+ .then(request => this.setState({ userID: request.data.id }))
+ .catch(() => {});
+ }
+ socket.emit("new_move", {
+ move: column,
+ token: cookies.load("token"),
+ gameID: "fortnite"
+ })
+ }
+
+ render() {
+ return <div style={{
+ position: "relative",
+ top: "50%",
+ transform: "translateY(-50%)",
+ maxWidth: "100vh",
+ margin: "0 auto"
+ }}>
+ <VoerBord width={7} height={6}/>
+ <GameBar/>
+ </div>
+ }
+}
+
export default function GamePage() {
return (
<div>
<NavBar/>
<CenteredPage width={900} style={{ height: "100vh" }}>
- <div style={{
- position: "relative",
- top: "50%",
- transform: "translateY(-50%)",
- maxWidth: "100vh",
- margin: "0 auto"
- }}>
- <VoerBord width={7} height={6}/>
- <GameBar/>
- </div>
- <DialogBox title="Nieuw spel">
+ <VoerGame/>
+ {false && <DialogBox title="Nieuw spel">
<CurrentGameSettings/>
<div style={{
marginTop: 24,
@@ -76,7 +117,7 @@ export default function GamePage() {
</Button>
</div>
<SearchBar label="Zoeken in vriendenlijst"/>
- </DialogBox>
+ </DialogBox>}
</CenteredPage>
</div>
);
diff --git a/yarn.lock b/yarn.lock
index f9a27a2..5cd7155 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1887,6 +1887,11 @@
"@types/connect" "*"
"@types/node" "*"
+"@types/component-emitter@^1.2.10":
+ version "1.2.10"
+ resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea"
+ integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==
+
"@types/connect@*":
version "3.4.34"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901"
@@ -3039,11 +3044,21 @@ babylon@^6.18.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
+backo2@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+base64-arraybuffer@0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
+ integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=
+
base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -3784,7 +3799,7 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
-component-emitter@^1.2.1:
+component-emitter@^1.2.1, component-emitter@~1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
@@ -4372,7 +4387,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
@@ -4872,6 +4887,29 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
dependencies:
once "^1.4.0"
+engine.io-client@~4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-4.1.1.tgz#109942705079f15a4fcf1090bc86d3a1341c0a61"
+ integrity sha512-iYasV/EttP/2pLrdowe9G3zwlNIFhwny8VSIh+vPlMnYZqSzLsTzSLa9hFy015OrH1s4fzoYxeHjVkO8hSFKwg==
+ dependencies:
+ base64-arraybuffer "0.1.4"
+ component-emitter "~1.3.0"
+ debug "~4.3.1"
+ engine.io-parser "~4.0.1"
+ has-cors "1.1.0"
+ parseqs "0.0.6"
+ parseuri "0.0.6"
+ ws "~7.4.2"
+ xmlhttprequest-ssl "~1.5.4"
+ yeast "0.1.2"
+
+engine.io-parser@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e"
+ integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==
+ dependencies:
+ base64-arraybuffer "0.1.4"
+
enhanced-resolve@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
@@ -5984,6 +6022,11 @@ harmony-reflect@^1.4.6:
resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9"
integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==
+has-cors@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
+ integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -8786,6 +8829,16 @@ parse5@5.1.1:
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
+parseqs@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
+ integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
+
+parseuri@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
+ integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
+
parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -10977,6 +11030,28 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+socket.io-client@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-3.1.1.tgz#43dfc3feddbb675b274a724f685d6b6af319b3e3"
+ integrity sha512-BLgIuCjI7Sf3mDHunKddX9zKR/pbkP7IACM3sJS3jha+zJ6/pGKRV6Fz5XSBHCfUs9YzT8kYIqNwOOuFNLtnYA==
+ dependencies:
+ "@types/component-emitter" "^1.2.10"
+ backo2 "~1.0.2"
+ component-emitter "~1.3.0"
+ debug "~4.3.1"
+ engine.io-client "~4.1.0"
+ parseuri "0.0.6"
+ socket.io-parser "~4.0.4"
+
+socket.io-parser@~4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0"
+ integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==
+ dependencies:
+ "@types/component-emitter" "^1.2.10"
+ component-emitter "~1.3.0"
+ debug "~4.3.1"
+
sockjs-client@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5"
@@ -12728,6 +12803,11 @@ ws@^7.2.3:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7"
integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
+ws@~7.4.2:
+ version "7.4.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
+ integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
+
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
@@ -12738,6 +12818,11 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+xmlhttprequest-ssl@~1.5.4:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
+ integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
+
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@@ -12812,6 +12897,11 @@ yargs@^15.4.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
+yeast@0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
+ integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"