Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Slumpfunktion i C++
Hursomhelst så tackar jag för tipset. Du är förmodligen mer insatt i C++ än jag, då jag började för knappt en vecka sedan Smiley Här e koden:
  1. // Header files
  2. #include<iostream>
  3. #include<ctime>
  4.  
  5. // Functions to be used
  6. using std::cout; using std::cin;
  7. using std::string; using std::system;
  8. using std::srand; using std::rand;
  9.  
  10. // Creating game functions
  11. string NewGame(){ // Runs only once
  12. cout << "Enter your name and we will start playing: ";
  13. string tmpName;
  14. cin >> tmpName;
  15. system("cls");
  16. cout << "Looking for adventure, " << tmpName << "? If so, you've come to the right place!\n";
  17. return tmpName;
  18. }
  19. int mainGame(string *sName, int *iHp, int *iMinDmg, int *iMaxDmg){
  20. // Declaring variables
  21. bool bRunFight = true; // Runs while battle
  22. int iCurrentHp = *iHp; // Sets player hitpoints
  23. char cCmd;
  24. // Enemy info variables
  25. int iEType; int iEMinDmg;
  26. string iEName; int iEMaxDmg;
  27. int iEHp;
  28. while(bRunFight){
  29. system("cls");
  30. cout << "As you are walking down the path, you hear a noise. You slowly turn around...\n";
  31. iEType = rand() / (RAND_MAX / 3 + 1) + 1; // Shuffels enemy type
  32. switch(iEType){
  33. case 1:
  34. iEName = "an Eagle";
  35. iEHp = 8;
  36. iEMinDmg = 2;
  37. iEMaxDmg = 4;
  38. break;
  39. case 2:
  40. iEName = "a Spider";
  41. iEHp = 3;
  42. iEMinDmg = 2;
  43. iEMaxDmg = 10;
  44. break;
  45. case 3:
  46. iEName = "a Bull";
  47. iEHp = 15;
  48. iEMinDmg = 8;
  49. iEMaxDmg = 10;
  50. break;
  51. }
  52. while(true){
  53. cout << "You are facing " << iEName << "!\n_____________\n-------------\nEnemy stats:\n-------------\nHp: " << iEHp << "\nDamage: " << iEMinDmg << " - " << iEMaxDmg << "\n\n-------------\n";
  54. cout << "Your stats:\n-------------\nHp: " << iCurrentHp << "\nDamage: " << *iMinDmg << " - " << *iMaxDmg << "\n_____________\n\n";
  55. cout << "What is your action?\n[F]lee!\n[A]ttack!\n";
  56. cin >> cCmd;
  57. if(cCmd == 'f' || cCmd == 'F'){
  58. bRunFight = false;
  59. break;
  60. } else if(cCmd == 'a' || cCmd == 'A'){
  61. iEHp -= rand() / (RAND_MAX / *iMaxDmg + 1) + *iMinDmg;
  62. }
  63. if(iEHp <= 0){
  64. cout << "After a fancy battle, you achieve victory!\n";
  65. bRunFight = false;
  66. break;
  67. } else{
  68. iCurrentHp -= rand() / (RAND_MAX / iEMaxDmg + 1) + iEMinDmg;
  69. }
  70. if(iCurrentHp <= 0){
  71. cout << "You have struggled well, but the enemy seems to win this time...";
  72. cin.get();
  73. cin.get();
  74. bRunFight = false; // Stops main game loop
  75. break;
  76. }
  77. }
  78. }
  79. }
  80. int main (){
  81. cout << "Welcome to the HorrorWoods. To play, press Y.\n";
  82. char cCmd; // User input variable
  83. cin >> cCmd;
  84. if(cCmd == 'y' || cCmd == 'Y'){
  85. bool bRun = true; // Runs main program
  86. bool bRunFight = true; // Runs while battle
  87. } else {
  88. return 0;
  89. }
  90.  
  91. // Declaring variables
  92. int iHp = 20; // Player's health
  93. string sName = NewGame(); // User name
  94. bool bRun = true; // Runs main program
  95. int iMinDmg = 2; // Player minimum damage
  96. int iMaxDmg = 5; // Player maximum damage
  97. while(bRun){
  98. cout << "What do you want to do?\nGame menu:\n[F]ight a monster\n[H]eal yourself\n[Q]uit\n";
  99. char cCmd;
  100. cin >> cCmd;
  101. if(cCmd == 'f' || cCmd == 'F'){
  102. cout << "\nYou have chosen to fight! Prepare for battle!\n";
  103. mainGame(&sName, &iHp, &iMinDmg, &iMaxDmg);
  104. }else if(cCmd == 'h' || cCmd == 'H'){
  105. // iCurrentHp = *iHp;
  106. cout << "Healing is currently under development...\n";
  107. }else if(cCmd == 'q' || cCmd == 'Q'){
  108. bRun = false;
  109. }else{
  110. cout << "Unrecognized command.\n";
  111. }
  112. }
  113. cin.get();
  114. }


Postad 01:08 - 15:e Juli 2006
Slumpfunktion i C++
Se här:
  1. variable = rand() / (RAND_MAX / 3 + 1) + 1;

Jag använder inte modulo för att få fram slumptalet, då jag läste guiden här, och där fanns det som jag skrev där...

Anledningen till att jag sade att jag fick olika varje gång i andra posten, var för att jag tog bort raden srand(time(0)), och då slumpade den tal som jag ville, och då undrade jag varför den var nödvändig.

Angående för mycket kod, så är väl det ganska generellt antaget att man skall ha minimalt med kod för maximal funktionalitet? ,,ven om det inte rör sig om så mycket?

Postad 15:08 - 14:e Juli 2006
Slumpfunktion i C++
Tar jag helt bort srand(time(0)) så funkar det ju också, och då slumpar den olika Smiley Varför är då den raden nödvändig? För mkt kod är väl nåt man skall akta sig för?

Postad 03:34 - 14:e Juli 2006
Lite hjälp med RAND
oj, såg inte denna tråden innan jag skapade min... Fråga: vad är egentligen meningen med just följande kod:
  1. srand(time(0));


Det funkar ju lika bra utan?

Postad 16:45 - 12:a Juli 2006
Slumpfunktion i C++
,,r det bara jag som har problem med slumpfunktionen i C++? har knaprat mig igenom C++-guiden på sidan, vilket har gått förhållandevis bra, då jag har grundläggande programmeringskunskaper i PHP. Men slumpfunktionen i C++ blir jag inte klok på, hur jag än gör...

Min kod:
  1. variable = rand() / (RAND_MAX / 3 + 1) + 1; // Shuffels an integer
  2.  


Grejen är att den alltid blir tre (maxvärde)... Jag vet inte varför, men koden verkar ju rätt? Skulle va schysst om någon förklarade varför funktionen är såpass avancerad (dvs. varför den ser ut som den gör)? Borde det inte finnas nåt snabbsätt att få upp ett slumpat tal på, eller måste man bygga den funktionen själv?

Postad 16:32 - 12:a Juli 2006

Skicka meddelande
Läs s blog