簡體   English   中英

使用大寫字母繪制矩形

[英]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 + '&nbsp;&nbsp;&nbsp;');      
    }

    $('#output').append('<br/>');  
}

小提琴

也許這不是最有效的解決方案,但確實可以完成工作(實際上,在這種情況下,我認為效率不代表問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM