NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Seznam vyzkoušených párů

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
matesax
Tvůrce
Avatar
matesax:19.10.2012 15:53

Dobrý den,
jak to udělat co nejednodušeji? Abych nebyl závislý na pořadí dat v páru. Potřebuji porovnávat, jestli tato kombinace - nezávisle ne pořadí (prví, druhý/druhý, první) nebyla již jednou zkoušena... Děkuji.

 
Odpovědět
19.10.2012 15:53
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:19.10.2012 16:39

Asi bych potřeboval více informací, konkrétně co je ten pár zač, jestli máš pole párů nebo chceš párovat 2 pole s hodnotami a tak.

Nahoru Odpovědět
19.10.2012 16:39
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:19.10.2012 16:46

Mám seznam číslic a seznam vektorů - čísla jsou dvě řady 1..8 Tedy v tomto seznamu je každé číslo 2x... Proto potřebuji ten druhý údaj - Vector2. Takže potřebuji dostat bool - zda jsem tuto kombinaci - číslo + Vector2 již nezkoušel - a to jak Vector2 + číslo, tak číslo + Vector2...

 
Nahoru Odpovědět
19.10.2012 16:46
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:19.10.2012 17:03

A teď prosím česky, ať tomu máme šanci porozumět. K čemu to vlastně potřebuješ? Takže máš tři seznamy?

Nahoru Odpovědět
19.10.2012 17:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:19.10.2012 17:06

"Tedy v tomto seznamu je každé číslo 2x"

  • seznam Vector2.

= 2 seznamy...

A vybírám vždy jeden prvek z každého => jeden pár. A chci vědět, že jsem tento pár ještě nezkoušel...

 
Nahoru Odpovědět
19.10.2012 17:06
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:20.10.2012 10:54

Pořád to úplně nechápu, beru že máš prostě 2 nějaké seznamy a jejich hodnoty páruješ. Jestli ti nějak moc nezáleží na rychlosti, tak nejjednodušší je si udělat třetí seznam, kde budeš mít dvouprvková pole vždy 2 hodnot, co jsou spolu spojené. Pro vyzkoušení, zda pár již není asociovaný, budeš muset celý list proiterovat.

Ono by bylo lepší říci co děláš, než co si myslíš, že potřebuješ. Třeba to děláš dobře, ale třeba taky ne.

Editováno 20.10.2012 10:54
Nahoru Odpovědět
20.10.2012 10:54
New kid back on the block with a R.I.P
Avatar
Bezza
Tvůrce
Avatar
Bezza:20.10.2012 10:58

Nešlo by to udělat tak, že by se každému prvku přiřadilo číslo(1,2,...), při každém výběru by se ta čísla sečetla a uložila. Potom by se jen po každém výběru provedla kontrola, jestli ten součet už neexistuje. :)

S programováním moc společného nemám, takže popřípadě neberte tenhle komentář moc vážně... :`

Editováno 20.10.2012 10:59
Nahoru Odpovědět
20.10.2012 10:58
Je jedno kolik chyb uděláš, ale nenapravit je, to je teprv průšvih!
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:20.10.2012 11:07

Dělám PC mód do karetní hry. (pexeso) No a chci jej udělat inteligentní - takže ze seznamu karet, které jsou ještě na stole, chci vypíchnout právě ty nepoužité kombinace - a až z nich vybírat náhodným číslem. (Ne naopak - prvně vybírat a pak se ptát - vyhnu se tak cyklu.) To si žádá, aby druhý pár byl známý - aby se ale dala vytáhnout i karta neznámého páru, chci to udělat tak, že když bude objevena druhá karta ze známého páru, pokud hráč tuto dvojici nevybere, tak v dalším kole si PC vybere tento pár. Jinak načne nový - neznámý pár...

 
Nahoru Odpovědět
20.10.2012 11:07
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:20.10.2012 11:15

Pokud vím, tak pexeso funguje jinak, počítač by měl mít uložené dvourozměrné pole a pamatovat si, kde je která karta (jakmile ji otočí, tka ji tam zapíšeš). Pak se jen díváš, jestli tam již nemáš 2 stejné, odkryté. Můžeš tam dát nějaký random, aby to neblyo tak chytré.

Nahoru Odpovědět
20.10.2012 11:15
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:20.10.2012 11:42

Ano karty mám dané - znám jejich vektor a párové číslo. Podle vektoru vykresluji. A podle párového čísla kontroluji shodu... (To jsou ty 2 řady 1..8) Mám to na mysli dosti podobně. Chci to udělat tak, že se podívám, zda k otočené kartě není pár, jinak zvolím náhodě - v rozsahu karet, u kterých to má smysl. Ale tady narážím na problém - jak otočené a hotové páry (avšak ještě neodstraněné) zapisovat - to tu nyní řeším... Děkuji.

Editováno 20.10.2012 11:44
 
Nahoru Odpovědět
20.10.2012 11:42
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:20.10.2012 11:50

A proč máš tolik seznamů, snad stačí jeden seznam instancí Karta, ne? Počítači udělej ten samý s vektory, ale bez pořadových čísel a ty postupně doplňuj.

Nahoru Odpovědět
20.10.2012 11:50
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:20.10.2012 11:54

Nemám 2 seznamy - mám jden slovník - převádím pozici myši do 70x70 políčkové soustavy a koukám do slovíku, popř. při kliknutí kartu otočím...

A hráče od PC nerozděluji - mám seznam hráčů - a když je aktuální hráč PC - zahraje utomatickou hru. Tím beru otočené karty i od hráčů - protože to tak funguje - ostatní hráči také vidí tahy ostatních...

Editováno 20.10.2012 11:57
 
Nahoru Odpovědět
20.10.2012 11:54
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:20.10.2012 11:57

Nebylo by lepší to dělat objektově?

Nahoru Odpovědět
20.10.2012 11:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:20.10.2012 11:59

A jak - mám jen 5 proměnných - to je celá hra (+ 1 struktura - hráč). Celý herní kód má 22 řádků...

 
Nahoru Odpovědět
20.10.2012 11:59
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:20.10.2012 12:02

Minimálně karta je objekt. Že je něco krátké neznamená, že je to správně. Kdyby ses to rozhodl někdy rozšířit, tak by to s těmi všemi slovníky nebylo úplně hezké.

Nahoru Odpovědět
20.10.2012 12:02
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:20.10.2012 12:05

No ale píši tu jen o jednom slovíku... + 2 listy, int[] a 2 textury...

 
Nahoru Odpovědět
20.10.2012 12:05
Avatar
Kit
Tvůrce
Avatar
Kit:20.10.2012 12:06

Každá karta na stole je objekt, který dokáže reagovat na události od uživatele (kliknutí). Bude to fungovat i kdyby se karty překrývaly, což je ve tvé metodě obtížně dosažitelné.

Editováno 20.10.2012 12:06
Nahoru Odpovědět
20.10.2012 12:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:20.10.2012 12:11

No jo, jenomže já to neberu z pohledu karty - ta žádnou funkci nemá - nač bych se dělal s nějakým složitým modelem? Prostě otestuji upravenou pozici myši - nač dělat program dělším - nemyslím si, že je OOP nutné za každou cenu... Jinak jej normálně využívám.

 
Nahoru Odpovědět
20.10.2012 12:11
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na matesax
TomBen:20.10.2012 12:20

Takové věci jako stavy ( prohlédnuto/ne­prohlédnuto ) lze dobře
nacpat do párového čísla, protože párů bývá obvykle méně než je
rozsah použité proměnné. Např. záporná hodnota páru řekne, že byl
otočen - čili při otočení změníš hodnotu na -(hodnotu).

Nezávisle na tom, jde-li o objekty nebo ne.

Nahoru Odpovědět
20.10.2012 12:20
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:20.10.2012 12:22

C# je objektový jazyk.

Nahoru Odpovědět
20.10.2012 12:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 12:44

Takhle se ale neprogramuje, nejsme na kalkulačce s omezenou paměti, jsme na počítači.

Nahoru Odpovědět
20.10.2012 12:44
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 12:47

A proč plýtvat?

Nahoru Odpovědět
20.10.2012 12:47
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:20.10.2012 13:01

... aneb šetřit se má, ať to stojí, co to stojí :)

Pokud chceš šetřit pamětí a výkonem procesoru, programuj v Assembleru, Fortranu, C nebo jiném výkonném programovacím jazyku. Tvé programy budou úsporné, rychlé a efektivní. Tedy pokud to umíš.

Pokud chceš šetřit svůj čas vývojáře, použij moderní programovací jazyky, které za tebe udělají hromadu práce vývojáře, ale jako daň si vezmou o něco menší efektivitu výsledné aplikace. Pokud s tím umíš, rozdíl ve výkonu nebude příliš velký, ale vývoj programu bude rychlejší a bude mít lepší udržovatelnost.

Nahoru Odpovědět
20.10.2012 13:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 13:02

Plýtvání je definováno jako něco zbytečného, psát kód tak, aby mu člověk rozuměl, není plýtvání. Ale debata o čistotě kódu s GM programátorem nemá smysl, již jsem se několikrát vyjadřoval k tomu, že nikoho nezajímá, jestli je ten kód dobře, hlavně když panáček dělá to, co chtějí.

Nahoru Odpovědět
20.10.2012 13:02
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 13:06

O GM jsem neříkal nic.

Nahoru Odpovědět
20.10.2012 13:06
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na TomBen
Kit:20.10.2012 13:14

Navrhuješ vkládat dva údaje do jedné proměnné. Bylo by to porušení 1NF a to není dobré ani v databázích, ani v aplikacích.

Nahoru Odpovědět
20.10.2012 13:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Kit
TomBen:20.10.2012 13:17

Myslel jsem, že u aplikace by to takový hřích nebyl.
Ale asi je to pak skutečně méně čitelné.

Nahoru Odpovědět
20.10.2012 13:17
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 13:18

No ale děláš v něm :P Proměnná (přesněji atribut) má vypovídat o jedné vlastnosti objektu. Pokud jich má ten objekt více, dám mu více atributů. Jak říkal Kit, pokud chceš šetřit, tak k tomu jsou jiné nástroje.

Nahoru Odpovědět
20.10.2012 13:18
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 13:28

Dělám leccos, dělal jsem leccos a budu dělat leccos.
Pokud to nedělám profesionálně, nikam mě to neřadí a neznamená to,
že by mě nic jiného nezajímalo. Prostě mi přišlo to řešení vhodné.
Když to tak není, rád se dozvím důvod. A teď už ho vím.

Nahoru Odpovědět
20.10.2012 13:28
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 13:39

Ok, omlouvám se. Vidím, že tebe tam řadit nemám, dá se s tebou docela normálně mluvit :) Jen zvyk, hodně těch lidí, co v tom dělá, si nedá poradit.

Nahoru Odpovědět
20.10.2012 13:39
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:20.10.2012 13:51

JJ. Už jsem si skoro vyčítal,že jsem v tobě probudil
zase nějaký ten flame event. :D

Nahoru Odpovědět
20.10.2012 13:51
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na TomBen
David Hartinger:20.10.2012 13:55

Já moc neflamuji, spotřebovává to čas a energii :) Pokud člověka nepřesvědčím v pár odpovědích o správném názoru, nechám toho.

Nahoru Odpovědět
20.10.2012 13:55
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 32 zpráv z 32.