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

C# .NET .NET (C# a Visual Basic) Seznam vyzkoušených párů American English version English version

Avatar
matesax
Redaktor
Avatar
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

"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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Bezza
Redaktor
Avatar
Bezza:

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
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
matesax:

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
Redaktor
Avatar
Odpovídá na matesax
TomBen:

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
Redaktor
Avatar
Odpovídá na matesax
Kit:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
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
Redaktor
Avatar
Odpovídá na TomBen
Kit:

... 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  +1 20.10.2012 13:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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
Redaktor
Avatar
Odpovídá na TomBen
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
TomBen:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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  +1 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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na TomBen
David Čápka:

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  +1 20.10.2012 13:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.