changes to brain games

master
Thom Page 10 years ago
parent cd76dab902
commit 82435d7842

@ -6,7 +6,6 @@ $(function() {
var $startShuffle = $('#start-shuffle');
var $message = $('#message');
var brainNum = 5;
var gamesPlayed = 0;
var wins = 0;
@ -21,7 +20,7 @@ $(function() {
$message.text('Click Start to give a brain an idea');
$board.html("");
for (var i=0; i < brainNum; i ++) {
for (var i=0; i < 5; i ++) {
var $brain = $('<div>').attr('id', i);
$brain.addClass('brain');
$brain.html('<img src="brain.png"/>');
@ -32,9 +31,7 @@ $(function() {
// run the reset function on window onload
reset();
$startShuffle.click(function() {
console.log('start clicked');
randomBrain = Math.floor(Math.random() * brainNum);
$startShuffle.click(function() {
if (state === "start") {
giveIdea();
} else if (state === "shuffle") {
@ -46,7 +43,7 @@ $(function() {
});
var giveIdea = function() {
console.log('give idea function');
randomBrain = Math.floor(Math.random() * 5);
$('#' + randomBrain).html('<img src="brainlight.png"/>');
$startShuffle.text('SHUFFLE');
$startShuffle.css('background-color', 'coral');
@ -54,24 +51,16 @@ $(function() {
state = "shuffle";
}
// run recursively according to the counter
// run recursively according to the counter, to repeat animations
var counter = 0;
var shuffleBrains = function() {
console.log('shuffle brains function running recursively');
var positions = [];
for (var i=0; i < brainNum; i++) {
positions.push(i);
}
var horizontals = [0, 205, 410, 615, 820, 1025, 1230, 1435];
var $allBrains = $('.brain');
var positions = [0, 1, 2, 3, 4];
var horizontals = [0, 205, 410, 615, 820];
$allBrains.each(function(index, value) {
$('.brain').each(function(index, value) {
var newIndex = positions.splice(Math.floor(Math.random() * positions.length), 1);
$('#' + index).css({transform: 'translate(' + ((newIndex * 205) - horizontals[index]) + 'px)'});
$('#' + index).css({transition: 'all 0.4s ease-in'});
$('#' + index + ' img').css({ animationName: 'brainsize' });
});
@ -97,6 +86,7 @@ $(function() {
} else {
$('#message').text('Not the brain . . . ');
}
$('.brain').off('click', checkBrain);
state = "reset";
$startShuffle.css('display', 'inline-block');
$startShuffle.text('RESET');
@ -106,4 +96,6 @@ $(function() {
$('#wins').text('WINS: ' + wins + ' out of ' + gamesPlayed);
}
}); // end window.onload
}); // end window.onload

@ -1,6 +1,6 @@
<html>
<head>
<title></title>
<title>BRAIN GAME</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>

@ -43,7 +43,8 @@ body {
display: inline-block;
height: auto; width: auto;
margin-left: 5px;
margin-top: 20px;
margin-top: 20px;
transition: all 0.4s ease-in;
}
#wins {

@ -0,0 +1,95 @@
// This is the simple version of brain game. It shuffles only once,
// and does so by setting a class on an element to shift it.
// In this version, there are no ids, and a elements will only
// receive a single class (so there are some workarounds with these restrictions).
$(function() {
console.log('app.js jquery');
var $board = $('#board');
var $startShuffle = $('#start-shuffle');
var $message = $('#message');
// variables declared globally for use in all functions
var randomBrain; var state;
// resets the board, the start button, and the message prompt
var reset = function() {
state = "start";
$startShuffle.text("START");
$startShuffle.css('background-color', 'cadetblue');
$startShuffle.css('color', 'white');
$message.text('Click Start to give a brain an idea');
$board.html("");
for (var i=0; i < 3; i ++) {
var $brain = $('<div>');
$brain.addClass('position' + i);
$brain.html('<img src="brain.png"/>');
$board.append($brain);
}
}
// run the reset function on window onload
reset();
// click handler for the start button,
// changes which function is invoked depending on the stage of the game
$startShuffle.click(function() {
if (state === "start") {
giveIdea();
} else if (state === "shuffle") {
shuffleBrains();
} else if (state === "reset") {
reset();
}
});
// selects a random brain, sets the randomBrain variable, shows the light, and sets the
// state variable for the start button
var giveIdea = function() {
randomBrain = Math.floor(Math.random() * 3);
$('.position' + randomBrain).html('<img src="brainlight.png"/>');
$startShuffle.text('SHUFFLE');
$startShuffle.css('background-color', 'coral');
$message.text("Press SHUFFLE to shuffle the brains");
state = "shuffle";
}
// shuffles the brains on the page
var shuffleBrains = function() {
$('.position' + randomBrain).html('<img src="brain.png"/>');
var positions =[0, 1, 2];
var assigned = false;
// loops over all the brains (the children on the board)
// and gives them a new random position class.
// also sets click events for each.
$board.children().each(function() {
var newPosition = positions.splice(Math.floor(Math.random() * positions.length), 1);
if (!assigned) {
if ($(this).hasClass('position' + randomBrain)) {
randomBrain = newPosition[0];
assigned = true;
}
}
$(this).attr('class', 'position' + newPosition[0]);
$(this).click(checkBrain);
});
}
// checks if the selected brain is the correct one
var checkBrain = function() {
if ($(this).hasClass('position' + randomBrain)) {
$('#message').text("THIS IS THE BRAIN!!!");
$(this).html('<img src="brainlight.png"/>');
} else {
$('#message').text('Not the brain . . . ');
}
state = "reset";
$startShuffle.text('RESET');
$startShuffle.css('background-color', 'black');
$startShuffle.css('color', 'white');
}
}); // end window.onload

@ -15,10 +15,8 @@
<div id="message"></div>
</div>
<div id="board"></div>
<br><br>
<div id="wins">WINS:</div>
<div id="board">
</div>
</div>

@ -3,10 +3,9 @@ body {
}
#container {
width: 1200px;
width: 800px;
height: 440px;
border: 1px solid black;
text-align: center;
margin: 0 auto;
border-radius: 15px;
background-color: ivory;
@ -16,54 +15,46 @@ body {
margin-top: 20px;
}
#start-shuffle {
/* display: inline-block;*/
width: 100px; height: 40px;
margin: 0 auto;
/* margin-left: 5px;
margin-bottom: 5px;*/
text-align: center;
cursor: pointer;
line-height: 40px;
vertical-align: center;
border-radius: 5px;
font-size: 20px;
}
#message {
/* display: inline-block;*/
line-height: 40px;
text-align: center;
}
#board {
min-width: 1200px;
margin-left: 35px;
min-width: 800px;
}
.brain {
display: inline-block;
#board * {
position: absolute;
top: 80px;
left: 90px;
height: auto; width: auto;
margin-left: 5px;
margin-top: 20px;
transition: all 0.4s ease-in;
}
#wins {
margin-top: 100px;
.position0 {
transform: translateX(0px);
}
img {
animation-duration: 0.5s;
animation-iteration-count: 10;
.position1 {
transform: translateX(250px);
}
@keyframes brainsize {
0% { transform: scale(1); }
50% { transform: scale(0.6) translateY(200px); }
100% { transform: scale(1); }
.position2 {
transform: translateX(500px);
}
#start-shuffle {
width: 100px; height: 40px;
margin: 0 auto;
text-align: center;
cursor: pointer;
line-height: 40px;
vertical-align: center;
border-radius: 5px;
font-size: 20px;
}

@ -1,109 +0,0 @@
$(function() {
console.log('app.js jquery');
var $board = $('#board');
var $startShuffle = $('#start-shuffle');
var $message = $('#message');
var brainNum = 5;
var gamesPlayed = 0;
var wins = 0;
var randomBrain;
var state;
var reset = function() {
state = "start";
$startShuffle.text("START");
$startShuffle.css('background-color', 'cadetblue');
$startShuffle.css('color', 'white');
$message.text('Click Start to give a brain an idea');
$board.html("");
for (var i=0; i < brainNum; i ++) {
var $brain = $('<div>').attr('id', i);
$brain.addClass('brain');
$brain.html('<img src="brain.png"/>');
$board.append($brain);
}
}
// run the reset function on window onload
reset();
$startShuffle.click(function() {
console.log('start clicked');
randomBrain = Math.floor(Math.random() * brainNum);
if (state === "start") {
giveIdea();
} else if (state === "shuffle") {
$('#' + randomBrain).html('<img src="brain.png"/>');
shuffleBrains();
} else if (state === "reset") {
reset();
}
});
var giveIdea = function() {
console.log('give idea function');
$('#' + randomBrain).html('<img src="brainlight.png"/>');
$startShuffle.text('SHUFFLE');
$startShuffle.css('background-color', 'coral');
$message.text("Press SHUFFLE to shuffle the brains");
state = "shuffle";
}
// run recursively according to the counter
var counter = 0;
var shuffleBrains = function() {
console.log('shuffle brains function running recursively');
var positions = [];
for (var i=0; i < brainNum; i++) {
positions.push(i);
}
var horizontals = [0, 205, 410, 615, 820, 1025, 1230, 1435];
var $allBrains = $('.brain');
$allBrains.each(function(index, value) {
var newIndex = positions.splice(Math.floor(Math.random() * positions.length), 1);
$('#' + index).css({transform: 'translate(' + ((newIndex * 205) - horizontals[index]) + 'px)'});
$('#' + index).css({transition: 'all 0.4s ease-in'});
$('#' + index + ' img').css({ animationName: 'brainsize' });
});
var brainLoop = setTimeout(shuffleBrains, 501);
counter++;
if (counter == 10) {
clearTimeout(brainLoop);
counter = 0;
$message.text('Click on the brain you think is right!');
$startShuffle.html('<img src="braincon.png"/>');
$startShuffle.css('background-color', 'ivory');
$('.brain').click(checkBrain);
}
}
var checkBrain = function() {
if ($(this).is('#' + randomBrain)) {
$('#message').text("THIS IS THE BRAIN!!!");
$('#' + randomBrain).html('<img src="brainlight.png"/>');
wins++;
} else {
$('#message').text('Not the brain . . . ');
}
state = "reset";
$startShuffle.css('display', 'inline-block');
$startShuffle.text('RESET');
$startShuffle.css('background-color', 'black');
$startShuffle.css('color', 'white');
gamesPlayed++
$('#wins').text('WINS: ' + wins + ' out of ' + gamesPlayed);
}
}); // end window.onload
Loading…
Cancel
Save