mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2026-01-19 16:20:52 -08:00
Merge pull request #1 from nanochess/main
Ported 3D Plot and Bunny to Javascript
This commit is contained in:
9
19 Bunny/javascript/bunny.html
Normal file
9
19 Bunny/javascript/bunny.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BUNNY</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 8pt;"></pre>
|
||||
<script src="bunny.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
58
19 Bunny/javascript/bunny.js
Normal file
58
19 Bunny/javascript/bunny.js
Normal file
@@ -0,0 +1,58 @@
|
||||
// BUNNY
|
||||
//
|
||||
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||
//
|
||||
function print(str)
|
||||
{
|
||||
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||
}
|
||||
|
||||
function tab(space)
|
||||
{
|
||||
var str = "";
|
||||
while (space-- > 0)
|
||||
str += " ";
|
||||
return str;
|
||||
}
|
||||
|
||||
var bunny_string = ["B","U","N","N","Y"];
|
||||
|
||||
var bunny_data = [1,2,-1,0,2,45,50,-1,0,5,43,52,-1,0,7,41,52,-1,
|
||||
1,9,37,50,-1,2,11,36,50,-1,3,13,34,49,-1,4,14,32,48,-1,
|
||||
5,15,31,47,-1,6,16,30,45,-1,7,17,29,44,-1,8,19,28,43,-1,
|
||||
9,20,27,41,-1,10,21,26,40,-1,11,22,25,38,-1,12,22,24,36,-1,
|
||||
13,34,-1,14,33,-1,15,31,-1,17,29,-1,18,27,-1,
|
||||
19,26,-1,16,28,-1,13,30,-1,11,31,-1,10,32,-1,
|
||||
8,33,-1,7,34,-1,6,13,16,34,-1,5,12,16,35,-1,
|
||||
4,12,16,35,-1,3,12,15,35,-1,2,35,-1,1,35,-1,
|
||||
2,34,-1,3,34,-1,4,33,-1,6,33,-1,10,32,34,34,-1,
|
||||
14,17,19,25,28,31,35,35,-1,15,19,23,30,36,36,-1,
|
||||
14,18,21,21,24,30,37,37,-1,13,18,23,29,33,38,-1,
|
||||
12,29,31,33,-1,11,13,17,17,19,19,22,22,24,31,-1,
|
||||
10,11,17,18,22,22,24,24,29,29,-1,
|
||||
22,23,26,29,-1,27,29,-1,28,29,-1,4096];
|
||||
|
||||
print(tab(32) + "BUNNY\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
|
||||
var l = 64; // ASCII letter code
|
||||
var pos = 0;
|
||||
|
||||
print("\n");
|
||||
|
||||
var str = "";
|
||||
for (var pos = 0; bunny_data[pos] < 128; pos++) {
|
||||
if (bunny_data[pos] < 0) {
|
||||
print(str + "\n");
|
||||
str = "";
|
||||
continue;
|
||||
}
|
||||
while (str.length < bunny_data[pos])
|
||||
str += " ";
|
||||
for (var i = bunny_data[pos]; i <= bunny_data[pos + 1]; i++)
|
||||
str += bunny_string[i % 5];
|
||||
pos++;
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
100 REM VALUES FOR 1979 - SEE NOTES
|
||||
110 DIM M(12)
|
||||
120 FOR I=1 TO 6: PRINT CHR$(10);: NEXT I
|
||||
130 D=1: REM 1979 STARTS ON MONDAY (0=SUN, -1=MON, -2=TUES...)
|
||||
130 D=-1: REM 1979 STARTS ON MONDAY (0=SUN, -1=MON, -2=TUES...)
|
||||
140 S=0
|
||||
150 REM READ DAYS OF EACH MONTH
|
||||
160 FOR N=0 TO 12: READ M(N): NEXT N
|
||||
|
||||
9
21 Calendar/javascript/calendar.html
Normal file
9
21 Calendar/javascript/calendar.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>CALENDAR</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 8pt;"></pre>
|
||||
<script src="calendar.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
89
21 Calendar/javascript/calendar.js
Normal file
89
21 Calendar/javascript/calendar.js
Normal file
@@ -0,0 +1,89 @@
|
||||
// CALENDAR
|
||||
//
|
||||
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||
//
|
||||
function print(str)
|
||||
{
|
||||
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||
}
|
||||
|
||||
function tab(space)
|
||||
{
|
||||
var str = "";
|
||||
while (space-- > 0)
|
||||
str += " ";
|
||||
return str;
|
||||
}
|
||||
|
||||
print(tab(32) + "CALENDAR\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
print("\n");
|
||||
|
||||
// 0, 31, 29 ON LEAP YEARS
|
||||
var m = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
||||
|
||||
// VALUES FOR 1979 - SEE NOTES
|
||||
for (i = 1; i <= 6; i++)
|
||||
print("\n");
|
||||
|
||||
d = -1; // 1979 starts on Monday (0 = Sun, -1 = Monday, -2 = Tuesday)
|
||||
s = 0;
|
||||
|
||||
for (n = 1; n <= 12; n++) {
|
||||
print("\n");
|
||||
print("\n");
|
||||
s = s + m[n - 1];
|
||||
str = "**" + s;
|
||||
while (str.length < 7)
|
||||
str += " ";
|
||||
for (i = 1; i <= 18; i++)
|
||||
str += "*";
|
||||
switch (n) {
|
||||
case 1: str += " JANUARY "; break;
|
||||
case 2: str += " FEBRUARY"; break;
|
||||
case 3: str += " MARCH "; break;
|
||||
case 4: str += " APRIL "; break;
|
||||
case 5: str += " MAY "; break;
|
||||
case 6: str += " JUNE "; break;
|
||||
case 7: str += " JULY "; break;
|
||||
case 8: str += " AUGUST "; break;
|
||||
case 9: str += "SEPTEMBER"; break;
|
||||
case 10: str += " OCTOBER "; break;
|
||||
case 11: str += " NOVEMBER"; break;
|
||||
case 12: str += " DECEMBER"; break;
|
||||
}
|
||||
for (i = 1; i <= 18; i++)
|
||||
str += "*";
|
||||
str += (365 - s) + "**";
|
||||
// 366 - s on leap years
|
||||
print(str + "\n");
|
||||
print(" S M T W T F S\n");
|
||||
print("\n");
|
||||
str = "";
|
||||
for (i = 1; i <= 59; i++)
|
||||
str += "*";
|
||||
for (week = 1; week <= 6; week++) {
|
||||
print(str + "\n");
|
||||
str = " ";
|
||||
for (g = 1; g <= 7; g++) {
|
||||
d++;
|
||||
d2 = d - s;
|
||||
if (d2 > m[n]) {
|
||||
week = 6;
|
||||
break;
|
||||
}
|
||||
if (d2 > 0)
|
||||
str += d2;
|
||||
while (str.length < 4 + 8 * g)
|
||||
str += " ";
|
||||
}
|
||||
if (d2 == m[n]) {
|
||||
d += g;
|
||||
break;
|
||||
}
|
||||
}
|
||||
d -= g;
|
||||
print(str + "\n");
|
||||
}
|
||||
9
87 3-D Plot/javascript/3dplot.html
Normal file
9
87 3-D Plot/javascript/3dplot.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>3D PLOT</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="output" style="font-size: 8pt;"></pre>
|
||||
<script src="3dplot.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
40
87 3-D Plot/javascript/3dplot.js
Normal file
40
87 3-D Plot/javascript/3dplot.js
Normal file
@@ -0,0 +1,40 @@
|
||||
// 3D PLOT
|
||||
//
|
||||
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
|
||||
//
|
||||
function print(str)
|
||||
{
|
||||
document.getElementById("output").appendChild(document.createTextNode(str));
|
||||
}
|
||||
|
||||
function tab(space)
|
||||
{
|
||||
var str = "";
|
||||
while (space-- > 0)
|
||||
str += " ";
|
||||
return str;
|
||||
}
|
||||
|
||||
function equation(input)
|
||||
{
|
||||
return 30 * Math.exp(-input * input / 100);
|
||||
}
|
||||
|
||||
print(tab(32) + "3D PLOT\n");
|
||||
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
|
||||
|
||||
for (x = -30; x <= 30; x += 1.5) {
|
||||
l = 0;
|
||||
y1 = 5 * Math.floor(Math.sqrt(900 - x * x) / 5);
|
||||
str = "";
|
||||
for (y = y1; y >= -y1; y -= 5) {
|
||||
z = Math.floor(25 + equation(Math.sqrt(x * x + y * y)) - .7 * y);
|
||||
if (z > l) {
|
||||
l = z;
|
||||
while (str.length < z)
|
||||
str += " ";
|
||||
str += "*";
|
||||
}
|
||||
}
|
||||
print(str + "\n");
|
||||
}
|
||||
Reference in New Issue
Block a user