diff options
author | Yuchen Pei <me@ypei.me> | 2018-01-20 15:41:49 +0100 |
---|---|---|
committer | Yuchen Pei <me@ypei.me> | 2018-01-20 15:41:49 +0100 |
commit | d3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 (patch) | |
tree | d58df9ec2480e2a9ec6240f9c797f83d1a0b1056 /projects/09/BitmapEditor/BitmapEditor.html | |
parent | 3571f998b28fbc8d9250ba04c983935f10a16c15 (diff) |
rearranged the dir for github
- removed tools and pdfs
- rearranged the projects dirs
- added md files
- other minor changes
Diffstat (limited to 'projects/09/BitmapEditor/BitmapEditor.html')
-rw-r--r-- | projects/09/BitmapEditor/BitmapEditor.html | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/projects/09/BitmapEditor/BitmapEditor.html b/projects/09/BitmapEditor/BitmapEditor.html deleted file mode 100644 index fdb9e0b..0000000 --- a/projects/09/BitmapEditor/BitmapEditor.html +++ /dev/null @@ -1,200 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" - "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> - <title>Sokoban Bitmap Editor</title> - <script type="text/javascript"> - var grid = new Array(0); - - function Init() { - grid = InitGrid(); - DisplayGrid(); - } - - function InitGrid() { - var _grid = new Array(16); - for (i=0; i<16; i++) { - _grid[i] = new Array(16); - for (j=0; j<16; j++) { - _grid[i][j]=false; - } - } - return _grid; - } - - function RotateBitmapRight() { - var _grid = InitGrid(); - - for (i=0; i<16; i++) { - for (j=0; j<16; j++) { - _grid[j][15-i]=grid[i][j]; - } - } - - grid = _grid; - DisplayGrid(); - } - - function MirrorBitmap() { - var _grid = InitGrid(); - - for (i=0; i<16; i++) { - for (j=0; j<16; j++) { - _grid[i][15-j]=grid[i][j]; - } - } - - grid = _grid; - DisplayGrid(); - } - - function DisplayGrid() { - var str = "<table border=1 cellspacing=0>"; - var i,j, backgroundColor; - for (i=-1; i<16; i++) { - str=str+"<tr>"; - for (j=-1; j<16; j++) { - if (i == -1 && j != -1) { - str=str+"<td>" + (j+1) + "</td>"; - } else if (i != -1 && j == -1) { - str=str+"<td>" + (i+1) + "</td>"; - } else if (i ==-1 && j == -1) { - str=str+"<td/>"; - } else { - - if (grid[i][j] == true) - backgroundColor = "black"; - else - backgroundColor = "white"; - - str=str+"<td onclick=\"OnCellClicked(this)\" id="; str=str+(i*16+j); str=str+" width=16 height=16 bgcolor=" + backgroundColor + "></td>"; - } - } - str=str+"</tr>"; - } - str=str+"</table>" - - gridElement = document.getElementById('grid'); - gridElement.innerHTML = str; - GenerateBitMap() ; - } - - function OnCellClicked(cell) { - var i = cell.id / 16 |0; - var j = cell.id - i*16; - grid[i][j] = !grid[i][j]; - if (grid[i][j]) - cell.style.backgroundColor = "black"; - else - cell.style.backgroundColor = "white"; - GenerateBitMap(); - } - - function GenerateBitMap() { - var i, j; - var value; - - var functionTypeSelect = document.getElementById('functionType'); - methodType = functionTypeSelect.options[functionTypeSelect.selectedIndex].value; - - generateCode = document.getElementById('generatedCode'); - generateCode.value = methodType + " void " + - document.getElementById('functionName').value + - "(int location) {\n\tlet memAddress = 16384+location;\n"; - - for (i=0; i<16; i++) { - //get grid binary representation - binary = ""; - for (j=0; j<16; j++) { - if (grid[i][j]) - binary = "1" + binary; - else - binary = "0" + binary; - } - - isNegative = false; - //if number is negative, get its one's complement - if (binary[0] == "1") { - isNegative = true; - oneComplement = ""; - for (k=0; k<16; k++) { - if (binary[k] == "1") - oneComplement = oneComplement + "0"; - else - oneComplement = oneComplement + "1"; - } - binary = oneComplement; - } - - //calculate one's complement decimal value - value = 0; - for (k=0; k<16; k++) { - value = value * 2; - if (binary[k] == "1") - value=value+1; - } - - //two's complement value if it is a negative value - if (isNegative == true) - value = -(value + 1) - - generateCode.value = generateCode.value + GenerateCodeLine(i, value); - } - - generateCode.value = generateCode.value + "\treturn;\n}"; - } - - function GenerateCodeLine(row, value) { - str = "\tdo Memory.poke(memAddress+" + row*32 + ", " + value + ");\n"; - return str; - } - </script> -</head> -<body onload="Init();"> - <h4><i>IDC Herzliya / Efi Arazi School of Computer Science / Digital Systems Construction, Spring 2011 / Project 09 / Golan Parashi</i></h4> - <h1>Sokoban Bitmap Editor</h1> - <p>This javascript applicaiton is used to generate highly optimized jack code for drawing a 16x16 bitmap to the screen.</p> - <p>Using the mouse, click the desired cell to mark/unmark it. You may use 90 degrees rotation and vertical mirroring by<br> - clicking the appropriate buttons.</p> - <p>When you are finished drawing, you may select function type and enter function's name.</p> - <p> - <table> - <thead> - <tr> - <th align="left">Bitmap</th> - <th align="left"></th> - <th align="left">Generated Jack Code</th> - </tr> - </thead> - <tr> - <td><div id="grid"/></td> - <td> - <form action="javascript:GenerateBitMap();"> - <table> - <tr><td align="left">Function Type:</td></tr> - <tr><td align="center"> - <select id="functionType" onChange="GenerateBitMap()"> - <option value="function" selected="selected">function</option> - <option value="method">method</option> - </select> - </td></tr> - <tr><td align="left">Function Name:</td></tr> - <tr><td align="left"><input type="text" value="draw" id="functionName" onkeyup="GenerateBitMap()"/></td></tr> - <tr><td></td></tr> - <tr><td align="center"><input type="button" value="Generate Code >>" onclick="GenerateBitMap()"/></td></tr> - </table> - </form> - </td> - <td><textarea id="generatedCode" cols="50" rows="20" readonly="read-only"></textarea></td> - </tr> - <tr> - <table> - <tr> - <td align="center"><input type="button" value="Rotate right" onclick="RotateBitmapRight()"/></td> - <td align="center"><input type="button" value="Vertical Mirror" onclick="MirrorBitmap()"/></td> - </tr> - </table> - </tr> - </table> -</body> -</html>
\ No newline at end of file |