Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Jackpot spil i c++

Forord

I denne artikel vil jeg gennemgå en kode, for at vise jer hvad der sker igennem hele processen.

I denne artikel vil jeg forklare lidt om tegnene som bruges i c++ så i kan følge med i hvad der laves de forskellige steder, så i kan lære lidt.

Forkortelser:
rand=random

Her er der en forklaring af de forskellige tegn:

[ => gør klar til at lave et sted man selv må bestemme hvad man vil skrive.
] => afslutter et sted man selv må bestemme hvad man vil skrive.
<x> => x er et ord som vi har haft tidligere oppe i artiklen. Står der således <jackpot> skal der indsættes en "jackpot" i stedet for hele tekstblokken.
[x] => x bruges tit når man skal indsætte en speciel kode.
... => Når der skal gentages noget flere gange, eksempel:
<hej1>,<hej22>, ... ,<hejmeddig>. I det her eksempel er der forklaret hvad hejmeddig er tidligere i eksemplet, man kan også ændre det til et q så der ikke er meget der skal skrives for det, så det bliver <q>.

Slut på tegn forklaringen, nu skal vi i gang:

Først skal vi includere de filer der skal gøre at vi kan udføre visse ting i koden, og det gør vi her:

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>

Så fik vi includeret nogen filer

nu laver du 2 linieskift og så kan vi gå videre med starten, nu skal der nemlig startes op:

  1. using namespace std;

  2. void Start ();
  3. void GetResults ();

  4. int  i, j, life, maxrand;
  5. char c;


  6. void
  7. Start ()
  8. {
  9.      i = 0;
  10.      j = 0;
  11.      life = 0;
  12.      maxrand = 6;

1. Vi laver en char (også kendt fra SQL)
2. Vi sætter void til at lave så liv starter på 0 så vi kan lave liv længere nede.

Nu skal du igen lave 2 linieskift, det er yderst vigtigt at du gør det, ellers knækker din kode muligvis.

Vi skal nu i gang med cout som er et slags frit område hvor du kan bestemme hvad der skal skrives.

  1.      cout << "Tryk det tal du vil spille:
  2. "; // der skal findes et tal
  3.      cout << "tryk 1 for : barn-teenager (0-15 aar)
  4. ";
  5.      cout << "tryk 2 for : ungkagl (0-30 aar)
  6. ";
  7.      cout << "tryk 3 for : voksen (0-50 aar)
  8. ";
  9.      cout << "eller skriv noget andet for at komme ud af spillet
  10. ";
  11.      c = 30;

1. Først skriver vi hvad den skal skrive, og laver et
som er et linieskift i c++.
2. så skriver vi valg muligheder så der kan vælges om man er barn, ungkagl eller voksen, det er sværdheds grader, teksten kan selvfølgelig ændres.
3. vi skriver til modtageren at han også kan gå ud af spillet ved at skrive noget andet.
4. vi logger videre

Nu laver du igen 2 linieskift, og som sagt det er vigtigt at du gør det.

Og så forsætter vi:

  1.      cin >> c;                   // vi henter dataerne til nedenfor
  2.      cout << "
  3. ";

Vi sender dataerne fra cout videre.

Lav nu igen 2 linieskift.

Og videre så vi ikke går i stå med de data:

  1.      switch (c)
  2.      {
  3.         case "1" : maxrand = 15;  // vi ser hvad der blev valgt
  4.         break;
  5.         case "2" : maxrand = 30;
  6.         break;
  7.         case "3" : maxrand = 50;
  8.         break;
  9.         default : exit(0);
  10.         break;
  11.      }

1. Vi kigger om man valgte 0-15 år, eller hvad man nu valgte.
2. Vi gemmer oplysningerne, vi får brug for dem længere nede.

Lav nu 2 linieskift igen, og derefter videre:


  1.      life = 15;         // vi skriver hvor mange gange brugeren skal kunne spille (en salgs liv)
  2.      srand( (unsigned)time( NULL ) ); // vi laver en Rand() funktion
  3.      j = rand() % maxrand;  // vi laver noget rand saa der ikke kan trykkes 0 som sats

  4.      GetResults();

  5. }

1. Vi vælger hvor mange omgange man skal kunne spille, jeg har valgt 15 da jeg syntes det er passende til et jackpot spil, du kan bare skifte det med de antal omgange du syntes ved life = 15;
2. Vi gør klar med en rand funktion.
3. Vi udføre rand funktionen

lav nu 2 linieskift igen, og derefter videre:

  1. void
  2. GetResults ()
  3. {
  4.      if (life <= 0)
  5.         // hvis brugeren ikke har mere liv tilbage saa skriver vi
  6.      {
  7.         cout << "Du tabte !

  8. ";
  9.         Start();
  10.      }


1. Vi henter dataerne omkring hvor mange omgange der er tilbage at spille i.
2. Vi vælger hvad der skal stå i sætningen når man taber
3. vi afslutter alt med tabte

lav 2 linieskift igen, og bagefter videre:

  1.      cout << "Skriv et nummer du vil spille paa:
  2. ";
  3.      cin >> i;          // vi henter brugerens nummer til databasen

  4.      if ((i>maxrand) || (i<0)) // hvis nummeret ikke kan vaelges saa start forfra
  5.      {
  6.         cout << "Error : Nummeret kan ikke vaere 0 og
  7. " << maxrand;
  8.         GetResults();
  9.      }

  10.      if (i == j)
  11.      {
  12.         cout << "Du vandt !

  13. "; // vi tjekker om der blev vundet
  14.         Start();
  15.      }

Sikke en mundfuld.

1. Vi skriver til modstanderen at han skal skrive et nummer han vil spille på.
2. Så henter vi det nummer brugeren skrev til databasen.
3. Vi laver et lille maxrand så hvis tallet f.eks. er bogstaver så starter systemet forfra.
4. hvis der blev skrevet 0 som nummer skriver vi det lige til brugeren der spiller.
5. Vi laver så den tjekker om der bliver vundet.

Så er vi lidt over halvejs.

Lav nu igen 2 linieskift, og derefter videre:

  1.  else if (i>j)
  2.      {
  3.         cout << "Tallet var for stort
  4. ";
  5.         life = life - 1;    // -1 vi laver minus saa naar man spiller traekker den en omgang (et liv)
  6.         cout << "Du har: " << life << " gange tilbage til at spille for

  7. ";
  8.         GetResults();
  9.      }

  10.      else if (i<j)
  11.      {
  12.         cout << "Dit tal var for lille
  13. ";
  14.         life = life - 1;
  15.         cout << "Antal gange tilbage at spille for:
  16. " << life << "

  17. "; // vi henter og ser hvor mange gange der er tilbage at spille for og skriver det
  18.         GetResults();
  19.      }
  20. }

1. Vi laver else som i sikkert kender fra php, altså "ellers, så gør dit og dat"
2. Vi skriver til systemet at hvis tallet var for stort skal den skrive det.
3. Vi trækker en omgang (et liv)
4. Vi tjekker om tallet er for lille, og skriver hvis det er.
5. Vi skriver hvor mange gange brugeren har tilbage at spille i.
6. Vi laver et getreslutat som kigger hvad man skrev som satstal.
7. vi afslutter else og går videre til det sidste.

Lav 2 linieskift igen, og derefter går vi videre med det sidste i denne artikel.

  1. int
  2. main ()
  3. {
  4.      cout << "** Jackpot **
  5. ";
  6.      cout << "I dette jackpot spil skal du bare vinde ligesom i alle andre jackpot spil
  7. "; // vi skriver hvad der skal startes med for oven at blive skrevet
  8.      cout << "et nummer (du har 15 gange til at spille i)
  9. ";
  10.      cout << "Vi vil fortaelle dig om nummeret er for lille, stort, forkert eller rigtigt

  11. ";
  12.      Start();
  13.      return 0;
  14. }

1. Vi laver et int, som i sikkert også kender fra SQL, og derefter laver vi main.
2. Vi laver cout som skriver hvad der skal stå aller øverst når man starter spillet, i skifter bare teksten som i vil, dog skal ingen
slettes.
3. Vi laver start som også kunne have været i toppen af koden, men sådan har vi ikke tilpasset det, så lad venligst være med det.
4. Vi laver return, så den opdatere det hele tiden og kan komme med nye sætninger, så man ikke skal trykke på et eller anden opdater knap.

Så er vi ved at være færdige, og kunne i ikke få det til at virke står her alligevel hele koden:

  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. using namespace std;

  5. void Start ();
  6. void GetResults ();

  7. int  i, j, life, maxrand;
  8. char c;


  9. void
  10. Start ()
  11. {
  12.      i = 0;
  13.      j = 0;
  14.      life = 0;
  15.      maxrand = 6;

  16.      cout << "Tryk det tal du vil spille:
  17. "; // der skal findes et tal
  18.      cout << "tryk 1 for : barn (0-15 aar)
  19. ";
  20.      cout << "tryk 2 for : Teenager (0-30 aar)
  21. ";
  22.      cout << "tryk 3 for : voksen (0-50 aar)
  23. ";
  24.      cout << "eller skriv noget andet for at komme ud af spillet
  25. ";
  26.      c = 30;

  27.      cin >> c;                   // vi henter dataerne til nedenfor
  28.      cout << "
  29. ";

  30.      switch (c)
  31.      {
  32.         case "1" : maxrand = 15;  // vi ser hvad der blev valgt
  33.         break;
  34.         case "2" : maxrand = 30;
  35.         break;
  36.         case "3" : maxrand = 50;
  37.         break;
  38.         default : exit(0);
  39.         break;
  40.      }

  41.      life = 15;         // vi skriver hvor mange gange brugeren skal kunne spille (en salgs liv)
  42.      srand( (unsigned)time( NULL ) ); // vi laver en Rand() funktion
  43.      j = rand() % maxrand;  // vi laver noget rand saa der ikke kan trykkes 0 som sats

  44.      GetResults();

  45. }


  46. void
  47. GetResults ()
  48. {
  49.      if (life <= 0)
  50.         // hvis brugeren ikke har mere liv tilbage saa skriver vi
  51.      {
  52.         cout << "Du tabte !

  53. ";
  54.         Start();
  55.      }

  56.      cout << "Skriv et nummer du vil spille paa:
  57. ";
  58.      cin >> i;          // vi henter brugerens nummer til databasen

  59.      if ((i>maxrand) || (i<0)) // hvis nummeret ikke kan vaelges saa start forfra
  60.      {
  61.         cout << "Error : Nummeret kan ikke vaere 0 og
  62. " << maxrand;
  63.         GetResults();
  64.      }

  65.      if (i == j)
  66.      {
  67.         cout << "Du vandt !

  68. "; // vi tjekker om der blev vundet
  69.         Start();
  70.      }

  71.      else if (i>j)
  72.      {
  73.         cout << "Tallet var for stort
  74. ";
  75.         life = life - 1;    // -1 vi laver minus saa naar man spiller traekker den en omgang (et liv)
  76.         cout << "Du har: " << life << " gange tilbage til at spille for

  77. ";
  78.         GetResults();
  79.      }

  80.      else if (i<j)
  81.      {
  82.         cout << "Dit tal var for lille
  83. ";
  84.         life = life - 1;
  85.         cout << "Antal gange tilbage at spille for:
  86. " << life << "

  87. "; // vi henter og ser hvor mange gange der er tilbage at spille for og skriver det
  88.         GetResults();
  89.      }
  90. }


  91. int
  92. main ()
  93. {
  94.      cout << "** Jackpot **
  95. ";
  96.      cout << "I dette jackpot spil skal du bare vinde ligesom i alle andre jackpot spil
  97. "; // vi skriver hvad der skal startes med for oven at blive skrevet
  98.      cout << "et nummer (you have 15 gange til at spille i)
  99. ";
  100.      cout << "Vi vil fortaelle dig om nummeret er for lille eller stort

  101. ";
  102.      Start();
  103.      return 0;
  104. }

Hvis i har læst artiklen, så bedøm den gerne, hvis i kun har læst koden, så ville en kommentar fra jeres side være dum i mit øre.

I får mest ud af at læse artiklen

Kan i ikke få det til at virke så skriv hvad fejlen er i en kommentar.

Har i heller ikke et program til c++ kan det findes på http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe?use_mirror=jaist

PS. det er dev-c++, jeg bruger selv programmet.
Sidst redigeret 16:39 30/05/2007 af Rowl
Oprettet af:

C/C++

Point modtaget: 0

Rate:
13:54 16/06/2006

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Den blev sq lidt lang, srry :P
Oprettet af:
  Mail
14:18 16/06/2006
Er det en .exe fil kan skal gemme det i ?
Oprettet af:
  Mail
15:06 16/06/2006
Ser godt ud men fatter ikke hvad c++ er ;)
Altså jo, men forstår ikke du kan huske det :D
Sidst redigeret 15:07 - 16/06/2006
Oprettet af:
  Mail
15:06 16/06/2006
Emilo-> ja, men det kan ikke hvilket som heldst program gøre, så derfor download det program jeg lavede link til
Oprettet af:
  Mail
15:25 16/06/2006
Jeg vil ikke anbefale denne artikel for nybegyndere.
Det er der adskillelige grunde til, her er et par af dem:
Du ved overhovedet ikke hvad du snakker om.
Du ved ingengang hvad de forskellige includes bruges til.
stdlib.h: Så vi kan bruge exit(0); bl.a.
iostream: Så vi kan bruges cout;, endl; og diverse andre C++funktioner.
time.h: Så vi kan bruge time();
void er ikke sat fordi det er en lang kode?
Det er fordi at funktionerne ikke returnere en bestemt type, men en tilfældig.
Og hvad er det for noget med en database?
Det er bare en helt normal funktion.
Og hvorfor fa"en initalisere du en char?
Var det ikke en idé at bruge int, når det alligevel kun skal bruges til tal?
Og nej, det er IKKE vigtigt at man laver 2 linjeskift.
Ens kode knækker sgu da ikke.

bruges ikke så meget mere, man burde istedet benytte sig af endl, som befinder sig i iostream.
Hvorfor sætter du c til 30, når der alligevel sættes en anden value ind lige bagefter?
Du siger at "nu laver vi noget rand"?
Ved du overhovedet hvad det betyder? random.
Nej, man laver ikke en int, man opretter bare en int funktion i det sammenhæng?
Øhh, nej return bruges ikke til at opdatere?
Return er der fordi det er en int funktion, og skal derfor aflevere en integer (tal).
Til sidst vil jeg sige at koden også er utrolig grim, og er ekstrem dårlig kode stil.
Og lad være med at downloade programmer fra alle mulige underlige spots, download dem istedet fra deres rigtige side.
Dev-C++:
http://www.bloodshed.net/devcpp.html
Og nu har jeg talt så meget om koden og hvor dårlig den er, så jeg har rettet den til og lagt den ud. Det skal lige siges at koden stadig ikke er helt fint, da tingene bliver gjort på underlige måder. Jeg har rettet alle de mest fatale fejl.
Koden kan findes her:
http://v0id.zeant.dk/jackpot.txt
Oprettet af:
  Mail
15:46 16/06/2006
1. Includes rettet
2. Hvor har jeg skrevet noget database halløj?
3. Koden knækker nemt uden linie skift, da {} vikles ind i hinanden og laver et frit sted.
Sidst redigeret 16:18 - 16/06/2006
Oprettet af:
  Mail
16:16 16/06/2006
Nok fordi det er slettet nu.
Før havde du skrevet at stdlib.h bare skulle være der, iostream var for at få programmet i balance og time.h vare for at kunne minus.
Og det passer jo ikke en skid ^
Oprettet af:
  Mail
16:19 16/06/2006
og ang. rand har jeg også forklaret at det er random i artiklen
Oprettet af:
  Mail
16:20 16/06/2006
time() var jo også til minus så den passede?
Oprettet af:
  Mail
16:22 16/06/2006
Noget siger mig at du ikke selv har skrevet artiklen...
Oprettet af:
  Mail
17:21 16/06/2006
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes