2015-01-20 3 views
1

Я хочу сделать прямоугольник с прописными буквами. Например, когда мы ввести является "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('^[A-Z\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>

+0

Что вы хотите сказать? –

+1

@JayBlanchard i can not все еще делаю шаблон, пожалуйста, прочитайте мое объяснение –

+5

Я верю, что его вопрос: «Может кто-то сделать мою домашнюю работу». На что ответ «SO не является домашней машиной». – bhspencer

ответ

1

Вы можете рассчитать расстояние между кодом буквы "А" и входной первой буквой. Затем, вы можете построить квадрат со стороной, равной

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/>'); 
} 

Fiddle

Может быть, это не самое эффективное решение, но это делает работу (на самом деле, я не думаю, что эффективность может представлять проблему в этой ситуации).

+0

Большое спасибо, сэр –

+0

Я думал, что это захватывающая задача. Рад помочь вам. – Giorgio

Смежные вопросы