School Commit Init
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
const net = require('net');
|
||||
|
||||
const BlackjackGame = require('./blackjack_game.js');
|
||||
|
||||
const server = net.createServer((socket) => {
|
||||
// This callback function will be called every time a new client connects to the server
|
||||
console.log('Client connected');
|
||||
const game = new BlackjackGame();
|
||||
// send Start game message to client
|
||||
socket.write('Welcome to Blackjack!\nCommands: \n1. New game\n2. Exit\n');
|
||||
|
||||
// Handle incoming data from the client
|
||||
socket.on('data', (data) => {
|
||||
console.log(`Received data from client: ${data}`);
|
||||
console.log(`Type of data: ${typeof data}`)
|
||||
console.log(`Data to string: ${data.toString()}`)
|
||||
|
||||
// expected data: 1.(start/play again) 1.exit 2.hit 2.stand
|
||||
if (data.toString() === '1') {
|
||||
game.dealInitialHands();
|
||||
const dict = {
|
||||
playerHand: game.playerHand,
|
||||
playerScore: game.getHandValue(game.playerHand),
|
||||
dealerHand: [game.dealerHand[0],'??'],
|
||||
dealerScore: game.getHandValue([game.dealerHand[0]]),
|
||||
winner: null
|
||||
};
|
||||
socket.write(JSON.stringify(dict));
|
||||
}
|
||||
else if (data.toString() === '2') {
|
||||
socket.write('Thank you for playing!');
|
||||
socket.end();
|
||||
}
|
||||
else if (["hit","h"].includes(data.toString()) && game.hasStarted) {
|
||||
game.playerHit();
|
||||
// check if player busts
|
||||
if (game.getHandValue(game.playerHand) > 21) {
|
||||
const json = {
|
||||
playerHand: game.playerHand,
|
||||
playerScore: game.getHandValue(game.playerHand),
|
||||
dealerHand: game.dealerHand,
|
||||
dealerScore: game.getHandValue(game.dealerHand),
|
||||
winner: 'Dealer',
|
||||
};
|
||||
socket.write(JSON.stringify(json));
|
||||
socket.write('Wanna play again?\n1. Yes\n2. No\n');
|
||||
}
|
||||
else{
|
||||
const dict = {
|
||||
playerHand: game.playerHand,
|
||||
playerScore: game.getHandValue(game.playerHand),
|
||||
dealerHand: [game.dealerHand[0],'??'],
|
||||
dealerScore: game.getHandValue([game.dealerHand[0]]),
|
||||
winner: null
|
||||
};
|
||||
socket.write(JSON.stringify(dict));
|
||||
}
|
||||
}
|
||||
else if (["stand","s"].includes(data.toString()) && game.hasStarted) {
|
||||
game.playerStand();
|
||||
const dict = {
|
||||
playerHand: game.playerHand,
|
||||
playerScore: game.getHandValue(game.playerHand),
|
||||
dealerHand: game.dealerHand,
|
||||
dealerScore: game.getHandValue(game.dealerHand),
|
||||
winner: game.determineWinner()
|
||||
};
|
||||
socket.write(JSON.stringify(dict));
|
||||
socket.write('Wanna play again?\n1. Yes\n2. No\n');
|
||||
}
|
||||
else{
|
||||
socket.write(JSON.stringify({error:"Invalid command"}));
|
||||
}
|
||||
});
|
||||
|
||||
// Handle client disconnection
|
||||
socket.on('end', () => {
|
||||
console.log('Client disconnected');
|
||||
});
|
||||
});
|
||||
|
||||
// Start the server and listen on port 3000
|
||||
server.listen(3000, () => {
|
||||
console.log('Server started on port 3000');
|
||||
});
|
||||
Reference in New Issue
Block a user