Slumpgenerator i C++[LÖST]

Här diskuteras programmering och utveckling
Neonii
Inlägg: 59
Blev medlem: 03 sep 2008, 18:51
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Karlskrona

Slumpgenerator i C++[LÖST]

Inlägg av Neonii »

Hej!

Jag håller på att göra ett Black Jack-spel i C++ för tillfället, mest som ett kul projekt och för att hålla kunskaperna sen gymnasiet levande.

Jag har kommit till den fas då jag behöver slumpa fram värden för att veta vilka kort som dras, men här stöter jag på problem:

När jag utvecklade i Borland C++ i skolan, på Windows XP, så använde vi funktionen:

Kod: Markera allt

#include <time.h>

int main()
{
srand((unsigned int) time(0));

int Slump = rand() % 3;
}
för att få fram våra slumptal, men när jag försöker kompilera programmet via Geany (som använder samma flaggor som om jag gjort det i terminalen), så ger den mig meddelandet:
"Black Jack.cpp:58: error: ‘srand’ was not declared in this scope"

Så, två frågor:
1) Vad ska jag inkludera för att få tillgång till att så ett frö för att kunna slumpa värden?
2) Hittar ingen vettig information på google på hur man får fram värden mellan två tal, exempelvis 4 och 12, utan endast mellan 0 och någonting. Har glömt bort detta sedan gymnasiet, är det någon som kortfattat kan förklara? : /

Tack för att ni läst all text, det blev mer än jag tänkt mig :)
/Neonii

Utanför ämnet: Jag har ett liknande problem tidigare då jag använde #include <conio>, vilket visade sig hänvisa till en Windows-fil. Dumt att lärarna inte kan lära en riktigt från början :P
Senast redigerad av 2 Neonii, redigerad totalt 7 gång.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Slumpgenerator i C++

Inlägg av micke_nordin »

Neonii skrev: 2) Hittar ingen vettig information på google på hur man får fram värden mellan två tal, exempelvis 4 och 12, utan endast mellan 0 och någonting. Har glömt bort detta sedan gymnasiet, är det någon som kortfattat kan förklara?
Det andra vet jag inte om, men det här borde du väl kunna fixa genom att helt enkelt plussa på 4. Om du t.ex. kan få fram ett tal mellan 0 och 8 behöver du ju bara ta resultatet och lägga på 4.

Kod: Markera allt

int i = 0;
return i + 4;
typ.

/Micke
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Slumpgenerator i C++

Inlägg av Osprey »

Så här ungefär...

Kod: Markera allt

#include    <time.h>
#include    <stdlib.h>
#include    <stdio.h>
#define     Min_Varde   4.0
#define     Max_Varde   32.0
main(){
  int       Slump;
  srand( time(NULL) );
  Slump = Min_Varde + (Max_Varde * ((float)rand() / (RAND_MAX + 1.0)));
  printf("%d\n",Slump);
}
Jag är trött nu, men hoppas att det blev rätt ändå... :)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Neonii
Inlägg: 59
Blev medlem: 03 sep 2008, 18:51
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Karlskrona

Re: Slumpgenerator i C++

Inlägg av Neonii »

Osprey skrev:Så här ungefär...

Kod: Markera allt

#include    <time.h>
#include    <stdlib.h>
#include    <stdio.h>
#define     Min_Varde   4.0
#define     Max_Varde   32.0
main(){
  int       Slump;
  srand( time(NULL) );
  Slump = Min_Varde + (Max_Varde * ((float)rand() / (RAND_MAX + 1.0)));
  printf("%d\n",Slump);
}
Jag är trött nu, men hoppas att det blev rätt ändå... :)
Jajjamensan, det gjorde susen :) Tack!
/Neonii
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Slumpgenerator i C++[LÖST]

Inlägg av Osprey »

Somnade inte ändå... :)

hmmm.... litet glapp i min hjärna vid beräkningen av Slump tror jag, lägg in den här raden istället, det borde kunna ge ganska goda resultat... :)

Kod: Markera allt

Slump= Min_Varde + ((double)(Max_Varde - Min_Varde + 1.0) * ((double)rand() / ((double)RAND_MAX + (double)1.0)));
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Neonii
Inlägg: 59
Blev medlem: 03 sep 2008, 18:51
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Karlskrona

Re: Slumpgenerator i C++[LÖST]

Inlägg av Neonii »

Vad är skillnaden mellan den nya kodsnutt du gav mig och den gamla? Slumpar den nyare fram "bättre" slumptal?
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Slumpgenerator i C++[LÖST]

Inlägg av Osprey »

Neonii skrev:Vad är skillnaden mellan den nya kodsnutt du gav mig och den gamla? Slumpar den nyare fram "bättre" slumptal?
Det borde bli lite bättre genom att det är högre precision, plus att den på ett korrekt sätt håller sig mellan max och min... ;)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Neonii
Inlägg: 59
Blev medlem: 03 sep 2008, 18:51
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Karlskrona

Re: Slumpgenerator i C++[LÖST]

Inlägg av Neonii »

Okej okej, tack för ditt svar!

Postar den färdiga koden här inom ett par dagar för dom som vill testa det. Alltid kul med synpunkter på hur man kodar så man kan förbättra sig själv!

/Neonii
Skriv svar

Återgå till "Programmering och webbdesign"