/    Sign up×
Community /Pin to ProfileBookmark

Research about Randomising , need assistance here.

I’m currently doing some research about random number ,
my plan is to create a table which lay ten mines everytime i refresh it,
i try a lot of different way to fix bugs ,
but it still not able to lay ten mines every times.
I realize i miss “end if” , “end while”,
but when we put it in the code the function will stop working.

My current code looks like this:
[B]
<script type=”text/javascript”>
function addmines (x) {
var n = 10; //number of mines
var mines = []; //an empty array
while (n>0) {
var row = Math.floor(1+Math.random()*10);
var col = Math.floor(1+Math.random()*
10);

if (row >= 0 && row < 10){
if (col >= 0 && col < 10) {
var id = “r”+ row + “c” + col;

n++;

var a = document.createElement(“img”);
a.src = “mine32.gif”;
a.height = 30;
a.width = 30;
document.getElementById(id).appendChild(a);

}
}

//n++;

}
return x;
}

</script>

</head>

<body>
<h1>Minesweeper</h1>

<script language=”JavaScript” type=”text/javascript”>

//Creates Table
document.write(‘<table>’);
//for loop that creates the row, increments from 0 to 9 each time it reiterates
for (var row=0; row<9; row++) {
//creates the table row
document.write(‘<tr>’);
//a nested for loop that reiterates 9 times creating the <td>’s and then exits to the parent for loop.
for (var col=0; col<9; col++) {
//references all the <td>’s with a specific id attribute.
document.write(‘<td id=”r’, row, ‘c’, col, ‘”>’);
//document.write(‘&nbsp;’);
//closes the <td>
document.write(‘</td>’);
}
//closes the <tr> or row in plain English
document.write(‘</tr>’);
}
//closes the <table> tag
document.write(‘</table>’);

addmines();

</script>[/B]

to post a comment
JavaScript

2 Comments(s)

Copy linkTweet thisAlerts:
@wbportJan 03.2013 — I think you don't need to add 1 to your random number to keep it in the range 0-9.

var row = Math.floor([COLOR="#FF0000"]1+[/COLOR]Math.random()*10);

You might want to pick 10 random numbers from 0-99 and use those to determine the coordinates of your mines instead.
[CODE]
var deck = new Array(), shuffle = new Array();
for (var i= 0; i < 100; i++)
deck[i] = i;
for (i=99; i > -1; i--) {
var r = Math.floor(Math.random() * i); // Pick one from those remaining
shuffle[i] = deck[r];
deck[r] = deck[i]; // Move last of those remaining to slot just chosen
}[/CODE]

From the first ten items in shuffle, do a floor of a [B]/ 10[/B] as well as a [B]% 10[/B] to get the coordinates.
Copy linkTweet thisAlerts:
@anson920520authorJan 03.2013 — The funny thing is when I remove the 1+ my Firefox crush
×

Success!

Help @anson920520 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.19,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...