From 588777af901bfd299d727209d4e590105f6fbb32 Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Thu, 23 Jun 2022 14:07:53 -0700 Subject: [PATCH] Add sheeps Signed-off-by: James Ketrenos --- client/public/assets/gfx/sheep.png | Bin 0 -> 43548 bytes client/src/App.js | 2 + client/src/Bird.js | 4 - client/src/Board.js | 12 ++ client/src/Sheep.css | 12 ++ client/src/Sheep.js | 107 ++++++++++ original/sheep-alpha.xcf | Bin 0 -> 104225 bytes original/sheep.png | Bin 0 -> 43548 bytes server/ai/app.js | 303 +++++++++++++++++++++++++---- server/routes/games.js | 61 ++++-- 10 files changed, 440 insertions(+), 61 deletions(-) create mode 100755 client/public/assets/gfx/sheep.png create mode 100644 client/src/Sheep.css create mode 100644 client/src/Sheep.js create mode 100755 original/sheep-alpha.xcf create mode 100755 original/sheep.png diff --git a/client/public/assets/gfx/sheep.png b/client/public/assets/gfx/sheep.png new file mode 100755 index 0000000000000000000000000000000000000000..ff93c3b222a76edb692d9c9ff2336ed75f626ca3 GIT binary patch literal 43548 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

n&l%5J<(CnfKYZWMf}?+$Im#%tOl%Y2 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 literal 0 HcmV?d00001 diff --git a/client/src/App.js b/client/src/App.js index 839b692..83fc084 100755 --- a/client/src/App.js +++ b/client/src/App.js @@ -28,10 +28,12 @@ import { Winner } from "./Winner.js"; import { HouseRules } from "./HouseRules.js"; import { Dice } from "./Dice.js"; import { assetsPath } from "./Common.js"; +import { Sheep } from "./Sheep.js"; import history from "./history.js"; import "./App.css"; import equal from "fast-deep-equal"; +import { purple } from "@material-ui/core/colors"; /* const Pip = () => {

{ setDirection(Math.floor(birdAngles * newAngle / 360.)); }, [time, setCell, speed, rotation, setDirection]); - useEffect(() => { - - }, [angle]); - return
{ }}/>
; + } else if (tile.type === 'sheep') { + div =
+
; } else { div = { + // Use useRef for mutable variables that we want to persist + // without triggering a re-render on their change + const requestRef = React.useRef(); + + const animate = time => { + callback(time) + requestRef.current = requestAnimationFrame(animate); + } + + React.useEffect(() => { + requestRef.current = requestAnimationFrame(animate); + return () => cancelAnimationFrame(requestRef.current); + }, []); // Make sure the effect runs only once +} + +const Sheep = ({ radius, speed, size, style }) => { + const [time, setTime] = useState(0); + const [direction, setDirection] = useState(Math.random() * 2 * Math.PI); + const [y, setY] = useState((Math.random() - 0.5) * radius); + const [frame, setFrame] = useState(0); + const [x, setX] = useState((Math.random() - 0.5) * radius); + + const previousTimeRef = React.useRef(); + + useAnimationFrame(time => { + if (previousTimeRef.current !== undefined) { + const deltaTime = time - previousTimeRef.current; + previousTimeRef.current = time; + setTime(deltaTime); + } else { + previousTimeRef.current = time; + } + }); + + useEffect(() => { + let alpha = time / speed; + const sheepSpeed = 0.05; + if (alpha > 1.0) { + alpha = 0.1; + } + let newX = x + sheepSpeed * Math.sin(direction) * alpha, + newY = y + sheepSpeed * Math.cos(direction) * alpha; + if (Math.sqrt((newX * newX) + (newY * newY)) > Math.sqrt(radius * radius)) { + let newDirection = direction + Math.PI + 0.5 * (Math.random() - 0.5) * Math.PI; + while (newDirection >= 2 * Math.PI) { + newDirection -= 2 * Math.PI; + } + while (newDirection <= -2 * Math.PI) { + newDirection += 2 * Math.PI; + } + setDirection(newDirection); + newX += sheepSpeed * Math.sin(newDirection) * alpha; + newY += sheepSpeed * Math.cos(newDirection) * alpha; + } + setX(newX); + setY(newY); + setFrame(frame + sheepSteps * alpha); + }, [time, speed, setDirection]); + + const cell = Math.floor(frame) % sheepSteps; + + return
0 ? +1 : -1}, 1)`, + ...style + }} + >
; +}; + + + +const Herd = ({count, style}) => { + const [sheep, setSheep] = useState([]); + useEffect(() => { + const tmp = []; + for (let i = 0; i < count; i++) { + const scalar = Math.random(); + tmp.push() + } + setSheep(tmp); + }, [count, setSheep]); + + return
{ sheep }
; +}; + +export { Sheep, Herd }; diff --git a/original/sheep-alpha.xcf b/original/sheep-alpha.xcf new file mode 100755 index 0000000000000000000000000000000000000000..346169f517122620df34976b4e18c843c427299b GIT binary patch literal 104225 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 literal 0 HcmV?d00001 diff --git a/original/sheep.png b/original/sheep.png new file mode 100755 index 0000000000000000000000000000000000000000..ff93c3b222a76edb692d9c9ff2336ed75f626ca3 GIT binary patch literal 43548 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

n&l%5J<(CnfKYZWMf}?+$Im#%tOl%Y2 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 literal 0 HcmV?d00001 diff --git a/server/ai/app.js b/server/ai/app.js index da5bbff..c7d9206 100644 --- a/server/ai/app.js +++ b/server/ai/app.js @@ -1,5 +1,6 @@ const fetch = require('node-fetch'); const WebSocket = require('ws'); +const fs = require('fs').promises; const version = '0.0.1'; @@ -18,7 +19,7 @@ For example: const server = process.argv[2]; const gameId = process.argv[3]; let session = undefined; -const user = process.argv[4]; +const name = process.argv[4]; const game = {}; @@ -30,19 +31,29 @@ const error = (e) => { const connect = async () => { let loc = new URL(server), new_uri; - const res = await fetch(`${server}/api/v1/games`, { - method: 'GET', - cache: 'no-cache', - credentials: 'same-origin', /* include cookies */ - headers: { - 'Content-Type': 'application/json' + let player; + try { + const data = JSON.parse(await fs.readFile(`${name}.json`, 'utf-8')); + player = data.player; + } catch (_) { + const res = await fetch(`${server}/api/v1/games`, { + method: 'GET', + cache: 'no-cache', + credentials: 'same-origin', /* include cookies */ + headers: { + 'Content-Type': 'application/json' + } + }); + if (!res) { + throw new Error(`Unable to connect to ${server}`); } - }); - if (!res) { - throw new Error(`Unable to connect to ${server}`); - } - const { player } = JSON.parse(await res.text()); + player = JSON.parse(await res.text()).player; + await fs.writeFile(`${name}.json`, JSON.stringify({ + name, + player + })); + } console.log(`Connecting to ${server} as ${player}`); if (loc.protocol === "https:") { @@ -68,52 +79,264 @@ const connect = async () => { resolve(ws); }; + const connection = (ws) => { + console.log("connection request cookie: ", ws.upgradeReq.headers.cookie); + }; + const close = (e) => { console.log(`ws - close`); }; ws.on('open', open); + ws.on('connect', () => { connect(ws); }); ws.on('headers', headers); ws.on('close', close); ws.on('error', error); - ws.on('message', (data) => { message(ws, data) }); + ws.on('message', (data) => { message(ws, data); }); }); }; +const createPlayer = (ws) => { + const send = (data) => { + ws.send(JSON.stringify(data)); + }; + + if (game.name === '') { + send({ type: 'player-name', name }); + return; + } + + if (game.state !== 'lobby') { + return; + } + + if (game.unselected.indexOf(name) === -1) { + return; + } + + const slots = []; + for (let color in game.players) { + if (game.players[color].status === 'Not active') { + slots.push(color); + } + } + if (slots.length === 0) { + return; + } + const index = Math.floor(Math.random() * slots.length); + console.log(`Requesting to play as ${slots[index]}.`); + game.unselected = game.unselected.filter( + color => color === slots[index]); + send({ + type: 'set', + field: 'color', + value: slots[index] + }); + send({ + type: 'chat', + message: `Woohoo! Robot AI ${version} is alive!` + }); +}; + +const tryBuild = (ws) => { + const send = (data) => { + console.log(`ws - send`); + ws.send(JSON.stringify(data)); + }; + let trying = false; + if (game.private.wood + && game.private.brick + && game.private.sheep + && game.private.wheat) { + send({ + type: 'buy-settlement' + }); + trying = true; + } + + if (game.private.wood && game.private.brick) { + send({ + type: 'buy-road' + }); + trying = true; + } + + return trying; +}; + const message = (ws, data) => { + const send = (data) => { + console.log(`ws - send: ${data.type}`); + ws.send(JSON.stringify(data)); + }; + data = JSON.parse(data); switch (data.type) { case 'game-update': + console.log(`ws - receive - `, + Object.assign({}, data.update, { + activities: 'filtered out', + chat: 'filtered out' + }) + ); + Object.assign(game, data.update); - if (game.name === '') { - ws.send(JSON.stringify({ type: 'player-name', name: user })); - } - if (game.state === 'lobby' && game.unselected.indexOf(user) !== -1) { - const slots = []; - for (let color in game.players) { - if (game.players[color].status === 'Not active') { - slots.push(color); + console.log(`state - ${game.state}`); + + switch (game.state) { + case undefined: + case 'lobby': + createPlayer(ws); + break; + + case 'game-order': + if (!game.color) { + console.log(`game-order - player not active`); + return; + } + console.log(`game-order - `, { + color: game.color, + players: game.players + }); + if (!game.players[game.color].orderRoll) { + console.log(`Time to roll as ${game.color}`); + send({ type: 'roll' }); + } + break; + + case 'initial-placement': { + console.log({ color: game.color, state: game.state, turn: game.turn }); + if (game.turn.color !== game.color) { + break; + } + + let index; + const type = game.turn.actions[0]; + if (type === 'place-road') { + console.log({ roads: game.turn.limits.roads }); + index = game.turn.limits.roads[Math.floor( + Math.random() * game.turn.limits.roads.length)]; + } else if (type === 'place-settlement') { + console.log({ corners: game.turn.limits.corners }); + index = game.turn.limits.corners[Math.floor( + Math.random() * game.turn.limits.corners.length)]; + } + console.log(`Selecting ${type} at ${index}`); + send({ + type, index + }); + } break; + + case 'normal': + if (game.turn.color !== game.color) { + return; + } + if (game.turn.actions && game.turn.actions.indexOf('place-road') !== -1) { + index = game.turn.limits.roads[Math.floor( + Math.random() * game.turn.limits.roads.length)]; + send({ + type: 'place-road', index + }); + return; + } + + if (game.turn.actions && game.turn.actions.indexOf('place-settlement') !== -1) { + console.log({ corners: game.turn.limits.corners }); + index = game.turn.limits.corners[Math.floor( + Math.random() * game.turn.limits.corners.length)]; + send({ + type: 'place-settlement', index + }); + return; + } + + if (!game.dice) { + console.log(`Rolling...`); + send({ + type: 'roll' + }); + return; + } + + if (game.private.mustDiscard) { + let mustDiscard = game.private.mustDiscard; + const cards = [], + discards = {}; + const types = ['wheat', 'sheep', 'stone', 'brick', 'wood']; + types.forEach(type => { + for (let i = 0; i < game.private[type]; i++) { + cards.push(type); + } + }); + while (mustDiscard--) { + const type = cards[Math.floor(Math.random() * cards.length)]; + if (!(type in discards)) { + discards[type] = 1; + } else { + discards[type]++; + } + } + console.log(`discarding - `, discards); + send({ + type: 'discard', + discards + }); + return; + } + + if (game.turn.actions + && game.turn.actions.indexOf('place-robber') !== -1) { + console.log({ pips: game.turn.limits.pips }); + const index = game.turn.limits.pips[Math.floor(Math.random() * game.turn.limits.pips.length)]; + console.log(`placing robber - ${index}`) + send({ + type: 'place-robber', + index + }); + return; + } + + if (game.turn.actions && game.turn.actions.indexOf('steal-resource') !== -1) { + const { color } = game.turn.limits.players[Math.floor(Math.random() * game.turn.limits.players.length)]; + console.log(`stealing resouce from ${game.players[color].name}`); + send({ + type: 'steal-resource', + color + }); + return; + } + + if (game.turn.robberInAction) { + console.log({ turn: game.turn }); + } else { + console.log({ + turn: game.turn, + wheat: game.private.wheat, + sheep: game.private.sheep, + stone: game.private.stone, + brick: game.private.brick, + wood: game.private.wood, + }); + if (!tryBuild(ws)) { + send({ + type: 'pass' + }); } } - if (slots.length !== 0) { - const index = Math.floor(Math.random() * slots.length); - console.log(`Requesting to play as ${slots[index]}.`); - game.unselected = game.unselected.filter( - color => color === slots[index]); - ws.send(JSON.stringify({ - type: 'set', - field: 'color', - value: slots[index] - })); - ws.send(JSON.stringify({ - type: 'chat', - message: `Woohoo! Robot AI ${version} is alive!` - })); - } - } + break; + default: + console.log({ state: game.state, turn: game.turn }); + break; + } break; case 'ping': + if (!game.state) { + console.log(`ping received with no game. Sending update request`); + ws.send(JSON.stringify({ + type: 'game-update' + })); + } break; default: @@ -123,14 +346,10 @@ const message = (ws, data) => { } const ai = async (ws) => { - ws.send(JSON.stringify({ - type: 'game-update' - })); } connect().then((ws) => { - ai(ws).then(() => { - }) + ai(ws) .catch((error) => { console.error(error); ws.close(); diff --git a/server/routes/games.js b/server/routes/games.js index 8ec7834..011b4da 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -753,7 +753,7 @@ const canGiveBuilding = (game) => { } } -const adminActions = (game, action, value, query) => { +const adminCommands = (game, action, value, query) => { let color, player, parts, session, corners, error; switch (action) { @@ -962,6 +962,15 @@ const adminActions = (game, action, value, query) => { return; } return `Unable to find active session for ${colorToWord(color)} (${value})`; + case "state": + if (game.state !== 'lobby') { + return `Game already started.`; + } + if (game.active < 2) { + return `Not enough players in game to start.`; + } + game.state = 'game-order'; + break; default: return `Invalid admin action ${action}.`; @@ -1864,7 +1873,7 @@ router.put("/:id/:action/:value?", async (req, res) => { if (req.headers['private-token'] !== req.app.get('admin')) { error = `Invalid admin credentials.`; } else { - error = adminActions(game, action, value, req.query); + error = adminCommands(game, action, value, req.query); } if (!error) { sendGameToPlayers(game); @@ -2500,21 +2509,25 @@ const playCard = (game, session, card) => { const placeSettlement = (game, session, index) => { const player = session.player; index = parseInt(index); + if (game.state !== 'initial-placement' && game.state !== 'normal') { - return `You cannot purchase a development card unless the game is active (${game.state}).`; + return `You cannot place a settlement unless the game is active (${game.state}).`; } + if (session.color !== game.turn.color) { return `It is not your turn! It is ${game.turn.name}'s turn.`; } + /* index out of range... */ if (game.placements.corners[index] === undefined) { return `You have requested to place a settlement illegally!`; } + /* If this is not a valid road in the turn limits, discard it */ - if (game.turn - && game.turn.limits - && game.turn.limits.corners - && game.turn.limits.corners.indexOf(index) === -1) { + if (!game.turn + || !game.turn.limits + || !game.turn.limits.corners + || game.turn.limits.corners.indexOf(index) === -1) { return `You tried to cheat! You should not try to break the rules.`; } const corner = game.placements.corners[index]; @@ -2650,19 +2663,26 @@ const placeRoad = (game, session, index) => { const player = session.player; index = parseInt(index); if (game.state !== 'initial-placement' && game.state !== 'normal') { - return `You cannot purchase a development card unless the game is active (${game.state}).`; + return `You cannot purchase a place a road unless the game is active (${game.state}).`; } + if (session.color !== game.turn.color) { return `It is not your turn! It is ${game.turn.name}'s turn.`; } + /* Valid index location */ if (game.placements.roads[index] === undefined) { return `You have requested to place a road illegally!`; } + /* If this is not a valid road in the turn limits, discard it */ - if (game.turn && game.turn.limits && game.turn.limits.roads && game.turn.limits.roads.indexOf(index) === -1) { + if (!game.turn + || !game.turn.limits + || !game.turn.limits.roads + || game.turn.limits.roads.indexOf(index) === -1) { return `You tried to cheat! You should not try to break the rules.`; } + const road = game.placements.roads[index]; if (road.color) { return `This location already has a road belonging to ${game.players[road.color].name}!`; @@ -2930,6 +2950,9 @@ const discard = (game, session, discards) => { } sum += parseInt(discards[type]); } + if (sum > player.mustDiscard) { + return `You can not discard that many cards! You can only discard ${player.mustDiscard}.`; + } /* if (sum !== player.mustDiscard) { return `You need to discard ${player.mustDiscard} cards.`; @@ -2943,13 +2966,13 @@ const discard = (game, session, discards) => { player.resources -= count; } addChatMessage(game, null, `${session.name} discarded ${sum} resource cards.`); - if (player.mustDiscard) { + if (player.mustDiscard > 0) { addChatMessage(game, null, `${session.name} did not discard enough and must discard ${player.mustDiscard} more cards.`); } let move = true; for (let color in game.players) { - const discard = game.players[color].mustDiscard; + const discard = game.players[color].mustDiscard > 0; if (discard) { move = false; } @@ -3231,11 +3254,15 @@ const placeCity = (game, session, index) => { if (session.color !== game.turn.color) { return `It is not your turn! It is ${game.turn.name}'s turn.`; } + /* Valid index check */ if (game.placements.corners[index] === undefined) { return `You have requested to place a city illegally!`; } /* If this is not a placement the turn limits, discard it */ - if (game.turn && game.turn.limits && game.turn.limits.corners && game.turn.limits.corners.indexOf(index) === -1) { + if (!game.turn + || !game.turn.limits + || !game.turn.limits.corners + || game.turn.limits.corners.indexOf(index) === -1) { return `You tried to cheat! You should not try to break the rules.`; } const corner = game.placements.corners[index]; @@ -4371,11 +4398,15 @@ router.ws("/ws/:id", async (ws, req) => { resetDisconnectCheck(game, req); console.log(`${short}: Game ${id} - WebSocket connect from ${getName(session)}`); - - if (session.keepAlive) { + + /* Send initial ping to initiate communication with client */ + if (!session.keepAlive) { + console.log(`${short}: Sending initial ping`); + ping(session); + } else { clearTimeout(session.keepAlive); + session.keepAlive = setTimeout(() => { ping(session); }, 2500); } - session.keepAlive = setTimeout(() => { ping(session); }, 2500); }); const debugChat = (game, preamble) => {