diff --git a/frontend/src/Blackjack/Player.js b/frontend/src/Blackjack/Player.js
new file mode 100644
index 0000000..9a491aa
--- /dev/null
+++ b/frontend/src/Blackjack/Player.js
@@ -0,0 +1,39 @@
+import React from "react";
+import Card from "./Card";
+
+class Player extends React.Component {
+ constructor() {
+ reset();
+ this.state = {
+ currentGrab: undefined,
+ currentTotal: 0,
+ previouscards: []
+ };
+ }
+ reset() {
+ this.setState(({ round }) => ({
+ previouscards: [],
+ currentTotal: 0
+ }));
+ }
+ render() {
+ return (
+
+
+ {previouscards.map((card, index) => {
+ return ;
+ })}
+
+ {currentGrab && (
+
+ )}
+
{JSON.stringify(currentGrab || {})}
+
+ Total score: {this.state.currentTotal}
+
+ Game status: {this.state.gameStatus}
+
+
+ );
+ }
+}
diff --git a/frontend/src/Blackjack/index.js b/frontend/src/Blackjack/index.js
index 3d8280a..42f481b 100644
--- a/frontend/src/Blackjack/index.js
+++ b/frontend/src/Blackjack/index.js
@@ -1,81 +1,67 @@
-import React from 'react';
-import Deck from './Deck';
-import Card from './Card';
-//import { bindExpression } from '@babel/types';
+import React from "react";
+import Deck from "./Deck";
+import Player from "./Player";
class Blackjack extends React.Component {
- constructor(props) {
- super(props);
+ constructor(props) {
+ super(props);
- this.state = {
- currentGrab: undefined,
- currentTotal: 0,
- gameStatus: 'playing',
- previouscards: [],
- round: 0
- };
+ this.state = {
+ gameStatus: "playing",
+ round: 0,
+ players: [new Player(), new Player()]
+ };
- this.onGrab = this.onGrab.bind(this);
- }
+ this.onGrab = this.onGrab.bind(this);
+ }
- onGrab(card) {
- let { currentTotal, gameStatus, previouscards } = this.state;
- let valueToAdd;
- if (card && gameStatus === 'playing') {
- if (card.card === 0 && ((card.value + currentTotal) > 21)) {
- valueToAdd = 1;
- } else {
- valueToAdd = card.value;
- }
+ onGrab(card) {
+ let { currentTotal, gameStatus, previouscards } = this.state;
+ let valueToAdd;
+ if (card && gameStatus === "playing") {
+ if (card.card === 0 && card.value + currentTotal > 21) {
+ valueToAdd = 1;
+ } else {
+ valueToAdd = card.value;
+ }
- currentTotal += valueToAdd;
- this.setState({ currentGrab: card, currentTotal: currentTotal });
- previouscards.push(card);
- if (currentTotal === 21) {
- this.setState({ gameStatus: 'win' });
- } else if (currentTotal > 21) {
- this.setState({ gameStatus: 'lose' });
- }
- }
+ currentTotal += valueToAdd;
+ this.setState({ currentGrab: card, currentTotal: currentTotal });
+ previouscards.push(card);
+ if (currentTotal === 21) {
+ this.setState({ gameStatus: "win" });
+ } else if (currentTotal > 21) {
+ this.setState({ gameStatus: "lose" });
+ }
}
+ }
- startNewRound(){
- this.setState(({round}) => ({
- previouscards: [],
- currentTotal: 0,
- gameStatus: 'playing',
- round: round + 1
- }));
- }
+ startNewRound() {
+ this.setState(({ round }) => ({
+ gameStatus: "playing",
+ round: round + 1
+ }));
+ }
- render() {
- let { currentGrab, gameStatus, previouscards, round } = this.state;
- return (
-
-
-
-
-
-
-
-
- {previouscards.map((card, index) => {
- return
- })}
-
-
- {currentGrab && }
- {
- JSON.stringify(currentGrab || {})
- }
-
- Total score: {this.state.currentTotal}
-
Game status: {this.state.gameStatus}
-
-
-
- )
- }
+ render() {
+ let { gameStatus, players, round } = this.state;
+ return (
+
+
+
+
+
+
+
+
+ {players.map((card, index) => {
+ return
;
+ })}
+
+
+
+ );
+ }
}
-export default Blackjack;
\ No newline at end of file
+export default Blackjack;