Forum: Kodfel - Nybörjarkursen

Forum huvudsida -> Programmering -> Kodfel - Nybörjarkursen

Sidor: 1

Till botten

Franzon 16:49 - 10:e Januari 2008 | Post #1
Medlem
Inlägg: 32


Skicka PM
Hej! Jag började intresera mej för C++ programering för nån vecka sedan så jag googlade lite efter guider. Det första jag hittar är en hänvisning till den här sidan. Jag följer den och hittar C++ nybörjar kursen. Nu har jag kommit till sissta steget men jag får det inte spelet att fungera, och jag förstår inte varförSmiley

felet verkar ligga på rad 107

  1. #include<iostream>
  2. #include<ctime>
  3.  
  4. using namespace std; //funktionen blir åtkomligt från hela programmet
  5.  
  6. string NyttSpel();
  7. int Levell(string &sName, int &iHp, int &iDmg_min, int &iDmg_max);
  8.  
  9. int Levell(string &sName, int &iHp, int &iDmg_min, int &iDmg_max)
  10. {
  11. bool bGoLevell= true; //den här ska vara true så länge man är i level 1
  12.  
  13. string sCmd; //för att läsa in kommandorn från menyer mm
  14. int iCurrentHp = iHp; //spelarens nuvarande HP. Man förlorar lite under varje fight
  15.  
  16. //fiendevariabler
  17. int iEType; //fiendens typ
  18. int iEHp; //fiendens HP
  19. int iEDmg_min; //fiendens minimum skada
  20. int iEDmg_max; //fiendens maxskada
  21. string sEName; //fiendens namn
  22.  
  23. while (bGoLevell) //kör den här kodsnutten så länge bGoLevell är true
  24. {
  25. srand(time(0)); //nytt frö för random-generatorn
  26.  
  27. system("cls"); //rensa skärmen
  28.  
  29. cout << "Ditt första uppdrag som monsterdödare!nMeny:n-----n[L]eta upp ett monster att slåss motn[A]vsluta speletnVal:n";
  30.  
  31. cin >> sCmd;
  32.  
  33. if (sCmd == "l" || sCmd == "L") //om man skriver med små bokstäver tar programmet det automatiskt som stora
  34. {
  35. sEName = "Giftfluga";
  36. iEHp = 3;
  37. iEDmg_min = 1;
  38. iEDmg_max = 2;
  39. }
  40. else if (iEType == 2)
  41. {
  42. sEName = "Huggorm";
  43. iEHp = 5;
  44. iEDmg_min = 2;
  45. iEDmg_max = 5;
  46. }
  47. else if (iEType == 3)
  48. {
  49. sEName = "Fet råtta";
  50. iEHp = 4;
  51. iEDmg_min = 2;
  52. iEDmg_max = 3;
  53. }
  54.  
  55. while (true) //kör oändligt (eller tills "break;" körs)
  56. {
  57. cout
  58. << "nSlåss mot fiende:n-------nDu möter en " << sEName << "!n"
  59. << "Fiendens HP: " << iEHp << "n"
  60. << "Din HP: " << iCurrentHp << "n"
  61. << "Attacker:n-----n[m]Magslagn[f]Fotkrossn[h]HeadbangnVal:n";
  62.  
  63. cin >> sCmd;
  64.  
  65. if (sCmd == "m" || sCmd == "M")
  66. {
  67. if (iEType == 3) //om det är en råtta får den extra liv, altså är den svår att döda genom att slå i magen
  68. iEHp+=2;
  69. else if (iEType == 2) //om det är en orm får den minus liv, den är altså lätt att döda genom magslag
  70. iEHp-=2;
  71. }
  72. else if (sCmd == "f" || sCmd == "F")
  73. {
  74. if (iEType == 2) //om det är en huggorm får den extra liv, altså är den svårare att döda genom fotkross
  75. iEHp+=1;
  76. else if (iEType == 1) //om det är en giftfluga får den minus liv, altså e den lättare att döda genom fotkross
  77. iEHp-=1;
  78. }
  79. else if (sCmd == "h" || sCmd == "H")
  80. {
  81. if (iEType == 2) // om det är en huggorm så får den extra liv, svårare att döda genom headbang
  82. iEHp+=1;
  83. else if (iEType == 1) //om det är en giftfluga får den minus ett liv, svårare att döda genom headbang
  84. iEHp-=1;
  85. }
  86.  
  87. iEHp -= rand() / (RAND_MAX / iDmg_max + 1) +iDmg_min;
  88.  
  89. if (iEHp <= 0) //om fienden dog
  90. {
  91. cout << "Du lyckades döda fienden!n";
  92. iCurrentHp = iHp; //återställa HP för sej själv
  93. break; //hoppar ur while loopen
  94. }
  95. else
  96. {
  97. iCurrentHp -= rand() / (RAND_MAX / iEDmg_max + 1) + iEDmg_min;
  98.  
  99. if (iCurrentHp <= 0) //om man dör
  100. {
  101. bGoLevell = false; //slut på level 1, du dog
  102. break;
  103. }
  104. }
  105. }//slut på fiendefight-loop
  106. }
  107. else if (sCmd == "a" || sCmd == "A")
  108. {
  109. return 3; //returneras om man inte vill spela mer i level 1
  110. }
  111. }//slut på levell-loop
  112.  
  113. return 2; //returneras om man dog av fiende
  114. }
  115.  
  116. string NyttSpel()
  117. {
  118. string sTmpName; // temporärt lagra spelarnamn, endast i denna funktion
  119. system("cls"); //rensa skärmen
  120.  
  121. cout << "Välkommen till Monsterkill!nSkriv in ditt namn så kan vi börja: ";
  122.  
  123. cin >> sTmpName;
  124.  
  125. return sTmpName;
  126. }
  127.  
  128. int main()
  129. {
  130. //variabler
  131. string sCmd; //används för att avläsa användarens val i menyer etc.
  132. string sName; //för att lagra namnet
  133. bool bGo= true; //variabel som är true så länge huvudmeny-loopen ska köras
  134. int iTmp; //variabel för temporära saker
  135.  
  136. //spelarens karaktärs variabler
  137. int iHp = 10; //hp
  138. int iDmg_min = 2; //min. skada
  139. int iDmg_max = 5;
  140.  
  141. while (bGo) // kör loopen så länge bGo är true
  142. {
  143. //huvudmeny
  144. cout
  145. << "#################################################n"
  146. << "# #n"
  147. << "# Monsterkill v1.0 #n"
  148. << "# #n"
  149. << "#################################################n"
  150. << "Huvudmeny:n---------n[N]nytt speln[A]avslutanVal:";
  151.  
  152. cin >> sCmd;
  153.  
  154. if (sCmd == "n" || sCmd == "N")
  155. {
  156. sName = NyttSpel(); //skicka namnvariabeln
  157. iTmp = Levell{sName, iHp, iDmg_min, iDmg_max);
  158.  
  159. if (iTmp == 3)
  160. bGo = false;
  161. if (iTmp == 2)
  162. cout << "Du dog!";
  163. }
  164. else if (sCmd == "a" || sCmd == "A")
  165. {
  166. break; //bryter ut från huvudmeny loopen
  167. }
  168. }//slut på while-loopen
  169.  
  170. cin.get();
  171. cin.get();
  172.  
  173. return 0;
  174. }


är tacksam för all hjälp

(verkar som om alla "\" i "\n" har försvunnit =S)


Senast redigerad 16:51 - 10:e Januari 2008


Smygis 18:25 - 10:e Januari 2008 | Post #2
Medlem
Inlägg: 90


Skicka PM
du använder else if utan någon if sats före

-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!



Franzon 18:42 - 10:e Januari 2008 | Post #3
Medlem
Inlägg: 32


Skicka PM
Tack, jag såg vad jag hade gjort för fel nuSmiley




Smygis 20:00 - 10:e Januari 2008 | Post #4
Medlem
Inlägg: 90


Skicka PM


-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!



FunkyChicken 00:54 - 11:a Januari 2008 | Post #5
Nyhetsredaktör
Inlägg: 800


Skicka PM
sådär ska man inte kunna göra... Oo




Franzon 02:19 - 12:a Januari 2008 | Post #6
Medlem
Inlägg: 32


Skicka PM
wtf? en tom post? eller har min webläsare fått spader?




Smygis 23:33 - 12:a Januari 2008 | Post #7
Medlem
Inlägg: 90


Skicka PM


-------------------------
Ingen signatur! <- OMG! Jag har inte någon signatur! Ge mig en signatur FFS!



FunkyChicken 00:46 - 13:e Januari 2008 | Post #8
Nyhetsredaktör
Inlägg: 800


Skicka PM
Huhu minns när ozamosi fick postlimit back in the daysSmiley




BillyJhonson 15:49 - 16:e Maj 2018 | Post #9
Medlem
Inlägg: 877


Skicka PM

Wow! it was really very helpful for startup and I can only express a word of thanks! Nothing else. Because your topic is nice, you can add knowledge. Thank you very much for sharing this information
pestveda
termite control
Data Recovery
Windows Installation
PC Optimization
CP Plus






Sidor: 1

Forum huvudsida -> Programmering -> Kodfel - Nybörjarkursen
Atom feed

Du får inte posta i den här tråden | Till toppen