This BB Code uses Javascript to shuffle the alpha-numeric and some special characters in a block of text. This can be used to create 'puzzles' for your members or perhaps provide answers to questions that aren't immediately apparent should someone accidentally glance at them. The use is of course up to you.
I found this Javascrpt already created on the web and have left the copyright info in tact. I made minor changes to adapt it to a BB Code.
Title: Random (Shuffle) Text
BB Code Tag Name: ran
Replacement:
Code:
<script type="text/javascript">
function str_shuffle (str) {
// Shuffles string. One permutation of all possible is created
//
// version: 1006.1915
// discuss at: http://phpjs.org/functions/str_shuffle
// + original by: Brett Zamir (http://brett-zamir.me)
// * example 1: shuffled = str_shuffle("abcdef");
// * results 1: shuffled.length == 6
if (str == undefined) {
throw 'Wrong parameter count for str_shuffle()';
}
var getRandomInt = function (max) {
return Math.floor(Math.random() * (max + 1));
}
var newStr = '', rand = 0;
while (str.length) {
rand = getRandomInt(str.length-1);
newStr += str.charAt(rand);
str = str.substring(0, rand)+str.substr(rand+1);
}
return newStr;
}
</script>
<script>
document.write(str_shuffle("{param}"));
</script>
Example: [ran]This is a random test[/ran].
Description: This code shuffles text. Do not use the following characters: " {}[]<>&
Use Option: No
Button Image: (optional)
Remove Tag If Empty: Yes
All Disable Options: Yes
The following special characters do not work: " {}[]<>& (There may be others)
The following special characters do work: .,!?$()
Please mark as installed if you use this.
View My Profile for more BB Code Enhancements- they work on all versions.
Example:
[b][ran]A bold example[/ran].[/b] = ex adlmopbl eA.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
Note- this will randomize the letters each time you load the page... If you want to keep the same persistent order each time the page is loaded change the line in the replacement code:
Code:
return Math.floor(Math.random() * (max + 1));
Replace Math.random() with a number between zero and 1, DO NOT MAKE IT = 1!!!
Well anything is possible... let me work on this for a bit and see if I can figure it out... I'm thinking I can split the strings based on spaces and randomize each array that way...
....instead of doing the entire phrase, it would give folks an actual clue to "solve the game" with only the actual letters of each word scrambled.
Can this be done?
I would love to have this be the case, but how many queries would this add per post on showthread? if it was a paragraph with, let's say 200 words, would it add 200 queries for that one post?
Tagging this Mod, but curious how it will be handled with the potential for so many queries.
Well anything is possible... let me work on this for a bit and see if I can figure it out... I'm thinking I can split the strings based on spaces and randomize each array that way...