算法:如何打印字母的大形状
Algorithm: How to print a big shape of the letter
例如输入"y"时,会打印:
the output looks like this.
我使用前端语言来展示这个例子。我刚刚将嵌套数组生成为 9*9 网格来模拟输出。然后使用 for 循环将它们更改为 HTML 语法。在这种情况下,无论我使用什么语言,关键都是算法。我认为我的算法效率不高,因为我必须为 26 个字母生成 26 个嵌套数组。有什么有效的方法可以解决这个问题而不是创建 26 个嵌套数组吗?
$(document).ready(function(){
var letter_y=[
[0,0,0,0,0,0,0,0,0],
[0,1,0,0,0,0,0,1,0],
[0,1,0,0,0,0,0,1,0],
[0,1,0,0,0,0,0,1,0],
[0,1,1,1,1,1,1,1,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
]
for(var x=0;x<letter_y.length;x++){
for(var j=0;j<letter_y[x].length;j++){
if(letter_y[x][j]===0)
$('.row').append('<div class="grid"></div>');
if(letter_y[x][j]===1)
$('.row').append('<div class="grid2"></div>');
}
$('.row').append('<br>');
}
});
.grid{
background-color: black;
width: 20px;
height: 20px;
display: inline-block;
margin:0px;
}
.row{
line-height: 0px;
}
.grid2{
background-color: blue;
width: 20px;
height: 20px;
display: inline-block;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>fill_me_in</title>
<meta name="description" content="fill_me_in" >
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css " rel="stylesheet">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<nav id="nav_top" class="navbar navbar-inverse navbar-static-top">
<div class="container" id="main_container">
<a class="navbar-brand" href="http://api.jquery.com">Pac_man</a>
</div>
</nav>
<div class="container">
<div class="row">
</div>
</div>
<div class="own"></div>
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<script src="application.js"></script>
</body>
</html>
有两种常用的符号表示方式 - 栅格表示和矢量表示。由于您已经尝试将符号图像存储为位图,因此您可以尝试矢量 - 例如“1”可以是 "line (0,0) to (0,10)".
如果您主要关心 size/how 位图,请查看代码,您可以使用字符串 ("010000010",...
) 或单个数字位(这样 9x9 可以用 9 个数字表示)。
注意:如果您的目标只是渲染巨大的像素化字母 - 可能有匹配的字体可以做到这一点。此外,您可能需要弄清楚如何在客户端上使用这种字体。
例如输入"y"时,会打印: the output looks like this. 我使用前端语言来展示这个例子。我刚刚将嵌套数组生成为 9*9 网格来模拟输出。然后使用 for 循环将它们更改为 HTML 语法。在这种情况下,无论我使用什么语言,关键都是算法。我认为我的算法效率不高,因为我必须为 26 个字母生成 26 个嵌套数组。有什么有效的方法可以解决这个问题而不是创建 26 个嵌套数组吗?
$(document).ready(function(){
var letter_y=[
[0,0,0,0,0,0,0,0,0],
[0,1,0,0,0,0,0,1,0],
[0,1,0,0,0,0,0,1,0],
[0,1,0,0,0,0,0,1,0],
[0,1,1,1,1,1,1,1,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
]
for(var x=0;x<letter_y.length;x++){
for(var j=0;j<letter_y[x].length;j++){
if(letter_y[x][j]===0)
$('.row').append('<div class="grid"></div>');
if(letter_y[x][j]===1)
$('.row').append('<div class="grid2"></div>');
}
$('.row').append('<br>');
}
});
.grid{
background-color: black;
width: 20px;
height: 20px;
display: inline-block;
margin:0px;
}
.row{
line-height: 0px;
}
.grid2{
background-color: blue;
width: 20px;
height: 20px;
display: inline-block;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>fill_me_in</title>
<meta name="description" content="fill_me_in" >
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css " rel="stylesheet">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<nav id="nav_top" class="navbar navbar-inverse navbar-static-top">
<div class="container" id="main_container">
<a class="navbar-brand" href="http://api.jquery.com">Pac_man</a>
</div>
</nav>
<div class="container">
<div class="row">
</div>
</div>
<div class="own"></div>
<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
<script src="application.js"></script>
</body>
</html>
有两种常用的符号表示方式 - 栅格表示和矢量表示。由于您已经尝试将符号图像存储为位图,因此您可以尝试矢量 - 例如“1”可以是 "line (0,0) to (0,10)".
如果您主要关心 size/how 位图,请查看代码,您可以使用字符串 ("010000010",...
) 或单个数字位(这样 9x9 可以用 9 个数字表示)。
注意:如果您的目标只是渲染巨大的像素化字母 - 可能有匹配的字体可以做到这一点。此外,您可能需要弄清楚如何在客户端上使用这种字体。