Programátorský kútik: prejavte sa!

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Mek »

Vdaka. Menit pismenka je mozne stlacenim Hotovo bez vylozenia pismenok, rovnako sa da iba vzdat tahu.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa audiotrack »

ale ten dizajn... takto vyzerali prvé weby čo si pamätám, keď sme po škole ostali v počítačovej učebni na internet lebo ho ešte nikto nemal doma.
MediaS
Novice
Novice
Príspevky: 1
Registrovaný: 23 aug 2017, 18:36

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa MediaS »

Nazdar, vytvoril som appku kde si najdete oblubenych youtuberov/channel-y, ulozite si ich do zaloziek a mozte sledovat ich twitter ucet aj youtube bez preklikavania sa medzi applikaciami a vyhladavania. Co poviete?
https://play.google.com/store/apps/deta ... e.igor.app
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Spixy »

Je nám ľúto, ale tento obsah zatiaľ nie je vo vašej krajine dostupný.
Pracujeme na tom, aby bol tento obsah v čo najkratšom čase dostupný aj v ďalších krajinách.
Skúste sa sem vrátiť neskôr.
som v Česku
scriptType
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 110
Registrovaný: 22 feb 2011, 19:34

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa scriptType »

Ahojte,

kolega našiel super vec na hranie sa s vlastnou logikou, vylepšovaním a uvážením. Pozrite na - https://play.elevatorsaga.com/

Je tam full API v JavaScripte na všetky príkazy pre riadenie výťahu. Ide o to, najlepšie optimalizovať svoj program výťahovej logiky pre čo najefektívnejšie prepravenie čo najviac ľudí s výťahmi v jednotlivých leveloch. Potrebujete rozhodnúť kedy má kam ísť, na aký event reagovať a pod. Super hra na cibrenie si svojej logiky v kóde. Bavte sa :-)
Nieje to môj program, ale myslím že sa na tom zabavíte.
Mick_14
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 458
Registrovaný: 07 aug 2008, 18:44

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Mick_14 »

Minulý týždeň sa nám podarilo vydať našu prvú hru na Android,
ešte sme si vedomí nejakých nedostatkov a určite bude update, ale budem rád ak si zahráte a dáte feedback,
čo sa vám páči na hre a čo by ste zmenili, popr. čo by ste v hre privítali.

Ďakujem :)

https://play.google.com/store/apps/deta ... zigzagduck
Prílohy
Zig Zag Duck.PNG
Arkaz
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4067
Registrovaný: 09 nov 2008, 14:08
Bydlisko: BA,Okolie
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Arkaz »

Aj by som si zahral ale ani mi ju nespusti padne hned po starte. :) Huawei p20 pro android 9.
Mick_14
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 458
Registrovaný: 07 aug 2008, 18:44

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Mick_14 »

Arkaz napísal:Aj by som si zahral ale ani mi ju nespusti padne hned po starte. :) Huawei p20 pro android 9.
Díky, už by to malo ísť po Update, ale je možné, že sa ti budú niektoré veci zle vykreslovať (zrejme to je konkrétnou architektúrou) ešte to nemáme úplne fixnuté, ale už je to minimálne spustiteľné na všetkých telefónoch ...spravili sme chybu, že sme to netestovali na dostatočnom počte rôznorodých zariadení, teraz budeme musieť stráviť nejaký čas a hľadaním spätne, kedy sa zaniesla do hry chyba :)
kekso
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 122
Registrovaný: 02 sep 2005, 12:10
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa kekso »

mysql backuper

Hladal som program, ktory by viac databaz zalohoval na jeden klik. Kedze mam viac stranok, tak potrebujem na jeden klik vsetko naraz stiahnut na pocitac.
Nepodarilo sa mi najst nic vyhovujuce, tak som si vytvoril vlastny program. Nadefinuju sa tam databazy a kazdy den si urobim klikom zalohy.
Robi sa vzdy checksum tabuliek, teda ak sa zisti, ze vcera sa tabulka vobec nezmenila, tak dana tabulka sa nezalohuje, ale len sa skopiruje stara zaloha danej tabulky do novej.

Ak chcete aj vy tento program, mozete si ho stiahnut tu: https://www.kasman.sk/kom/trapsql.zip

Zaroven som tu aj urobil automaticke prepojenie cudzich klucov na tabulky. To znamena, ze ked otvorite tabulku, ktora je cez FK kluc pripojena na druhu, tak si ju mozete zobrazit ako master/detail a po prejdeni na riadok v masteri sa automaticky zobrazia zaznamy z detail tabulky.
Ninx
Star
Star
Príspevky: 645
Registrovaný: 04 nov 2009, 16:25

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa Ninx »

pre tych dvoch ludi na svete, ktorym vadi, ze na absynt.sk maju pokazeny sorting knih podla ceny.

Skript nacita nazvy a ceny knih v zozname a nasledne ich zoradi podla najlacnejsich ebook verzii.

Modifikacia zoznamu knih a sorting podla ceny papierovej verzie is trivial and left as an exercise to the reader.
Prílohy
absynt-ebook-prices.zip
(1.58 KiB) 77 stiahnutí
holecicky.jpg
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa harrison314 »

Spravil som male technologicke demo pre pouzitie Slovenskeho obcianskeho preukazu na desifrovanie suborov (zasifrovanie sa robi pomocou exportovaneho certifikatu).

Program vie:
- exportovat sifrovaci certifikat z obcianskeho (je treba zadat BOK)
- sifrovacim certifikatom zasifrovat subor do kontajneru
- rozsifrovat kontajner pomocou obcianskeho preukazu (je treba zadat BOK)

Krtaky popis a priklad pouzitia najdete tu:
https://github.com/harrison314/SlovakEidDecryptionTool

Program je mozne stiahnut z https://github.com/harrison314/SlovakEi ... l/releases.

Na zasifrovanie suboru sa pouziva AES-256 CBC s PKCS7 pdingom, samotny AES kluc je sifrovany RSA RKCS1.

//autoeditácia príspevku (02 Máj 2019, 18:22)
Este pridam znazornenie pouzitia:
Prílohy
DiagramUsage.png
martinius96
Novice
Novice
Príspevky: 4
Registrovaný: 03 sep 2017, 12:27

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa martinius96 »

Ahoj, rád by som dnes predstavil svoju implementáciu pre hru Mastermind, ktorá je aj známa ako Logik. V tejto implementácii hráč neháda farby a ich poradie ako je to v originálnej - stolnej verzii, ktorú hrajú dvaja hráči, ale háda čísla a ich poradie. Je nutné zdôrazniť, že čísla sa nemôžu opakovať. V úlohe určenia čísel a ich poradia je Arduino, ktoré ich vygeneruje.

Arduino slúži ďalej ako počítadlo pokusov a prijíma logické vstupy prostredníctvom 5 tlačidiel, ktoré sa spínajú proti zemi (INPUT_PULLUP). Tlačidlami sa zadáva používateľský vstup v podobe čísel na pozície. Posledným tlačidlom sa vstup potvrdí a odošle do Arduina. Na LCD displeji je okrem aktuálneho používateľského vstupu aj vyobrazenie výsledku.

Ak používateľ neuhádne číslo a ani pozíciu, na displeji sa na príslušnej pozícii zobrazí -, ak uhádne číslo s pozíciou, zobrazí sa =, ak uhádne číslo, ale nie pozíciu, zobrazí sa C. Pre vývojárske účely je možné použiť DEBUG makro, ktoré je nutné odkomentovať. V princípe len zobrazí na displej hľadané číslo, ak chce vývojár odtestovať funkčnosť jednotlivých prvkov a overiť, či hra skončí po prekročení pokusov, alebo uhádnutí hľadaného čísla.

Hra je limitovaná na 10 pokusov hráča. V prípade prekročenia počtu pokusov sa hra ukončí s hláškou o prehre hráča. V prípade, že hráč uhádne cieľové číslo, hra sa končí s výpisom hlášky o výhre hráča. Hra nie je časovo obmedzená. Pri hre sa odporúča využiť aj ceruzku a papier na písanie si vstupov, čo môže viesť k štatistickej výhode pri hľadaní cieľového čísla.
Som otvorený aj konštruktívnej kritike, najmä od "hackera" Dr. House-a.

Knižnica pre LCD displej: https://github.com/fdebrabander/Arduino ... 2C-library
Program pre Mastermind:

Kód: Vybrať všetko

/*|----------------------------------------------------------------------------|*/
/*|SKETCH PRE MASTERMIND IMPLEMENTACIU                                         |*/
/*|VYHOTOVIL: MARTIN CHLEBOVEC                                                 |*/
/*|PODPOR PROJEKT PRE VIAC VARIANT, SUPPORT: https://paypal.me/chlebovec       |*/
/*|Doska: Arduino Uno / AtMega328P                                             |*/
/*|MAXIMALNY POCET POKUSOV: 10                                                 |*/
/*|POCET VSTUPOV: 5X PUSHBUTTON - SPINACIE TLACIDLA                            |*/
/*|VYGENEROVANE 4-CISLIE: KAZDE CISLO JE ROZNE V ROZSAHU 0-9 BEZ OPAKOVANIA!   |*/
/*|PRE ZOBRAZENIE VYGENEROVANEHO CISLA POUZITE DEBUG (ODKOMENTOVAT)            |*/
/*|----------------------------------------------------------------------------|*/
/*|VYSVETLIVKY PRE ZNAČKY NA DISPLEJI:                                         |*/
/*| C --> uhadnute cislo na inej pozicii                                       |*/
/*| = --> uhadnute cislo aj s poziciou (SPRAVNE CISLO!)                        |*/
/*| - --> neuhadnute cislo, ani pozicia                                        |*/
/*|----------------------------------------------------------------------------|*/

#define DEBUG //odkomentuj pre DEBUG INFO (ZOBRAZENIE HLADANEHO CISLA)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);

const int buttonPin1 = 6;
const int buttonPin2 = 5;
const int buttonPin3 = 4;
const int buttonPin4 = 3;
const int buttonPin5 = 2;

int cislo1 = 0;
int cislo2 = 0;
int cislo3 = 0;
int cislo4 = 0;


int cielovecislo1 = 0;
int cielovecislo2 = 0;
int cielovecislo3 = 0;
int cielovecislo4 = 0;

int buttonState1 = HIGH;
int buttonState2 = HIGH;
int buttonState3 = HIGH;
int buttonState4 = HIGH;
int buttonState5 = HIGH;

int lastButtonState1 = HIGH;
int lastButtonState2 = HIGH;
int lastButtonState3 = HIGH;
int lastButtonState4 = HIGH;
int lastButtonState5 = HIGH;

unsigned long lastDebounceTime1 = 0;
unsigned long lastDebounceTime2 = 0;
unsigned long lastDebounceTime3 = 0;
unsigned long lastDebounceTime4 = 0;
unsigned long lastDebounceTime5 = 0;
unsigned long debounceInterval = 50;
int pokus = 0;

void setup() {
  lcd.begin(); //incializacia displeja na I2C zbernici
  lcd.backlight(); //zapnutie podsvietenia
  pinMode(buttonPin1, INPUT_PULLUP);
  pinMode(buttonPin2, INPUT_PULLUP);
  pinMode(buttonPin3, INPUT_PULLUP);
  pinMode(buttonPin4, INPUT_PULLUP);
  pinMode(buttonPin5, INPUT_PULLUP);
  randomSeed(analogRead(0));
  lcd.setCursor(0, 0); //nastav kurzor pre zapis na 1. riadok, 1. stlpec
  lcd.print("ZADANE CISLO:   0000");
  generuj_cisla();
#ifdef DEBUG
  lcd.setCursor(0, 2);
  lcd.print("DEBUG ON:");
  lcd.setCursor(0, 3);
  lcd.print("HLADANE CISLO:  ");
  lcd.print(cielovecislo1);
  lcd.print(cielovecislo2);
  lcd.print(cielovecislo3);
  lcd.print(cielovecislo4);
#endif
}

void loop() {
  if (pokus >= 10) {
    lcd.setCursor(0, 2);
    lcd.print("PREHRALI STE!");
    lcd.setCursor(0, 3);
    lcd.print("KONIEC HRY          ");
    while (1);
  } else {
    int reading1 = digitalRead(buttonPin1);
    int reading2 = digitalRead(buttonPin2);
    int reading3 = digitalRead(buttonPin3);
    int reading4 = digitalRead(buttonPin4);
    int reading5 = digitalRead(buttonPin5);

    if (reading1 != lastButtonState1) {
      lastDebounceTime1 = millis();
    }

    if (reading2 != lastButtonState2) {
      lastDebounceTime2 = millis();
    }

    if (reading3 != lastButtonState3) {
      lastDebounceTime3 = millis();
    }

    if (reading4 != lastButtonState4) {
      lastDebounceTime4 = millis();
    }

    if (reading5 != lastButtonState5) {
      lastDebounceTime5 = millis();
    }

    if ((millis() - lastDebounceTime1) > debounceInterval) {
      if (reading1 != buttonState1) {
        buttonState1 = reading1;
        if (buttonState1 == HIGH) {
          cislo1++;
          if (cislo1 > 9) {
            cislo1 = 0;
          }
        }
      }
      updateLCD();
    }

    if ((millis() - lastDebounceTime2) > debounceInterval) {
      if (reading2 != buttonState2) {
        buttonState2 = reading2;
        if (buttonState2 == HIGH) {
          cislo2++;
          if (cislo2 > 9) {
            cislo2 = 0;
          }
        }
      }
      updateLCD();
    }

    if ((millis() - lastDebounceTime3) > debounceInterval) {
      if (reading3 != buttonState3) {
        buttonState3 = reading3;
        if (buttonState3 == HIGH) {
          cislo3++;
          if (cislo3 > 9) {
            cislo3 = 0;
          }
        }
      }
      updateLCD();
    }

    if ((millis() - lastDebounceTime4) > debounceInterval) {
      if (reading4 != buttonState4) {
        buttonState4 = reading4;
        if (buttonState4 == HIGH) {
          cislo4++;
          if (cislo4 > 9) {
            cislo4 = 0;
          }
        }
      }
      updateLCD();
    }

    if ((millis() - lastDebounceTime5) > debounceInterval) {
      if (reading5 != buttonState5) {
        lcd.setCursor(16, 1);
        lcd.print(cislo1);
        lcd.print(cislo2);
        lcd.print(cislo3);
        lcd.print(cislo4);
        buttonState5 = reading5;
        if (buttonState5 == HIGH) {
          pokus++;
          updateLCD();
          over_cisla();
          cislo1 = 0;
          cislo2 = 0;
          cislo3 = 0;
          cislo4 = 0;
        }
      }
    }
    lastButtonState1 = reading1;
    lastButtonState2 = reading2;
    lastButtonState3 = reading3;
    lastButtonState4 = reading4;
    lastButtonState5 = reading5;
  }
}

void updateLCD() {
  lcd.setCursor(16, 0);
  lcd.print(cislo1);
  lcd.print(cislo2);
  lcd.print(cislo3);
  lcd.print(cislo4);
  lcd.setCursor(0, 1);
  lcd.print("POKUS: ");
  lcd.print(pokus);
}

void generuj_cisla() {
  cielovecislo1 = random(0, 9);
  cielovecislo2 = random(0, 9);
  while (cielovecislo2 == cielovecislo1) {
    cielovecislo2 = random(0, 9);
  }
  cielovecislo3 = random(0, 9);
  while ((cielovecislo3 == cielovecislo1) || (cielovecislo3 == cielovecislo2)) {
    cielovecislo3 = random(0, 9);
  }
  cielovecislo4 = random(0, 9);
  while ((cielovecislo4 == cielovecislo1) || (cielovecislo4 == cielovecislo2) || (cielovecislo4 == cielovecislo3)) {
    cielovecislo4 = random(0, 9);
  }
}

void over_cisla() {
  if (cislo1 == cielovecislo1) {
    lcd.setCursor(10, 1);
    lcd.print("="); //UHADNUTE CISLO VRATANE POZICIE
  } else if ((cislo1 == cielovecislo2) || (cislo1 == cielovecislo3) || (cislo1 == cielovecislo4)) {
    lcd.setCursor(10, 1);
    lcd.print("C"); //UHADNUTE CISLO BEZ POZICIE
  } else {
    lcd.setCursor(10, 1);
    lcd.print("-"); //NEUHADNUTE CISLO, ANI POZICIA
  }

  if (cislo2 == cielovecislo2) {
    lcd.setCursor(11, 1);
    lcd.print("="); //UHADNUTE CISLO VRATANE POZICIE
  } else if ((cislo2 == cielovecislo1) || (cislo2 == cielovecislo3) || (cislo2 == cielovecislo4)) {
    lcd.setCursor(11, 1);
    lcd.print("C"); //UHADNUTE CISLO BEZ POZICIE
  } else {
    lcd.setCursor(11, 1);
    lcd.print("-"); //NEUHADNUTE CISLO, ANI POZICIA
  }

  if (cislo3 == cielovecislo3) {
    lcd.setCursor(12, 1);
    lcd.print("="); //UHADNUTE CISLO VRATANE POZICIE
  } else if ((cislo3 == cielovecislo1) || (cislo3 == cielovecislo2) || (cislo3 == cielovecislo4)) {
    lcd.setCursor(12, 1);
    lcd.print("C"); //UHADNUTE CISLO BEZ POZICIE
  } else {
    lcd.setCursor(12, 1);
    lcd.print("-"); //NEUHADNUTE CISLO, ANI POZICIA
  }

  if (cislo4 == cielovecislo4) {
    lcd.setCursor(13, 1);
    lcd.print("="); //UHADNUTE CISLO VRATANE POZICIE
  } else if ((cislo4 == cielovecislo1) || (cislo4 == cielovecislo2) || (cislo4 == cielovecislo3)) {
    lcd.setCursor(13, 1);
    lcd.print("C"); //UHADNUTE CISLO BEZ POZICIE
  } else {
    lcd.setCursor(13, 1);
    lcd.print("-"); //NEUHADNUTE CISLO, ANI POZICIA
  }

  if ((cislo1 == cielovecislo1) && (cislo2 == cielovecislo2) && (cislo3 == cielovecislo3) && (cislo4 == cielovecislo4)) {
    lcd.setCursor(0, 2);
    lcd.print("VYHRALI STE!");
    lcd.setCursor(0, 3);
    lcd.print("KONIEC HRY          ");
    while (1);
  }
}
Prílohy
Schéma zapojenia
Schéma zapojenia
Mastermind - Arduino, začiatok hry
Mastermind - Arduino, začiatok hry
Mastermind - koniec hry
Mastermind - koniec hry
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa aacid »

martinius96
Novice
Novice
Príspevky: 4
Registrovaný: 03 sep 2017, 12:27

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa martinius96 »

Čo zas skáčeš?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa harrison314 »

martinius96 napísal:Čo zas skáčeš?
accid tym chcel asi naznacit to, ze v kode pouzivas vela premennych s cislenymi indexami na konci,
tie ktore spolu suvisia (buttonPin, cislo, cielovecislo, buttonState,...) by si mal dat do struktury a nameisto cislnych indexov nakonci pouzit pole tejtro struktury a tam, kde treba bude for-cyklus,
potom bude tvoj kod vyrazne prehladnejsi a bude ho 3-krat menej.
martinius96
Novice
Novice
Príspevky: 4
Registrovaný: 03 sep 2017, 12:27

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa martinius96 »

Aha, už chápem.
Budem sa snažiť do budúcna zlepšiť.
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa aacid »

ozaj to neber v zlom, to neni vysmech ani urazanie, proste feedback urceny na to aby si sa zlepsil, na nic ine. je pravda ze som to nenapisal tak podrobne ako harrison, ale dal som link kde by si si koniec koncov precital to iste. nedaj sa, programator sa uci cely zivot.
MA_SK
Light Expert
Light Expert
Príspevky: 60
Registrovaný: 03 mar 2011, 9:04

Re: Programátorský kútik: prejavte sa!

Príspevok od používateľa MA_SK »

čau čau čau :D

cez sviatky som sa kus nudil, tak som sa pobavil v android studiu:
https://play.google.com/store/apps/deta ... recin.laco



P.S. môj prvý pokus úplne, viem, že niečo podobné už je, ale tak alternatíva bez reklám ;) :D
Prílohy
asd.png
Napísať odpoveď