Added timing for waiting for players, **needs to be tested**
This commit is contained in:
parent
fc47d8e011
commit
8de47f046a
@ -1,2 +1,52 @@
|
|||||||
# Coexistence
|
https://2.bp.blogspot.com/cxXexDVzE2xj4NuMUX3xMVPzMq_B8eYWyl0jmmrJxHU=m18
|
||||||
A game coded in the script of java.
|
https://2.bp.blogspot.com/V7u4hi20B4Oab1F6ZJiODTvSBd7tKHlz7JnDsk0RjwU=m22
|
||||||
|
https://2.bp.blogspot.com/Ko-jUtDzIxUP8biiR8RrhZl1qg7SRxdecwDUH5bXeLw=m22
|
||||||
|
https://2.bp.blogspot.com/tSLFsujej1XC9ddfotku1VjFVNEsD_TWpCV7M9U4MW4=m22
|
||||||
|
https://2.bp.blogspot.com/WoxW-YsqbBfYSmd5xeFcThJXqZ1z488mNO-3sTjC0LQ=m22
|
||||||
|
https://2.bp.blogspot.com/yg1iLWiGf-_lVo8pk9nG5ZwGIiExd8AVDCpX0HrpgOQ=m22
|
||||||
|
https://2.bp.blogspot.com/U5sZruL8lfj7Ivd8UojbQEFadRm0fk3Tw0qdUEi350k=m22
|
||||||
|
https://2.bp.blogspot.com/1MTIE6NhCg-tFcEsIHap0uwLOsyZwgeQ_vweWh9gIRA=m22
|
||||||
|
https://2.bp.blogspot.com/dVgcDiAvxvyLbdsbSrhKgfJXeYkfTbDU12x_kN0qUN0=m22
|
||||||
|
https://2.bp.blogspot.com/gPr4QsZIzRTeJ_L8DTcv0xukfZXaV5LSViGNelkPw9A=m22
|
||||||
|
https://2.bp.blogspot.com/l3T6_kuUfVNaKEfuedi3iuq3iWynpJI97UJ8Al1JX8Y=m22
|
||||||
|
https://2.bp.blogspot.com/e8upEkOCAULZr4-P32p8F31U2SGq0XWrNLUAN_oKfsg=m22
|
||||||
|
https://2.bp.blogspot.com/Jf48N7nJlgInsdvCgw9m94MQVfrJ4N9TeFrDMWaLZvQ=m22
|
||||||
|
https://2.bp.blogspot.com/Z1yVSHbcuUn_Kv3TxeantF-KvdfIoCOO6RVfAn7CYTc=m22
|
||||||
|
https://2.bp.blogspot.com/m6Tai6LkKupOsSHDPyp9oV9AIHk9yx94liE-9kKBPMA=m22
|
||||||
|
https://2.bp.blogspot.com/zSEUSYfpIfdvCcCGMR4R6OYXU7FcwvYv4QOc5vslT-U=m22
|
||||||
|
https://2.bp.blogspot.com/KaO4MThxGlOYuzj1vLphA1JZYz56nC2sFNBuATqu6fA=m22
|
||||||
|
https://2.bp.blogspot.com/eNGbPk6ihW2Cl07jAH5yPumBTvrSfM4XnYskZGTNnRg=m22
|
||||||
|
https://2.bp.blogspot.com/rvJyVeoix3bjnOVJCGQ0aBGNN7ispIsazmU11zj7ZMs=m22
|
||||||
|
https://2.bp.blogspot.com/gRH7aEuXv572QQ3wZHKfE_w5X3eMzU82aBZi8LqqEEg=m22
|
||||||
|
https://2.bp.blogspot.com/cQv6LpOrlL5ythg5mIGgxyPhd0OZ8m1qtmB96fvin-I=m22
|
||||||
|
https://2.bp.blogspot.com/_ELQwWMqp7YMBmX12nqPZnIJPeBFtRTsB1pGgXEVc1Y=m22
|
||||||
|
https://2.bp.blogspot.com/AC3zHiYri3JbaamvY2MLEZQsdqtTObcCJ1M0JNds41c=m22
|
||||||
|
https://2.bp.blogspot.com/-ZmPc_RJDxfWqq8HJKbi4xWsy0Aq9bzPI_zw93nL1H0=m22
|
||||||
|
https://2.bp.blogspot.com/zYMofYVxV3ymkG8MMJBtIYrIUPZXErUdZnlCC5VQTzM=m22
|
||||||
|
https://2.bp.blogspot.com/JKZhBwOIIip7vfjmNfiae8plgC_4zHTguCjeiT7q2TA=m22
|
||||||
|
https://2.bp.blogspot.com/WsknaIaaBYinjwbwRb32HitkN8cl1uUAvql8vD4_UuQ=m22
|
||||||
|
https://2.bp.blogspot.com/fiL5p6ztX_bka4JpGU7N-aFHUH9TeKX9yQJNK95Zc4A=m22
|
||||||
|
https://2.bp.blogspot.com/Z9jbLvVwW5cBFkix4fj5DWKMw8zkvpjMv26lTWDkLQw=m22
|
||||||
|
https://2.bp.blogspot.com/etUBNrqd_zOam6_DEe1WglftjBw55WN3ip_eG9fqebM=m22
|
||||||
|
https://2.bp.blogspot.com/xb23jj_9SQmWWpf8P2E3aZZJCauC8QOODs8LKUMMJz8=m22
|
||||||
|
https://2.bp.blogspot.com/ciAJd3d5fI0xcCc5cV4cKcP0D9sBHD1MXgygzgD5L5E=m22
|
||||||
|
https://2.bp.blogspot.com/IKq8ziQ-ousawwHPoiGVylP-mWwS-qKXeb4nHtjFSfw=m22
|
||||||
|
https://2.bp.blogspot.com/G2E-xc82LlVthF7L-PHVjE1Z0ic2NEC_gEdgf3FfWcE=m22
|
||||||
|
https://2.bp.blogspot.com/ZKAteoSBQ25zjz7deJlQ2-zAZKuEzbNKU5vDH6kXTSk=m22
|
||||||
|
https://2.bp.blogspot.com/ykGs4IQVvgqg4YBvQyQjQ-aJzqAfIjuG1YcSm-DyoHY=m22
|
||||||
|
https://2.bp.blogspot.com/LSqqKmwBYNG8jbq1zx84bQxlF2rXBUVSs6FhnxiqkIg=m22
|
||||||
|
https://2.bp.blogspot.com/yhXPh6lzS0T2JyiDoeFitNazy6cv_SGSlOxv331AWaA=m22
|
||||||
|
https://2.bp.blogspot.com/C2nVVVRBG-AS19HBkV5t13FnMv2d3xF0oBlRmNu3ios=m22
|
||||||
|
https://2.bp.blogspot.com/vUN9COlZGlaIrMN7EF5Jcf-qBLJKsml08aAOI5VOclY=m22
|
||||||
|
https://2.bp.blogspot.com/VKmToLrPJB9TVHxtFH5MdWOdK6LcTgo1oWszTwOX4OI=m22
|
||||||
|
https://2.bp.blogspot.com/1TuBeP7KjpluSl2rjLT7n-a2uPZNsu8d54A31fxUxUs=m22
|
||||||
|
https://2.bp.blogspot.com/7qzyMUoSE-JU9uMCpSRWAiazLDgvsj7E4gyzKGaU6fE=m22
|
||||||
|
https://2.bp.blogspot.com/YZNKmsQX56vePVD-emcNyw4CUUHmARP9D_tBIrqpjCs=m22
|
||||||
|
https://2.bp.blogspot.com/OwyEdn57VgRC2kQrd25KCm2-zd2Q5LvPPU3EIiOLhLg=m22
|
||||||
|
https://2.bp.blogspot.com/xS2-IHwrSz6lxM_A6AYoxt_zQuXP4QggkFcl7rdAk6Q=m22
|
||||||
|
https://2.bp.blogspot.com/s00Qmathj2FNoE4jX6hYaJPLgYTxyAXuIiJ6p08kKRQ=m22
|
||||||
|
https://2.bp.blogspot.com/KlBVQPTnngtLAUJuOhm9vWkv4v6Wl_xLoTIhzbB5xY8=m22
|
||||||
|
https://2.bp.blogspot.com/F4xupjEI7hOcYrJBTgPXT2w1jfoj45M280_iL8sn7MY=m22
|
||||||
|
https://2.bp.blogspot.com/mg_s4ALkIfm4ZQr2GX_wMiFFRAUiFqyZT7qpp4CbTfo=m22
|
||||||
|
https://2.bp.blogspot.com/XD-Sz5cmjP3DMFIzKD5pjLmfgJ7K1k5yJ5AYkN5O_6U=m22
|
||||||
|
https://2.bp.blogspot.com/upOsaiCucr5AUuYQJRdH3_rXIlY9aDZQYRuk2dT-3GM=m18
|
||||||
@ -1,11 +1,15 @@
|
|||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask import render_template, jsonify, request
|
from flask import render_template, jsonify, request
|
||||||
|
from time import sleep
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
# Since only one game for now, this is the object that will hold the data for the game
|
# Since only one game for now, this is the object that will hold the data for the game
|
||||||
game = {}
|
game = {}
|
||||||
color = 0
|
color = 0
|
||||||
vertical = 0
|
vertical = 0
|
||||||
|
playersInGame = []
|
||||||
|
maxPlayers = 10
|
||||||
|
timeLeft = 10 + 1
|
||||||
|
|
||||||
# Renders client
|
# Renders client
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
@ -46,6 +50,34 @@ def update_game():
|
|||||||
# Return the game with the information you added, in addition to everyone else
|
# Return the game with the information you added, in addition to everyone else
|
||||||
return jsonify(game)
|
return jsonify(game)
|
||||||
|
|
||||||
|
@app.route('/pregame', methods=['GET','POST','EXIT','COUNT'])
|
||||||
|
def update_players():
|
||||||
|
|
||||||
|
if method.request == 'GET':
|
||||||
|
return jsonify(len(playersInGame))
|
||||||
|
if method.request == 'POST':
|
||||||
|
#Define the data given by client.
|
||||||
|
uuid4 = request.get_json(force=True)
|
||||||
|
# If this client has not already registered with the server, register.
|
||||||
|
if uuid4 not in playersInGame:
|
||||||
|
playersInGame.append(uuid4)
|
||||||
|
|
||||||
|
if method.request == 'EXIT':
|
||||||
|
#Define the data given by client.
|
||||||
|
uuid4 = request.get_json(force=True)
|
||||||
|
playersInGame.remove(uuid4)
|
||||||
|
|
||||||
|
if method.request == 'COUNT':
|
||||||
|
countdown()
|
||||||
|
return timeLeft
|
||||||
|
|
||||||
|
def countdown():
|
||||||
|
timeLeft = timeLeft - 1
|
||||||
|
time.sleep(1)
|
||||||
|
if len(playersInGame) != maxPlayers:
|
||||||
|
timeLeft = 11
|
||||||
|
else:
|
||||||
|
countdown()
|
||||||
|
|
||||||
# Eventual more than one game can be played on website
|
# Eventual more than one game can be played on website
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,8 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
@ -42,19 +42,30 @@ td {
|
|||||||
margin-left:5%;
|
margin-left:5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scoreboard {
|
.scoreboard, .spectator {
|
||||||
font-family: Lato;
|
font-family: Lato;
|
||||||
font-size: 20px;
|
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
padding: 5px 10px 5px 10px;
|
|
||||||
margin-left: 45%;
|
|
||||||
margin-right: 45%;
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scoreboard {
|
||||||
|
padding: 5px 10px 5px 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
margin-left: 45%;
|
||||||
|
margin-right: 45%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spectator {
|
||||||
|
padding: 10px 15px 10px 15px;
|
||||||
|
font-size: 50px;
|
||||||
|
margin-left: 86%;
|
||||||
|
margin-right: 1%;
|
||||||
|
margin-top: 45%;
|
||||||
|
}
|
||||||
|
|
||||||
#redscore {
|
#redscore {
|
||||||
color: #E62E2E;
|
color: #E62E2E;
|
||||||
background-color: #E62E2E;
|
background-color: #E62E2E;
|
||||||
|
|||||||
@ -8,9 +8,12 @@ var username;
|
|||||||
var playerColor;
|
var playerColor;
|
||||||
var claimColor;
|
var claimColor;
|
||||||
var turn = 0;
|
var turn = 0;
|
||||||
|
var spectatorChoose = 1;
|
||||||
var spectatedUser;
|
var spectatedUser;
|
||||||
|
var numberOfPlayers;
|
||||||
|
var canMove = false;
|
||||||
// Colors
|
// Colors
|
||||||
var playerColors = {
|
var playerColors = {s
|
||||||
"red": "#E62E2E",
|
"red": "#E62E2E",
|
||||||
"blue": "#4343D8"
|
"blue": "#4343D8"
|
||||||
};
|
};
|
||||||
@ -30,10 +33,7 @@ document.getElementsByClassName('play')[0].onclick = function startGame() {
|
|||||||
|
|
||||||
username = uuid4();
|
username = uuid4();
|
||||||
spectatedUser = username;
|
spectatedUser = username;
|
||||||
//*********************
|
getInitial();
|
||||||
// TODO Get from server
|
|
||||||
//*********************
|
|
||||||
getInitial()
|
|
||||||
|
|
||||||
// TODO IP Handling, most likely not necessary
|
// TODO IP Handling, most likely not necessary
|
||||||
|
|
||||||
@ -44,14 +44,13 @@ document.getElementsByClassName('play')[0].onclick = function startGame() {
|
|||||||
createTable();
|
createTable();
|
||||||
// Update score before creating player so scoreboard starts at 0
|
// Update score before creating player so scoreboard starts at 0
|
||||||
updateScore();
|
updateScore();
|
||||||
createPlayer();
|
waitForPlayers();
|
||||||
autoScroll('start');
|
|
||||||
document.onkeydown = movePlayer;
|
document.onkeydown = movePlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getInitial() {
|
function getInitial() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'http://127.0.0.1:5000/game',
|
url: 'http://127.0.0.1:5000/pregame',
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
async: false,
|
async: false,
|
||||||
// data: '',
|
// data: '',
|
||||||
@ -112,6 +111,69 @@ function serverTransfer(coordinate,team,turn,username) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function waitForPlayers(uuid4) {
|
||||||
|
timer = setTimeout(function() {
|
||||||
|
// Sending "I'm here."
|
||||||
|
$.ajax({
|
||||||
|
url: 'http://127.0.0.1:5000/pregame',
|
||||||
|
type: 'GET',
|
||||||
|
async: false,
|
||||||
|
// data: '',
|
||||||
|
success: function(data) {
|
||||||
|
//called when successful
|
||||||
|
numberOfPlayers = data
|
||||||
|
if (numberOfPlayers == '10') {
|
||||||
|
countdown();
|
||||||
|
// try catch delete table for visuals later.
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(e) {
|
||||||
|
//called when there is an error
|
||||||
|
//(e.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(
|
||||||
|
function sendhere() {
|
||||||
|
$.ajax('http://127.0.0.1:5000/pregame', {
|
||||||
|
method: 'POST',
|
||||||
|
type : "POST",
|
||||||
|
data: JSON.stringify(uuid4, null, '\t'),
|
||||||
|
async: false,
|
||||||
|
dataType: "json",
|
||||||
|
contentType: 'application/json;charset=UTF-8'
|
||||||
|
})
|
||||||
|
.then(
|
||||||
|
waitForPlayers();
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}, 3000)
|
||||||
|
}
|
||||||
|
|
||||||
|
function countdown() {
|
||||||
|
$.ajax({
|
||||||
|
url: 'http://127.0.0.1:5000/pregame',
|
||||||
|
type: 'COUNT',
|
||||||
|
async: false,
|
||||||
|
success: function(data) {
|
||||||
|
//called when successful
|
||||||
|
timeLeft = data;
|
||||||
|
//MAKE VISUAL STUFF HERE
|
||||||
|
countdown()
|
||||||
|
if(timeLeft == 0) {
|
||||||
|
createPlayer();
|
||||||
|
autoScroll('start');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function(e) {
|
||||||
|
//called when there is an error
|
||||||
|
//(e.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
// CREATION
|
// CREATION
|
||||||
|
|
||||||
// Creation of Table
|
// Creation of Table
|
||||||
@ -233,25 +295,27 @@ function movement(x,y) {
|
|||||||
|
|
||||||
function movePlayer(e) {
|
function movePlayer(e) {
|
||||||
|
|
||||||
e = e || window.event;
|
if (canMove) {
|
||||||
|
e = e || window.event;
|
||||||
|
|
||||||
if (e.keyCode === 38 && type != "up") {
|
if (e.keyCode === 38 && type != "up") {
|
||||||
type = "up";
|
type = "up";
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
movement(0,-1);
|
movement(0,-1);
|
||||||
} else if (e.keyCode === 40 && type != "down") {
|
} else if (e.keyCode === 40 && type != "down") {
|
||||||
type = "down";
|
type = "down";
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
movement(0,1);
|
movement(0,1);
|
||||||
} else if (e.keyCode === 37 && type != "left") {
|
} else if (e.keyCode === 37 && type != "left") {
|
||||||
type = "left"
|
type = "left"
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
movement(-1,0);
|
movement(-1,0);
|
||||||
} else if (e.keyCode === 39 && type != "right") {
|
} else if (e.keyCode === 39 && type != "right") {
|
||||||
type = "right"
|
type = "right"
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
movement(1,0);
|
movement(1,0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function killPlayer(coordinate, team) {
|
function killPlayer(coordinate, team) {
|
||||||
if (playerTeam != "spectator") {
|
if (playerTeam != "spectator") {
|
||||||
@ -264,13 +328,33 @@ function killPlayer(coordinate, team) {
|
|||||||
spectatorMode();
|
spectatorMode();
|
||||||
serverTransfer(coordinate,team,turn,username);
|
serverTransfer(coordinate,team,turn,username);
|
||||||
}
|
}
|
||||||
|
|
||||||
function spectatorMode() {
|
function spectatorMode() {
|
||||||
//***************************
|
|
||||||
// TODO Finish Spectator Mode
|
|
||||||
//***************************
|
|
||||||
playerCoordinate = null;
|
playerCoordinate = null;
|
||||||
playerTeam = 'spectator';
|
playerTeam = 'spectator';
|
||||||
|
document.getElementsByClassName('spectator')[0].style.opacity = 0.7;
|
||||||
|
spectatorType = 'spectatorFull';
|
||||||
|
spectatorFull();
|
||||||
|
document.getElementsByClassName('spectator')[0].onclick = function changeText() {
|
||||||
|
spectatorChoose = spectatorChoose * (-1);
|
||||||
|
if(spectatorChoose == -1) {
|
||||||
|
document.getElementsByClassName('spectator')[0].childNodes[0].childNodes[0].nodeValue = "Following";
|
||||||
|
spectatorType = 'spectatorFollow';
|
||||||
|
document.getElementsByTagName('body')[0].style.overflow = "hidden";
|
||||||
|
} else {
|
||||||
|
document.getElementsByClassName('spectator')[0].childNodes[0].childNodes[0].nodeValue = "Full View";
|
||||||
|
spectatorType = 'spectatorFull';
|
||||||
|
spectatorFull();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function spectatorFull() {
|
||||||
|
for(var i = 0; i < document.getElementsByTagName('td').length;i++) {
|
||||||
|
document.getElementsByTagName('body')[0].style.overflow = "auto";
|
||||||
|
document.getElementsByTagName('td')[i].style.minWidth = "75px";
|
||||||
|
document.getElementsByTagName('td')[i].style.height = "75px";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function autoScroll(type) {
|
function autoScroll(type) {
|
||||||
center = [
|
center = [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user