Yksikätinen rosvo –hedelmäpeli

Pitäisi tehdä koulun harkkana seuraavaa:

Yksikätinen rosvo –hedelmäpeli.


Pelissä arvotaan kolme satunnaislukua väliltä 0 – 9.
Pelin alussa Sinulla on rahaa 5 €. Yksi peli maksaa 0,5 €.
Jos yksi arvotuista luvuista on seiska, voitat 1 €. Jos arvotuissa on kaksi seitsikkoa, voitat 5 €. Jos kaikki kolme lukua ovat seiskoja, voitat 10 €.
Jokaisen arvonnan jälkeen ohjelma näyttää arvotut luvut ja senhetkisen rahatilanteen sekä kysyy ”Haluatko jatkaa (k/e)? ”. Jos vastaat k:lla, peli jatkuu niin kauan kuin rahaa riittää. Jos vastaat muulla kuin k:lla, peli loppuu. Lopussa peli tulostaa pelattujen kierrosten lukumäärän.

Auttakaa - pliis!!!!
164604
Äänestä

Muut lukivat myös

Vastaukset 16

Vanhimmat

Et sen kummemmin eritellyt mikä osa tuottaa ongelmia. Haluatko siis koko tehtävän ratkaisun valmiiksi purtuna ja valmiiksi tehtynä?

Äänestä
  • Itselläni ei ole hajuakaa kuinka toteuttaa ko. ohjelma - joten kaikki neuvot ovat tervetulleita. Valmis koodi olisi aina parasta mitä maa päällä kantaa!

    Äänestä

  • Lauri kirjoitti:

    Itselläni ei ole hajuakaa kuinka toteuttaa ko. ohjelma - joten kaikki neuvot ovat tervetulleita. Valmis koodi olisi aina parasta mitä maa päällä kantaa!

    Onnea valitsemallasi tiellä

    Äänestä

#include
#include
#include


int l1,l2,l3, tmp;

float rahat = 5.0;


loopissa

rahat -= 0.5;


randomize();

// arvotaan 0-9
l1 = random (9);
l2 = random (9);
l3 = random (9);

tmp = 0;

// seiskojen määrä
if (l1 = 7) tmp ;
if (l2 = 7) tmp ;
if (l3 = 7) tmp ;

// voitot
switch(tmp)
{
case 1: rahat = 1.0; break;
case 2: rahat = 5.0; break;
case 3: rahat = 5.0; break;
}

tuosta puutuu tavaraa... yksi looppi ja jotain muuta ;)

Äänestä
  • Apua kaivataan...

    Jos joku osaa vielä täydentää ohjelmaa niin apu otetaan mielellään vastaan! :)

    Äänestä

  • Lauri kirjoitti:

    Apua kaivataan...

    Jos joku osaa vielä täydentää ohjelmaa niin apu otetaan mielellään vastaan! :)

    // seiskojen määrä
    if (l1 = 7) tmp ;
    if (l2 = 7) tmp ;
    if (l3 = 7) tmp ;

    pitäsisi olla == ei =

    Äänestä

  • cpp kirjoitti:

    // seiskojen määrä
    if (l1 = 7) tmp ;
    if (l2 = 7) tmp ;
    if (l3 = 7) tmp ;

    pitäsisi olla == ei =

    Itse olen tottunut että ohjelman alussa on tuo #include tai joku ton tapainen!

    Eli nuo seuraavat:

    #include
    #include
    #include

    Äänestä

  • Lauri kirjoitti:

    Itse olen tottunut että ohjelman alussa on tuo #include tai joku ton tapainen!

    Eli nuo seuraavat:

    #include
    #include
    #include

    iostream on käytössä lähinnä C :ssa, nuo muut ovat käytössä C:ssä.

    Tässäkin ajassa mitä odottelet valmiita vastauksia, niin olisit tehnyt tuon jo (oikeasti tuon tekemiseen ei todellakaan pitäisi mennä kauaa). Tosin voin minäkin tehdä tuon, 100 e / h alv.

    Äänestä

Tein purkkakoodillani tuollaisen viritelmän. Se toimii, mutta on aika rumaa katseltavaa. Ei joku viitsisi kertoa mikä minulla menee pieleen?

#include
#include
#include
#include

void tulostarahat(int);
int main(int argc, char *argv[])
{
cout

Äänestä
  • Oletkos miettinyt mitä tapahtuu kun switch(osumia)
    -käsky suoritetaan arvolla osumia=0? Eli
    default: {voitot=0; break;} kehiin.

    Olisit voinut täsmentää mitä virheitä koodissasi oli!

    Äänestä

  • #include (ilman .h:ta). Samoin muutkin, koska koodi näyttää olevan C :aa.

    coutille voi antaa std::endl \n:sijaan, tyyli- ja siirrettävyysseikka.

    Kirjoita time(NULL) time(0) sijaan selkeyden vuoksi. While-looppi, jossa on tuo time-kutsu ajetaan erittäin nopeasti, joten muuttuja aika saanee aina saman arvon.

    Rivillä cout i;

    Äänestä

  • Kärpät kirjoitti:

    Oletkos miettinyt mitä tapahtuu kun switch(osumia)
    -käsky suoritetaan arvolla osumia=0? Eli
    default: {voitot=0; break;} kehiin.

    Olisit voinut täsmentää mitä virheitä koodissasi oli!

    Tuo probleema on kierretty jo, joka kierroksen alussa tuo muuttuja alustetaan nollaksi, ja se muuttuu jos on tarpeen.

    Ja selviä bugeja tuossa ei ole, mutta tuo koodi on vain saakelin rumaa. Se ei noudata mitään tyylisääntöjä, ja muutenkin se toimii aika tarkkaan purkalla. Ohjelman pienikin muokkaus johtaa helposti kaiken tekemiseen uusiksi jne...
    Tästä tahtoisin päästä eroon, mutta... :(

    Äänestä

  • Mik kirjoitti:

    #include (ilman .h:ta). Samoin muutkin, koska koodi näyttää olevan C :aa.

    coutille voi antaa std::endl \n:sijaan, tyyli- ja siirrettävyysseikka.

    Kirjoita time(NULL) time(0) sijaan selkeyden vuoksi. While-looppi, jossa on tuo time-kutsu ajetaan erittäin nopeasti, joten muuttuja aika saanee aina saman arvon.

    Rivillä cout i;

    Ookke... Mielestäni tuo tulosjuttu on enempi "true" kun luvut ovat peräkkäin, mielipideasia minusta.
    Lisöksi ainakin minulla tuo (Ainakin taisi :>)skipata loppuosan, jossa kerrottiin pelien lukumäärä jne. jos tuota ciniä ei ollut. En muistanut missä otsikkotiedostossa oli se system() juttu, jolla sai sen siististi pausettamaan, että suoraan DevC :n Compile&Run ei sammuta ikkunaa heti kun se on valmis(Tai no, tuo estää sitä olemasta valmis heti, jyy nou).
    No juu... Kiitoksia palautteesta ^^

    Äänestä

  • Kantsii miettiä josko ohjelman pilkkoo osiksi, esimerkiksi Olio joka suorittaa arvonnan, olio joka hoitaa näytölle tulostuksen, olio joka pitää kirjaa rahasta, Olio jolla on ohjelman kontrolli eli jonkin sortin silmukointi mikäli dos prompttissa on tarkoitus ajaa. Näin ohjelmasta tulee modulaarinen ja yhden kohdan korjaaminen ei aiheuta ongelmia muualla.

    Äänestä

  • Koodari kirjoitti:

    Kantsii miettiä josko ohjelman pilkkoo osiksi, esimerkiksi Olio joka suorittaa arvonnan, olio joka hoitaa näytölle tulostuksen, olio joka pitää kirjaa rahasta, Olio jolla on ohjelman kontrolli eli jonkin sortin silmukointi mikäli dos prompttissa on tarkoitus ajaa. Näin ohjelmasta tulee modulaarinen ja yhden kohdan korjaaminen ei aiheuta ongelmia muualla.

    #include
    #include
    #include
    #include

    class peli {
    private:
    int rahat, played;
    int arvonumerot(int wannabe, int count);
    public:
    int AnyMoney() { if (rahat

    Äänestä

rosvo. sonerassa kukaan ei tiedä mitään eikä osaa mitään. romua ja roskaa myydään ja luvataan ummet ja lammet. ainoa mikä tulee ajallaan on lasku.

Äänestä

Kommentoi aloitusta


Lauri kirjoitti:

Pitäisi tehdä koulun harkkana seuraavaa:

Yksikätinen rosvo –hedelmäpeli.


Pelissä arvotaan kolme satunnaislukua väliltä 0 – 9.
Pelin alussa Sinulla on rahaa 5 €. Yksi peli maksaa 0,5 €.
Jos yksi arvotuista luvuista on seiska, voitat 1 €. Jos arvotuissa on kaksi seitsikkoa, voitat 5 €. Jos kaikki kolme lukua ovat seiskoja, voitat 10 €.
Jokaisen arvonnan jälkeen ohjelma näyttää arvotut luvut ja senhetkisen rahatilanteen sekä kysyy ”Haluatko jatkaa (k/e)? ”. Jos vastaat k:lla, peli jatkuu niin kauan kuin rahaa riittää. Jos vastaat muulla kuin k:lla, peli loppuu. Lopussa peli tulostaa pelattujen kierrosten lukumäärän.

Auttakaa - pliis!!!!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu