Malá hra o velkého Bajta (6) - Házení kostkou

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod faraon » 13 bře 2016 23:13

Všechny bity hry:

00000001 - Jednoduchá kalkulačka
00000010 - Odebírání zápalek
00000100 - Gregoriánský kalendář
00001000 - Hádání kombinace
00010000 - Vigenérova šifra
00100000 - Hledání min
01000000 - Házení kostkou
10000000 - Conway's Game of Life




Je tu další měsíc, další neděle, a další hra. Tentokrát to nebude přímo hra, ale spíš herní statistika. Každý z nás hrál nějakou hru ve které se používají kostky, a třeba i přemýšlel nad tím, jak předpovědět které číslo padne na kostce příště. Přitom sledoval jak čísla padají po sobě, které už padlo víckrát, a které se naopak moc neobjevuje...

Kolikátá je šestka?

Jenže lidská paměť je omezená a chybující, zato počítač si dokáže pamatovat všechno co se mu řekne. Takže si dokáže zapamatovat třeba tisíc čísel hozených v řadě, a může s nimi provádět i různé zajímavé věci!
Nejdůležitější a nejčastější činnosti které programy s daty provádějí jsou vyhledávání a třídění. Tomu posledně jmenovanému bude věnován bit 01000000, protože zaznamenaná čísla je potřeba seřadit podle velikosti!

Požadavky na program jsou úplně jednoduché, musí si zapamatovat až 1000 čísel v rozsahu 1 až 6, ke každému přidat jeho pořadové číslo, kolikáté v řadě padlo, a seřazená od nejmenšího po největší je vypsat.

Příklad vstupních dat:

Kód: Vybrat vše

2 5 1 3 3 2 4 5 2 2 0


Očekávaný výstup:

Kód: Vybrat vše

1       3
2       1
2       6
2       9
2       10
3       4
3       5
4       7
5       2
5       8


V levém sloupci jsou hozená čísla, v pravém jejich pořadí, kolikátá padla. Je možné použít jakýkoliv způsob uložení v paměti, jednorozměrná pole (vektory), vícerozměrná pole (matice), pole struktur, lineární i rozvětvené seznamy, prostě cokoliv kdo bude chtít. Stejně tak způsob řazení může být úplně libovolný, jaký si jen dokážete vymyslet. Samozřejmě čím jednodušší tím lepší. Program musí dodržet jenom tato dvě pravidla:

  1. Vstupních čísel načte maximálně 1000, od 1 do 6, číslo mimo rozsah nebo chybný vstup je signál k ukončení načítání.
  2. Řazení musí být stabilní, takže pořadí stejných čísel musí zůstat v pořadí v jakém padla.

Vstupní data jsou zde:

Kód: Vybrat vše

2 5 4 5 6 5 2 5 4 5 2 1 4 1 6 5 2 5 6 5 2 1 4 1 2 3 4 5 2 1 2 5 6 5 2 1 2 5 2 1 2 5 6 5 2 5 6 3 4 5 6 3 2 3 6 5 2 5 4 1 6 5 4 5 2 1 4 5 2 1 6 1 2 3 4 1 4 1 4 3 6 1 4 1 2 1 6 5 2 1 6 3 4 5 2 3 4 1 6 1 6 1 6 1 6 5 6 3 6 3 2 3 2 3 6 5 4 5 6 5 4 1 4 5 6 3 2 3 4 3 2 1 2 3 4 1 2 5 2 1 4 5 2 1 6 3 2 3 2 3 6 5 2 3 2 3 6 5 2 3 6 1 6 5 4 3 2 5 4 1 2 5 4 3 2 1 2 5 4 3 6 3 4 3 2 3 6 1 2 5 4 3 4 1 4 5 6 3 6 3 2 3 6 5 4 5 4 1 6 5 4 3 4 5 4 5 2 3 6 1 4 5 6 3 6 5 4 5 4 5 2 3 2 5 6 3 6 5 6 3 6 1 4 3 6 1 2 3 2 5 4 3 2 5 2 3 4 1 2 3 4 3 4 3 2 1 2 3 6 5 4 5 2 1 4 5 2 5 4 3 4 1 6 3 4 5 6 1 4 3 4 1 4 3 4 3 6 1 2 5 6 5 6 1 2 3 4 5 6 1 2 5 2 5 6 1 6 1 6 5 2 1 6 1 6 3 6 3 4 5 6 1 6 5 4 1 2 3 6 3 4 5 4 1 4 5 4 1 6 3 2 1 6 1 2 5 4 5 4 1 4 1 2 5 6 3 6 1 4 5 6 5 6 1 4 1 6 3 6 5 4 3 2 5 2 5 4 1 6 1 4 1 2 5 2 3 4 1 6 5 4 3 6 5 2 1 2 5 6 5 6 5 4 5 6 1 2 5 4 1 6 3 2 1 2 5 4 5 4 5 4 3 4 3 6 3 4 3 4 5 2 5 6 5 2 1 2 3 2 5 2 5 4 3 6 1 2 1 4 5 6 3 2 3 6 3 4 1 6 5 2 3 2 3 4 5 6 3 6 1 6 3 4 1 2 1 6 1 6 5 6 5 2 5 6 3 6 5 6 5 6 3 6 3 4 5 6 5 4 3 6 1 6 1 4 5 4 5 4 5 4 3 4 3 4 1 2 3 4 1 2 5 2 3 2 3 2 5 6 3 6 5 4 3 6 3 2 1 4 5 2 1 6 3 6 5 4 5 6 5 6 3 6 5 6 3 4 5 4 5 6 5 6 5 2 1 4 1 2 1 6 3 2 5 2 5 6 3 6 1 2 3 6 1 6 5 4 3 4 5 4 5 6 3 4 5 4 3 4 5 6 1 6 5 6 5 4 1 4 1 6 5 6 1 6 5 2 5 2 1 4 3 2 5 2 5 6 1 2 1 6 3 2 3 2 5 6 3 4 5 2 3 6 3 4 3 6 3 4 3 6 1 6 3 4 3 6 5 4 1 4 1 2 5 6 5 6 1 4 1 2 5 2 5 6 1 4 3 4 5 2 3 6 1 6 5 2 3 2 1 2 1 2 5 2 3 2 3 6 5 2 5 2 3 4 3 6 5 2 3 6 3 4 3 2 3 6 5 2 1 6 5 2 1 4 5 2 1 4 5 4 3 4 1 2 1 6 3 4 5 4 1 4 1 6 1 2 5 6 3 6 5 2 3 2 1 6 3 6 1 4 3 4 5 4 5 6 3 2 3 2 5 6 5 2 3 4 1 2 5 6 1 4 1 6 5 6 1 4 1 6 5 6 3 4 1 2 5 4 5 2 3 2 5 2 3 4 5 2 3 2 5 2 1 4 1 4 1 6 1 6 1 2 5 4 1 6 1 6 3 4 5 4 5 4 1 6 1 2 5 4 5 6 3 6 5 6 5 6 1 2 3 4 3 4 5 4 1 4 1 2 3 2 5 2 5 6 3 4 3 2 3 6 5 4 3 4 1 6 1 6 3 4 3 4 3 6 5 4 5 4 3 2 5 2 5 6 1 4 1 2 1 4 5 6 3 2 5 6 3 6 3 4 3 2 1 4 1 6 1 6 3 6 1 2 1 2 3 4 1 2 3 6 5 2 3 2 3 4 5 6 1 2 5 6 5 6 1 6 1 6 3 2 1 2 3 6 5 4 3 6 3 4 3 6 1 4 3 2 1 4 5 6 1 4 3 6 1 4 5 2 5 2 5 2 3 2 5 4 1 6 0
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Reklama
someoneFromSomewhere
nováček
Příspěvky: 20
Registrován: květen 17
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod someoneFromSomewhere » 16 kvě 2017 20:31

Moje řešení, a dokonce to ani moc netrvalo. Pořád lepší než průměrná doba doručování balíku českou poštou.

Kód: Vybrat vše

#include <iostream>
#include <map>
#include <initializer_list>

class DiceThrows {
   private:
      std::multimap<unsigned int, unsigned int> m_throws;
      unsigned int m_pos = 1;
   public:
      void add(unsigned int th) {
         if (m_pos <= 1000) m_throws.emplace(th, ++m_pos);
      }

      void add(std::initializer_list<unsigned int> il) {
         for (const unsigned int& v : il) add(v);
      }

      unsigned int next(unsigned int th) {
         auto pos = m_throws.find(th);
         if (pos == m_throws.end()) return 0;
         unsigned int throw_n = pos->second;
         m_throws.erase(pos);
         return throw_n;
      }
};

int main(int argc, char **argv){
   DiceThrows kostka;
   kostka.add({2,5,4,5,6,5,2,5,4,5,2,1,4,1,6,5,2,5,6,5,2,1,4,1,2,3,4,5,2,1,2,5,6,5,2,1,2,5,2,1,2,5,6,5,2,5,6,3,4,5,6,3,2,3,6,5,2,5,4,1,6,5,4,5,2,1,4,5,2,1,6,1,2,3,4,1,4,1,4,3,6,1,4,1,2,1,6,5,2,1,6,3,4,5,2,3,4,1,6,1,6,1,6,1,6,5,6,3,6,3,2,3,2,3,6,5,4,5,6,5,4,1,4,5,6,3,2,3,4,3,2,1,2,3,4,1,2,5,2,1,4,5,2,1,6,3,2,3,2,3,6,5,2,3,2,3,6,5,2,3,6,1,6,5,4,3,2,5,4,1,2,5,4,3,2,1,2,5,4,3,6,3,4,3,2,3,6,1,2,5,4,3,4,1,4,5,6,3,6,3,2,3,6,5,4,5,4,1,6,5,4,3,4,5,4,5,2,3,6,1,4,5,6,3,6,5,4,5,4,5,2,3,2,5,6,3,6,5,6,3,6,1,4,3,6,1,2,3,2,5,4,3,2,5,2,3,4,1,2,3,4,3,4,3,2,1,2,3,6,5,4,5,2,1,4,5,2,5,4,3,4,1,6,3,4,5,6,1,4,3,4,1,4,3,4,3,6,1,2,5,6,5,6,1,2,3,4,5,6,1,2,5,2,5,6,1,6,1,6,5,2,1,6,1,6,3,6,3,4,5,6,1,6,5,4,1,2,3,6,3,4,5,4,1,4,5,4,1,6,3,2,1,6,1,2,5,4,5,4,1,4,1,2,5,6,3,6,1,4,5,6,5,6,1,4,1,6,3,6,5,4,3,2,5,2,5,4,1,6,1,4,1,2,5,2,3,4,1,6,5,4,3,6,5,2,1,2,5,6,5,6,5,4,5,6,1,2,5,4,1,6,3,2,1,2,5,4,5,4,5,4,3,4,3,6,3,4,3,4,5,2,5,6,5,2,1,2,3,2,5,2,5,4,3,6,1,2,1,4,5,6,3,2,3,6,3,4,1,6,5,2,3,2,3,4,5,6,3,6,1,6,3,4,1,2,1,6,1,6,5,6,5,2,5,6,3,6,5,6,5,6,3,6,3,4,5,6,5,4,3,6,1,6,1,4,5,4,5,4,5,4,3,4,3,4,1,2,3,4,1,2,5,2,3,2,3,2,5,6,3,6,5,4,3,6,3,2,1,4,5,2,1,6,3,6,5,4,5,6,5,6,3,6,5,6,3,4,5,4,5,6,5,6,5,2,1,4,1,2,1,6,3,2,5,2,5,6,3,6,1,2,3,6,1,6,5,4,3,4,5,4,5,6,3,4,5,4,3,4,5,6,1,6,5,6,5,4,1,4,1,6,5,6,1,6,5,2,5,2,1,4,3,2,5,2,5,6,1,2,1,6,3,2,3,2,5,6,3,4,5,2,3,6,3,4,3,6,3,4,3,6,1,6,3,4,3,6,5,4,1,4,1,2,5,6,5,6,1,4,1,2,5,2,5,6,1,4,3,4,5,2,3,6,1,6,5,2,3,2,1,2,1,2,5,2,3,2,3,6,5,2,5,2,3,4,3,6,5,2,3,6,3,4,3,2,3,6,5,2,1,6,5,2,1,4,5,2,1,4,5,4,3,4,1,2,1,6,3,4,5,4,1,4,1,6,1,2,5,6,3,6,5,2,3,2,1,6,3,6,1,4,3,4,5,4,5,6,3,2,3,2,5,6,5,2,3,4,1,2,5,6,1,4,1,6,5,6,1,4,1,6,5,6,3,4,1,2,5,4,5,2,3,2,5,2,3,4,5,2,3,2,5,2,1,4,1,4,1,6,1,6,1,2,5,4,1,6,1,6,3,4,5,4,5,4,1,6,1,2,5,4,5,6,3,6,5,6,5,6,1,2,3,4,3,4,5,4,1,4,1,2,3,2,5,2,5,6,3,4,3,2,3,6,5,4,3,4,1,6,1,6,3,4,3,4,3,6,5,4,5,4,3,2,5,2,5,6,1,4,1,2,1,4,5,6,3,2,5,6,3,6,3,4,3,2,1,4,1,6,1,6,3,6,1,2,1,2,3,4,1,2,3,6,5,2,3,2,3,4,5,6,1,2,5,6,5,6,1,6,1,6,3,2,1,2,3,6,5,4,3,6,3,4,3,6,1,4,3,2,1,4,5,6,1,4,3,6,1,4,5,2,5,2,5,2,3,2,5,4,1,6,0});

   std::cout << "Vypis: \n";
   for (unsigned int i = 1; i <= 6; i++) {
      unsigned int cn = 0;
      while ((cn = kostka.next(i)) != 0) std::cout << i << '\t' << cn << '\n';
   }

   std::cin.get();
   return 0;
}
std::endl není nový řádek!

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod faraon » 17 kvě 2017 21:34

Ono to s tou Poštou není zase tak hrozné, byly časy kdy mohlo doručení balíku trvat i měsíce, a není to zase tak dlouho :lol:
Ani nevím, zmínil jsem že tvůrce prvního programovatelného počítače, anglický matematik Charles Babbage, byl také vynálezcem systému jednotného poštovného? Díky němu stačí jenom nalepit známku na dopis a hodit ho do libovolné poštovní schránky.

Teda, vložit zpracovávaná data přímo do kódu programu je dost odvážná koncepce, co se stane když uživatel bude potřebovat zpracovat jinou sadu čísel? :-o
Jó, kdysi v ZX BASICu jsem to dělal také, ono sice šlo uložit pole na kazetu, jenže nahrávat ho při každém spuštění programu znovu do počítače bylo trochu otravné. Zlaté časy s READ a DATA...

Ale mám tu větší problém, nejde mi to zkompilovat s touhle chybou:

Kód: Vybrat vše

razeni.cpp: In member function ‘void DiceThrows::add(unsigned int)’:
razeni.cpp:11:38: error: ‘class std::multimap<unsigned int, unsigned int>’ has no member named ‘emplace’

Že by něco co GCC 4.7.2 ještě nepodporoval? Novější verzi nemám po ruce, takže tvůj program nevyzkouším :?

Na oplátku moje řešení:

Kód: Vybrat vše

#include <stdio.h>
#define MAX 10000

int main(void)
    {
    int i,pocet,vstup[MAX],vystup[MAX],poradi[MAX],index[8]={0};

    for (pocet=0;pocet<MAX&&scanf("%d",&vstup[pocet])&&!(vstup[pocet]<1||vstup[pocet]>6);++pocet) ++index[vstup[pocet]+1];
    for (i=1;i<7;++i) index[i]+=index[i-1];
    for (i=0;i<pocet;poradi[index[vstup[i]]++]=++i) vystup[index[vstup[i]]]=vstup[i];
    for (i=0;i<pocet;++i) printf("%d\t%d\n",vystup[i],poradi[i]);

    return 0;
    }

Použití klasické unixové: ./kostky <hozene.dat >serazene.txt
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

someoneFromSomewhere
nováček
Příspěvky: 20
Registrován: květen 17
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod someoneFromSomewhere » 18 kvě 2017 22:48

Jo jo, bohužel tvoje verze ještě nepodporuje .emplace(). Je to relativně novinka (C++11), výhodný alternativa pro .push_back(), protože objekt vytváří až přímo tam, kde se vkládá (a nevytváří ho hned a pak vkládá jen kopii).

Kromě toho, mi zase nešel zkompilovat ten tvůj, ale vyřešil jsem to. Visual studio už to nedovolí, kvůli použítí scanf, což je už dneska považováno za nebezpečné. (alespoň ve Visual Studio 2017 E)

Ty data na pevno, no ... je to samozřejmě moje chyba. Původně jsem chtěl čísla vložit přes std::cin, ale měl jsem problémy s načítáním (dostával se mi do bufferu balast, který mi nešel vyhodit ven). Takže jsem to takhle vytentil :D

Osobně se snažím co nejvíc používat C++11 a okrajově i C++17 (hlavně std::optional se mi líbí). Příjde mi, že lidi vůbec "neví" o tom, že něco takového je. U mně na škole jsem měli v algoritmech (u popisu co to jsou) toto: "Netřeba vynalézat kolo". A přesto většina už dávno implementované funkce / třídy nepoužívá. Když si vezmeme, že už to je hodně dlouho, co je C++11 na světě.
A věci jako chytré pointery (zejména std::unique_ptr), pestrobarevné STL kontejnery (třeba ta multi-mapa) nebo knihovnu algorithm ... to je neznámá, o které neví ani učitelé pomalu.

Postupně dodělám všechny ty bity, jestli o to je vůbec ještě zájem (?), ale je to pěkné zpestření několikaminutové přestávky.

Zajímavé to s tou poštou. Co se člověk nedozví jen tak :D
std::endl není nový řádek!

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod CZechBoY » 19 kvě 2017 01:36

@someoneFromSomewhere taky mám v plánu udělat ty bty všechny, ale ty logický úlohy mi moc nejdou :D
Co ty studuješ že se takhle vyznáš v C++?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod faraon » 19 kvě 2017 05:00

C++11 už to zná, ale holt ne dost.

Redmondští matlalové zase vymýšlejí jak zničit co funguje a vecpat všem svoje nefunkční bastly. Funkce scanf() je nebezpečná pouze při načítání řetězců, pokud se používá pro čísla, je naopak velmi výhodná. Ale musí se kontrolovat návratová hodnota, což jsem v tomhle případě neudělal. Naštěstí není problém místo ní použít vlastní getint() nebo něco jiného.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

someoneFromSomewhere
nováček
Příspěvky: 20
Registrován: květen 17
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod someoneFromSomewhere » 19 kvě 2017 14:42

CZechBoY píše:@someoneFromSomewhere taky mám v plánu udělat ty bty všechny, ale ty logický úlohy mi moc nejdou :D
Co ty studuješ že se takhle vyznáš v C++?


Na VŠB informatiku, ale učím se všechno sám různě z internetu (cppreference.com :D ), protože jinak bych neuměl vůbec nic (ehm ehm).


faraon píše:...

Ono se spíš jedná o to, že se berou jako low-level funkce. Tak aby to nepoužíval ten, kdo nemá tušení co to dělá (člověk nikdy neví).
std::endl není nový řádek!

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod faraon » 19 kvě 2017 17:07

Tak když už někdo chce používat C, předpokládá se že si tu Bibli aspoň přečte. A fakt nepomůže zakázat jednu ze základních funkcí (zvlášť když to udělají ti samí idioti, kteří mají miliardy bugů a bezpečnostních megaděr v programech, které neobsahují ani jeden scanf()!). Není to low-level, je to základní knihovna. Něco jako BIOS. Ale doufám že v tom VS zakázali i gets(), protože ten je mnohem nebezpečnější než scanf() :twisted:

Nejjednodušší bude když to zkompiluješ v něčem co ti nehází klacky pod nohy, třeba Dev-C++. A třeba přitom zjistíš že méně je někdy více...

Když zkusíš všechny úkoly, budu jenom rád. Tohle je myšlené jako "Kdo si hraje, nezlobí!", a jde jenom o to, ukázat svoje řešení. Pokud možno jiné než všichni ostatní, a to určitě splňuješ :-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

someoneFromSomewhere
nováček
Příspěvky: 20
Registrován: květen 17
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod someoneFromSomewhere » 19 kvě 2017 18:17

^^ Ono se to dá vypnout jednoduše makrem (ale fuj...). Gets() je taky zakázaný (potěšen ? :D )

"Tak když už někdo chce používat C, předpokládá se že si tu Bibli aspoň přečte." - ale kdo by dneska něco četl, že ? Nenapočítal bych, kolikrát jsem někoho odkázal na cppreference, tutorialspoint a podobné, ale vždycky se mě nakonec na to zeptají (místo toho aby si to přečetli). Možná je to tím, že se dívají na pokročilé věci, místo toho aby se naučili pořádně základy.
std::endl není nový řádek!

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Malá hra o velkého Bajta (6) - Házení kostkou

Příspěvekod faraon » 20 kvě 2017 09:22

U gets() potěšen jsem, ale jestli zakázali i fgets(), který dělá totéž naprosto bezpečně, tak je to opět banda idiotů ;-)

Jo, se čtením je dneska všeobecný problém. Kdekdo si myslí že se podívá na nějaký tutoriáln na YouTube, a za hodinu z něj bude druhý Bill Gates. Ne že by to byl kdovíjak dobrý programátor, ale jiného ten trouba stejně nezná...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Malá sestava do 30 tisíc
    od kupjec » 20 zář 2023 21:24 » v Rady s výběrem hw a sestavením PC
    14
    2184
    od kupjec Zobrazit poslední příspěvek
    25 zář 2023 11:26
  • Výběr skříně (zakoupená je malá) Příloha(y)
    od DaveMove » 09 čer 2023 15:35 » v Problémy s hardwarem
    8
    790
    od meda2016 Zobrazit poslední příspěvek
    09 čer 2023 20:27

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti