[英]Draw rectangle using capital letters
我想使用大寫字母制作矩形。 例如,當我們輸入is為"A"
,則顯示
A
如果為"B"
,則
BBB
BAB
BBB
如果為"C"
,則
CCCCC
CBBBC
CBABC
CBBBC
CCCCC
直到Z為止,模式都是這樣。我設法制作了矩形,但它始終是相同的字母,如下所示:
BBB
BBB
BBB
這是我的代碼:
$('#click').click(function () { $('#output').html(''); var input = $('#input').val(); var validpattern = new RegExp('^[AZ\\d&Ñ]+$'); if (input.length > 1) { $('#output').append('invalid output'); } else if (!input.match(validpattern)) { $('#output').append('invalid output'); } else { var string = String.fromCharCode(input.charCodeAt(0)); var stringa = 65; var inputascii = string.charCodeAt(); var inputasciiawal = inputascii; var jarak = inputascii - stringa; jarak = jarak * 2; var kiri = 0; console.log(jarak); for (kiri; kiri <= jarak; kiri++) { $('#output').append('<br>'); for (var isi = 0; isi <= jarak; isi++) { $('#output').append(String.fromCharCode(inputascii)); } } } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="input"> <button id="click">click</button> <br><br> <span id="output"></span>
您可以計算字母“ A”的代碼與輸入的第一個字母之間的距離。 然后,您可以建立一個邊等於
var side = (2*distance)+1;
這是因為您為中心字母保留了一個單元格,並且在每一側都為周圍的字母保留了distance
單元格。
然后,您可以進行一個雙循環(一個用於行,一個用於列),計算到中心的距離,然后輸出正確的字母。 這是應用程序的核心(顯然,您可以在其之前添加輸入檢查,以驗證輸入數據)
var input = "D"; // the first letter of input
var value = input.charCodeAt(0);
var stringa = 65;
var distance = value-stringa;
var side = (2*distance)+1;
console.log(distance);
for(i=0;i<side;i++)
{
for(j=0;j<side;j++)
{
var absi = Math.abs(i-distance);
var absj = Math.abs(j-distance);
var max = Math.max(absi,absj);
var letter = String.fromCharCode(stringa + max)
$('#output').append(letter + ' ');
}
$('#output').append('<br/>');
}
也許這不是最有效的解決方案,但確實可以完成工作(實際上,在這種情況下,我認為效率不代表問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.