#include <LiquidCrystal.h>
#include <Keypad.h>

LiquidCrystal lcd(13,12,11,10,9,8);

int riadky = 4;
int stlpce = 4;

char tlacitka[4][4] = 
{
  { '1', '2', '3', 'A' },
  { '4', '5', '6', 'B' },
  { '7', '8', '9', 'C' },
  { '*', '0', '#', 'D' }
};

byte stlpecPin[] = {3,2,1,0}; 
byte riadokPin[] = {7,6,5,4};

Keypad klavesnica = Keypad(makeKeymap(tlacitka), riadokPin, stlpecPin, riadky, stlpce);

int aktualnyStlpec[4] = {0};
int cisloRiadku;


void setup() 
{
  lcd.begin(20,4);
}

void loop() 
{
  char klavesa = klavesnica.getKey();

  if (klavesa == '#') 
  {
    lcd.clear();
    for (int i = 0; i < riadky; i++) 
    {
      aktualnyStlpec[i] = 0;
    }
  }

  if (klavesa == 'A')
  {
    cisloRiadku = 0;
    vypisanie();
  }
  
  if (klavesa == 'B')
  {
    cisloRiadku = 1;
    vypisanie();
  }

  if (klavesa == 'C')
  {
    cisloRiadku = 2;
    vypisanie();
  }

  if (klavesa == 'D')
  {
    cisloRiadku = 3;
    vypisanie();
  }
}

void vypisanie()
{
  if(aktualnyStlpec[cisloRiadku] < 20)
  {
    lcd.setCursor(aktualnyStlpec[cisloRiadku], cisloRiadku);
    lcd.print('X');
    aktualnyStlpec[cisloRiadku]++;
  }
}