Skip to content

Instantly share code, notes, and snippets.

@sanmadjack
Created September 26, 2013 21:23
Show Gist options
  • Save sanmadjack/6720753 to your computer and use it in GitHub Desktop.
Save sanmadjack/6720753 to your computer and use it in GitHub Desktop.
A crossword puzzle solving assistant
<html>
<head>
<script>
function process() {
var element = document.getElementById("input");
var input = element.value;
var data = new Array();
var line = 0;
var character = 0;
data[line] = new Array();
for(var i = 0; i < input.length; i++) {
if(input[i]=="\n") {
line++;
character = 0;
data[line] = new Array();
} else {
data[line][character] = input[i];
character++;
}
}
return data;
}
function east() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
for(var i = 0; i < data.length; i++) {
for(var j = 0; j < data[i].length ; j++) {
output.innerHTML +=data[i][j];
}
output.innerHTML += "\n";
}
}
function west() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
for(var i = 0; i < data.length; i++) {
for(var j = data[i].length -1; j >=0 ; j--) {
output.innerHTML +=data[i][j];
}
output.innerHTML += "\n";
}
}
function south() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
for(var i = 0; i < longest_line; i++) {
for(var j = 0; j < data.length ; j++) {
output.innerHTML +=data[j][i];
}
output.innerHTML += "\n";
}
}
function north() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
for(var i = 0; i < longest_line; i++) {
for(var j = data.length - 1; j >= 0 ; j--) {
output.innerHTML +=data[j][i];
}
output.innerHTML += "\n";
}
}
function southeast() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
var total_lines = longest_line + data.length - 1;
for(var i = longest_line - 1; i >= 0; i--) {
var x = i;
var y = 0;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x++;
y++;
if(y<data.length) {
character = data[y][x];
} else {
break;
}
}
output.innerHTML += "\n";
}
if(data.length > 1) {
for(var i = 1 ; i < data.length; i++) {
var x = 0;
var y = i;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x++;
y++;
if(y<data.length) {
character = data[y][x];
}else {
break;
}
}
output.innerHTML += "\n";
}
}
}
function southwest() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
var total_lines = longest_line + data.length - 1;
for(var i = 0; i < longest_line; i++) {
var x = i;
var y = 0;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x--;
y++;
if(y<data.length) {
character = data[y][x];
} else {
break;
}
}
output.innerHTML += "\n";
}
if(data.length > 1) {
for(var i = 1 ; i < data.length; i++) {
var x = data[i].length - 1;
var y = i;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x--;
y++;
if(y<data.length) {
character = data[y][x];
}else {
break;
}
}
output.innerHTML += "\n";
}
}
}
function northeast() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
var total_lines = longest_line + data.length - 1;
for(var i = 0 ; i < data.length; i++) {
var x = 0;
var y = i;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x++;
y--;
if(y>=0) {
character = data[y][x];
}else {
break;
}
}
output.innerHTML += "\n";
}
if(longest_line > 1) {
for(var i = 1; i < longest_line; i++) {
var x = i;
var y = data.length - 1;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x++;
y--;
if(y>=0) {
character = data[y][x];
} else {
break;
}
}
output.innerHTML += "\n";
}
}
}
function northwest() {
var data = process();
var output = document.getElementById("output");
output.innerHTML = "";
var longest_line = 0;
for(var i = 0; i < data.length; i++) {
if(data[i].length > longest_line) {
longest_line = data[i].length;
}
}
var total_lines = longest_line + data.length - 1;
for(var i = 0; i < longest_line; i++) {
var x = i;
var y = data.length -1 ;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x--;
y--;
if(y>=0) {
character = data[y][x];
} else {
break;
}
}
output.innerHTML += "\n";
}
if(data.length > 2) {
for(var i = data.length - 2 ; i >= 0; i--) {
var x = data[i].length - 1;
var y = i;
var character = data[y][x];
while(character!=undefined&&y<data.length) {
output.innerHTML +=character;
x--;
y--;
if(y>=0) {
character = data[y][x];
}else {
break;
}
}
output.innerHTML += "\n";
}
}
}
</script>
</head>
<body>
<textarea id="input">
</textarea><br/>
<table border=1>
<tr><th colspan=3>Change Text Direction To</th></tr>
<tr><td>
<input type="button" onclick="northwest();" value="NorthWest"/>
</td><td>
<input type="button" onclick="north();" value="North"/>
</td><td align=right>
<input type="button" onclick="northeast();" value="NorthEast"/>
</td></tr><tr><td>
<input type="button" onclick="west();" value="West"/>
</td><td>
</td><td align=right>
<input type="button" onclick="east();" value="East"/>
</td></tr><tr><td>
<input type="button" onclick="southwest();" value="SouthWest"/><br/>
</td><td>
<input type="button" onclick="south();" value="South"/>
</td><td align=right>
<input type="button" onclick="southeast();" value="SouthEast"/>
</td></tr>
</table>
<br/>
<pre id="output" style="line-height:125%"></pre>
<br/>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment