IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Vzorce pro průběh hry

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Verquido
Tvůrce
Avatar
Verquido:27.1.2020 17:04

Sestavení rovnic k řešení problému

Zkusil jsem: Sestavení rovnic k řešení problému

Chci docílit: Zdravím,

Potřeboval bych vyřešit zadání příkladu. Jde o hru ke které potřebujeme podle zadání vymyslet základní rovnice podle kterých budeme pak implementovat program.

Program by měl řešit hru "Vladce ostrova". Aktuální stav ostrova je určen zejména počem obyvatel a peněžním pokladem. Je dána rozloha ostrova (v hektarech, zemědělská půda). Stav je dán aktuální produktivitou továren (PRODUKTIVITA - udáváná v procentech z investovaných prostředků), výnosnostní půdy (VÝNOS - udáván ve výnosnosti na hektar) a spotřebou byvatel (spotřeba - udávána spotřebou na obyvatele a rok). Ivestuje-li hráčnapříklad 1000 jednotek do průmyslu, zvýší se poklad o 1000 * (PRODUKTIVITA - 1) jednotek. Investuje-li hráč například tisíc jednotek do zemědělství, zvýší se poklad o 1000 * (VÝNOS) jednotek. Každý rok se odečte od pokladu spotřeba obyvatel ostrova určena parametrem spotřeba. Poklad je veden v celých číslech.

Pravidla hry:

  • Hra probíhá v ročních cyklech (krok = rok)
  • Vládce investuje poklad nebo jeho část do zemědělství a do průmyslu
  • podle investovaných prostředků a produktivity či výnostnosti se určí HDP
  • Odečte se spotřeba obyvatel ( pokud výnos nestačí, odpovídajíc část obyvatel zahyne)
  • Hra končí úspěchem pokud se vládci podaří vládnout 10 let, aniž by vymřelo obyvatelstvo ostrova
  • Hra končí neúspěchem pokud zahynou všichni obyvatelé

Každý krok se zadává ivestive ve tvaru průmysl/zeměděl­ství.

Děkuji

 
Odpovědět
27.1.2020 17:04
Avatar
Odpovídá na Verquido
Luboš Běhounek Satik:27.1.2020 18:24

A k čemu jsi teda zatím dospěl? :)

Nahoru Odpovědět
27.1.2020 18:24
https://www.facebook.com/peasantsandcastles/
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Verquido:27.1.2020 18:26

Že je tam ostrov a obyvatelé.

Netuším základní rovnice, hlavně k výpočtu "PRODUKTIVITA", "VÝNOS", "SPOTŘEBA" a jejich použití.

 
Nahoru Odpovědět
27.1.2020 18:26
Avatar
Odpovídá na Verquido
Luboš Běhounek Satik:27.1.2020 18:34

Tak muzes zacit tim, ze si vypises, jaky vsechny promenny budes potrebovat.

Ale prijde mi to, ze moc snahy nevyvijis.
Pomuzeme kdyz se zaseknes, ale delat za tebe to tu nikdo nebude ;)

Editováno 27.1.2020 18:34
Nahoru Odpovědět
27.1.2020 18:34
https://www.facebook.com/peasantsandcastles/
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Verquido:27.1.2020 18:49

Pravědpodobně tyto:

"PRODUKTIVITA", "VÝNOS", "SPOTŘEBA"

Snažil jsem se přijít na celé řešení, ale nemohu se dostat přes návrh hlavních rovnic pro použití v programu podle zadání.

 
Nahoru Odpovědět
27.1.2020 18:49
Avatar
Odpovídá na Verquido
Luboš Běhounek Satik:27.1.2020 19:10

tech promennych budes potrebovat urcite vic, jak chces z tehlech 3 promennych poznat treba pocet obyvatel? :)

Nahoru Odpovědět
27.1.2020 19:10
https://www.facebook.com/peasantsandcastles/
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Verquido:27.1.2020 19:18

V základu už tam pár proměnných je. Například počet obyvatel nebo rozloha ostrova a základní poklad, ale poté už nevím jak pracovat s tím co jsem poslal. Nechápu kde se vezmou tyto 3 proměnné.

 
Nahoru Odpovědět
27.1.2020 19:18
Avatar
Odpovídá na Verquido
Luboš Běhounek Satik:27.1.2020 19:22

ty si tam muzes pridat, ne? Pokud mas nejaky zaklad, tak ho sem hod taky, vlozit jako kod.

Nahoru Odpovědět
27.1.2020 19:22
https://www.facebook.com/peasantsandcastles/
Avatar
Verquido
Tvůrce
Avatar
Verquido:27.1.2020 19:37
void init(void) {
        pocet_obyvatel = 10000;
        penezni_poklad = 1000000;
        pocet_hektaru_pudy = 500;
        return;
}

void krok(int p, int z) {
// p = prumysl
// z = zemedelstvi
        if (z <= 0) pocet_obyvatel = 0;
        return;
}

Prakticky je jen funkce init která zadá základní proměnné a pak každý krok se volá funkce krok s investicemi do průmyslu a zemedelstvi.

 
Nahoru Odpovědět
27.1.2020 19:37
Avatar
Luboš Běhounek Satik:28.1.2020 10:41

Zacit muzes tou jednodussi casti, ze si spocitas, kolik mas v kazdem kroku odecist podle spotreby, verim, ze na to prijdes.

Potom si muzes pripravit promennou, do ktere budes pocitat zisky a zkus ji nejak jednoduse nastrelit, at mame aspon neco, od ceho se muzeme odpichnout, i kdyz by byla spatne.

Nahoru Odpovědět
28.1.2020 10:41
https://www.facebook.com/peasantsandcastles/
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.2.2020 10:17

To zadani je zmatene, nejasne, neuplne.
Projdi si to dukladne. Navrhni system podle sebe a pak bez zkonzultovat nejasnosti se zadavatelem, aby vedel, jak jsi to pochopil a priste to rekl mnohem lepe.
Jestli je zadavatel ucitel, tak bud IT je uplny tupec nebo vas chce donutit premyslet, jak komunikovat se zadavatelem a ziskat dalsi informace. Hlavne, jak zformulovat sve pozadavky jasne a strucne. Co ti vlastne schazi.

Pokud budu uvazovat podobnost s rd2.cz, pak by to mohlo byt nejak takto

rozloha = 1000
obyvatel = 1000
tovarny = 1000
obyvatel v tovarnach = 30% = 300
produktivita = nejaky vzorecek zavislost pocet tovaren na 1 ha rozlohy = 1
zisk tovarny = obyvatel * produktivita = 300 * 1 = 300 jednotek

Jak se to pocita u tebe nemam vubec zdani. Jestli pocitas s produktivitou vypocitanou predchozi rok nebo jak.
No, kazdopadne, kdyz nevyprodukujes dost jednotek jidla, tak ti zemrou nejaci hladovy obyvatele. A kdyz zas nebudes mit dost zlata, nemuzes pristi rok dost investovat do tovaren a bude ti zlata ubyvat a ubyvat...

 
Nahoru Odpovědět
3.2.2020 10:17
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Peter Mlich:3.2.2020 10:23

Nemuzes pocitat nic, protoze nemas zadane vztahy mezi jednotlivymi polozkami. Jaka hodnota bude u ceho vychozi a cim docilis zmeny. To tam proste v zadani neni. Pouze je tam neco jako obrazek jpeg a zbytek si asi ma urcit sam, principy, vzajemne vztahy. Z obrazku fakt nevykoukas propojeni mezi zlatem, rozlohou, produkci z tovaren, produkci z pudy. O tom, ze ma mit nejaky pocet tovaren a jak to ovlivnuje neco dal, tam nic neni. Mozna, ze nema mit tovarny, jen ma pracovat s jakymsi cislem produkce. Ktere ale vykouzli jak? Ti preji hodne stesti :)
Ja si to zadani prosel nekolikrat a prisel jsem na to, ze je to nesmysl. A nebo je mun 40 lety mozek uz prilis stary na to aby porozumnel zadani zakaznika.

 
Nahoru Odpovědět
3.2.2020 10:23
Avatar
Odpovídá na Peter Mlich
Luboš Běhounek Satik:3.2.2020 12:20

Ze je to zadane dost nejasne, zmatene a spoustu veci clovek musi hadat/domyslet naprosto souhlasim.

Ja to bral podle jedinyho reseni, co me v rychlosti napadlo a davalo mi tak nejak smysl:

Jedina komodita je poklad, kterej ziskavas z zemedelstvi i prumyslu a zemedelstvi ti jeste navic urcuje, jestli mas dostatek jidla pro lidi a rozloha jen urcuje celkovou produkci, pomer .
Rozloha je jen konstanta co ovlivnuje zemedelstvi, zatimco u tovaren rozlohu vubec neresis.

Nahoru Odpovědět
3.2.2020 12:20
https://www.facebook.com/peasantsandcastles/
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:3.2.2020 13:57

Aha. Cili, podle tebe, automaticky, co vyprodukujes navic v zemedelstvi, tak jde do do zlata. Jinak se to sni. Takze, min bodu do zemedelstvi musi odpovidat obyvatelum. A rust obyvatel se ridi cim? Nebo obyvatele jenom umiraji? A obyvatele spotrebuji 1 jednotku z produkce zemedelstvi, jo? A cim se ridi hodnoty vynos a produktivita? To jsou take konstanty? To mi prave moc nedavalo smysl.

obyvatele = 10
zlato = 300
rozloha = 100 ha
vykon delnici = 1j/10bodu  (PRODUKTIVITA - udáváná v procentech z investovaných prostředků)
vykon zemedelci = 0.01j/1ha/1bod (VÝNOS - udáván ve výnosnosti na hektar)
spotreba jidla = 1j/1obyvatel

Cili, pak, kdyz investujes body, tak stav po prvnim kole by byl takovyto?
zlato -= 300 (investuji vsech 300 zlata)
290 : 10 - rozdeleni zlata mezi delniky a zemedelce
//zlato += 290 * (0.1 - 1) // nebo
zlato += 290 * (1.1 - 1) = 29 // ale ten vzorecek v zadani tomu neodpovida
jidlo = 0 (start)
jidlo -= 10 (obyvatel)
jidlo += 10 * (0.01*100) = 10
zlato += prebytek jidlo
obyvatele -= nedostatek jidlo

A nebo se jidlo odecita od zlata? I tak, v mem nastaveni by bylo vyhodnejsi investovat vse do jidla. A i tak brzo prijdes o vsechno zlato a pujde to cele do kytek :)

 
Nahoru Odpovědět
3.2.2020 13:57
Avatar
Odpovídá na Peter Mlich
Luboš Běhounek Satik:3.2.2020 14:42

rust obyvatel neni, spotreba jidla tam je dana konstantou v ty kostre kodu, zbytek se mi ted nechce premyslet, jak by to mohlo / melo byt :D

Nahoru Odpovědět
3.2.2020 14:42
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Peter Mlich
Ondřej Šrytr:18.2.2020 15:28

Na naší škole se jednalo o zkouškové zadání... s tím, jaký je zadavatel, bych souhlasil :)

 
Nahoru Odpovědět
18.2.2020 15:28
Avatar
MpCk
Člen
Avatar
MpCk:19.2.2020 19:44

Souhlasim s tim, ze v zadani jsou diry , ale nejsou podle me tak podstatne..jed­noduse podle toho co si popsal:
Fce volana kazdy rok(z:investice do zemedelstvi, p:invest.do prumyslu){
Kontrola jestli tolik muzes investovat(za predpokladu, ze neni zadano v procentech z celku..ale i pak se hodi kontrola na kladne zadani)
Prirustek=0;
Prirustek+=PRO­DUKTIVITA*p vynos z prumyslu;
Prirustek+=VY­NOS*z
vynos z zemedelstvi;
Pokud Prirustek mensi PocetObyvatel - odecti od Pocet obyvatel rozdil;
Poklad+=Prirustek;
Pokud PocetObyvatel mensi nula...koncis­..jinak dalsi rok...

 
Nahoru Odpovědět
19.2.2020 19:44
Avatar
MpCk
Člen
Avatar
Odpovídá na MpCk
MpCk:19.2.2020 19:45

Jen teda pocet ha nedava smysl, kdyz pocitas vynosnost ze zemedelstvi jen z invest.prostredku krat konstanta/pro­menna..spis by tam melo byt vynos z ha*pocet ha*investice v zemedelstvi

 
Nahoru Odpovědět
19.2.2020 19:45
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 18 zpráv z 18.