Hi,
I have been creating a round robin. This is similar idea to speed dating except everyone has to talk to everyone.
Whilst I have been able to create this, there is a lot of repetition in my code and I wondering if any of you have recommendations for removing some of that, particularly around the push and pops. The code below I tested within the js.do website.
I will add the output below the code, so you get an idea of what this looks like.
Any help will be appreciated.
<p style="line-height: 18px; font-size: 18px; font-family: times;">
<br>
Round robbin<br><br>
<script>
var poslow = [1,2,3,4,5,6];
var poshigh = [7,8,9,10,11,12];
// this function displays all the positions on the screen aligned
// in two rows one row has 1-6 the opposite row has 7-12
function calculate()
{
for( j=0, k=0; j < poslow.length, k < poshigh.length; j++,k++)
{
document.write('<p style="color:blue;">'+poslow[j]+" "+poshigh[k]+'</p>');
}
}
// the first round is the default, this is where everyone starts out
document.write('<p style="color:red;">'+'round 1 </p>'+"<br/>");
calculate();
// displays second round
document.write('<p style="color:red;">'+'round 2 </p>'+"<br/>");
// for the second round the 7 is taken off the begining
// of the second row and added to the beggining of the first.
// the 6 is taken off of the end of the first row and added
// to the end of the second row.
poshigh.shift();
poslow.pop();
poslow.unshift(7);
poshigh.push(6);
calculate();
// same principle for the rest of these apart from the numbers change
// according to the round and what is at the end and beginning of the rows
document.write('<p style="color:red;">'+'round 3 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(8);
poshigh.push(5);
calculate();
document.write('<p style="color:red;">'+'round 4 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(9);
poshigh.push(4);
calculate();
document.write('<p style="color:red;">'+'round 5 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(10);
poshigh.push(3);
calculate();
document.write('<p style="color:red;">'+'round 6 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(11);
poshigh.push(2);
calculate();
document.write('<p style="color:red;">'+'round 7 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(12);
poshigh.push(1);
calculate();
document.write('<p style="color:red;">'+'round 8 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(6);
poshigh.push(7);
calculate();
document.write('<p style="color:red;">'+'round 9 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(5);
poshigh.push(8);
calculate();
document.write('<p style="color:red;">'+'round 10 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(4);
poshigh.push(9);
calculate();
document.write('<p style="color:red;">'+'round 11 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(3);
poshigh.push(10);
calculate();
document.write('<p style="color:red;">'+'round 12 </p>'+"<br/>");
poshigh.shift();
poslow.pop();
poslow.unshift(2);
poshigh.push(11);
calculate();
</script>
Output
round 1
1 7
2 8
3 9
4 10
5 11
6 12
round 2
7 8
1 9
2 10
3 11
4 12
5 6
round 3
8 9
7 10
1 11
2 12
3 6
4 5
round 4
9 10
8 11
7 12
1 6
2 5
3 4
round 5
10 11
9 12
8 6
7 5
1 4
2 3
round 6
11 12
10 6
9 5
8 4
7 3
1 2
round 7
12 6
11 5
10 4
9 3
8 2
7 1
round 8
6 5
12 4
11 3
10 2
9 1
8 7
round 9
5 4
6 3
12 2
11 1
10 7
9 8
round 10
4 3
5 2
6 1
12 7
11 8
10 9
round 11
3 2
4 1
5 7
6 8
12 9
11 10
round 12
2 1
3 7
4 8
5 9
6 10
12 11
Thanks.