• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Generator wyrazów zrobionych z "X"

Object Storage Arubacloud
0 głosów
403 wizyt
pytanie zadane 20 grudnia 2019 w Grafika i multimedia przez Karpik Użytkownik (680 p.)
Cześć, szukam generatora, który na podstawie wpisanego wypisałby ten tekst, ale zrobionych ze znaków "x" lub innych. Zna ktoś może taki generator?

Przykład:

M ----->

X          X
X X   X  X
X     X    X
X           X
X           X
X           X

2 odpowiedzi

+2 głosów
odpowiedź 20 grudnia 2019 przez DawidK Nałogowiec (37,910 p.)

Dosyć łatwo jest zrobić taki generator (mający oczywiście tylko podstawową funkcjonalność).

Poniższy kod możesz dopasować 'pod siebie'. W formularz wpisuje się literę i wyraz. Wyraz jest zamieniany na duże litery i rysowany na canvas (300px x 1300px). Generalnie pętla sprawdza każdą litere w wyrazie i jeżeli znajdzie ją w tablicy obiektów z literami to ją rysuje. Każda litera ma 5x7 znaków i jest zapisana jako tablica.

Całkiem spoko pomysł na jakiś mini szybki projekcik.

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Letter generator</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
    <canvas id='canvas'></canvas>
    <form id='form'>
        <label>Podaj wyraz:</label>
        <input type='text' id='word'>
        <label>Podaj znak:</label>
        <input type='text' id='sign'>
        <button>wypisz</button>
    </form>
    

    <script src='letters.js'></script>
    <script src='main.js'></script>
</body>
</html>

main.js

const canvas = document.querySelector('#canvas');
canvas.height = 300;
canvas.width = 1300;

const ctx = canvas.getContext('2d');
const {height:h , width: w} = canvas;

let sign = '';

let word = '';

const form = document.querySelector('#form');
const wordInput = document.querySelector('#word');
const signInput = document.querySelector('#sign');

form.addEventListener('submit',drawWord);

ctx.fillStyle = 'blue';
ctx.fillRect(0,0,w,h);

ctx.font = '25px Arial';

function drawWord(e){
    e.preventDefault();

    sign = signInput.value;
    word = wordInput.value;

    word = word.toUpperCase();

    ctx.fillStyle = 'blue';
    ctx.fillRect(0,0,w,h);

    ctx.fillStyle = 'white';

    for(let k=0; k<word.length; k++){
        for(let m=0; m<letters.length; m++){
            if(word.charAt(k) === letters[m].letter){
                for(let i=0; i<5; i++){
                    for(let j=0; j<7; j++){
                        if(letters[m].array[j*5 + i] === 1){
                            ctx.fillText(sign,50+k*120 + i*20, 50 + j*20);
                        }
                    }
                }
            }
        }
    }
}

letters.js

const letters = [
    {
        letter: 'A',
        array: [
            0,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,1,
            1,0,0,0,1,
            1,0,0,0,1
        ]
    },
    {
        letter: 'B',
        array: [
            1,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,0
        ]
    },
    {
        letter: 'C',
        array: [
            0,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,1,
            0,1,1,1,0
        ]
    },
    {
        letter: 'D',
        array: [
            1,1,1,0,0,
            1,0,0,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,1,0,
            1,1,1,0,0
        ]
    },
    {
        letter: 'E',
        array: [
            1,1,1,1,1,
            1,0,0,0,0,
            1,0,0,0,0,
            1,1,1,1,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,1,1,1,1
        ]
    },
    {
        letter: 'F',
        array: [
            1,1,1,1,1,
            1,0,0,0,0,
            1,0,0,0,0,
            1,1,1,1,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0
        ]
    },
    {
        letter: 'G',
        array: [
            0,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,0,
            1,0,1,1,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,1,1,1
        ]
    },
    {
        letter: 'H',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,0,0,0,0
        ]
    },
    {
        letter: 'I',
        array: [
            0,1,1,1,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,1,1,1,0
        ]
    },
    {
        letter: 'J',
        array: [
            0,0,1,1,1,
            0,0,0,1,0,
            0,0,0,1,0,
            0,0,0,1,0,
            0,0,0,1,0,
            1,0,0,1,0,
            0,1,1,0,0
        ]
    },
    {
        letter: 'K',
        array: [
            1,0,0,0,1,
            1,0,0,1,0,
            1,0,1,0,0,
            1,1,0,0,0,
            1,0,1,0,0,
            1,0,0,1,0,
            1,0,0,0,1
        ]
    },
    {
        letter: 'L',
        array: [
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,1,1,1,1
        ]
    },
    {
        letter: 'M',
        array: [
            1,0,0,0,1,
            1,1,0,1,1,
            1,0,1,0,1,
            1,0,1,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1
        ]
    },
    {
        letter: 'N',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,0,0,1,
            1,0,1,0,1,
            1,0,0,1,1,
            1,0,0,0,1,
            1,0,0,0,1
        ]
    },
    {
        letter: 'O',
        array: [
            0,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,1,1,0
        ]
    },
    {
        letter: 'P',
        array: [
            1,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,0,
            1,0,0,0,0,
            1,0,0,0,0,
            1,0,0,0,0
        ]
    },
    {
        letter: 'R',
        array: [
            1,1,1,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
            1,1,1,1,0,
            1,0,1,0,0,
            1,0,0,1,0,
            1,0,0,0,1
        ]
    },
    {
        letter: 'S',
        array: [
            0,1,1,1,1,
            1,0,0,0,0,
            1,0,0,0,0,
            0,1,1,1,0,
            0,0,0,0,1,
            0,0,0,0,1,
            1,1,1,1,0
        ]
    },
    {
        letter: 'T',
        array: [
            1,1,1,1,1,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0
        ]
    },
    {
        letter: 'U',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,1,1,0
        ]
    },
    {
        letter: 'W',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,1,0,1,
            1,0,1,0,1,
            1,0,1,0,1,
            0,1,0,1,0
        ]
    },
    {
        letter: 'X',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,0,1,0,
            0,0,1,0,0,
            0,1,0,1,0,
            1,0,0,0,1,
            1,0,0,0,1,
        ]
    },
    {
        letter: 'Y',
        array: [
            1,0,0,0,1,
            1,0,0,0,1,
            1,0,0,0,1,
            0,1,0,1,0,
            0,0,1,0,0,
            0,0,1,0,0,
            0,0,1,0,0
        ]
    },
    {
        letter: 'Z',
        array: [
            1,1,1,1,1,
            0,0,0,0,1,
            0,0,0,1,0,
            0,0,1,0,0,
            0,1,0,0,0,
            1,0,0,0,0,
            1,1,1,1,1
        ]
    }
]

wynik:

0 głosów
odpowiedź 20 grudnia 2019 przez spamator12 Nałogowiec (28,230 p.)
fajnie to byloby zrobic cos odwrotnego - wyczytywanie liter z X'ow. Mozna podpiac pod to deAp learning :)
komentarz 20 grudnia 2019 przez DawidK Nałogowiec (37,910 p.)
To napewno byłoby ciekawsze i trudniejsze :D

Podobne pytania

0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 20 stycznia 2023 w JavaScript przez pazo1313 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 882 wizyt
pytanie zadane 2 lipca 2021 w Python przez Nalesniolek Nowicjusz (180 p.)
–4 głosów
0 odpowiedzi 853 wizyt
pytanie zadane 12 czerwca 2021 w Python przez Nalesniolek Nowicjusz (180 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...