Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Ja det kan jeg :) :

 

----------------------------------KODE HER-------------------------------------

 

cout << "Tast a for å velge 'a', eller tast b for å velge 'b': ";

char variabel;

 

switch (variabel)

{

case 'a': cout << "Du skrev a.";

break;

case 'b': cout << "Du skrev b.";

break;

default: cout << "Du tasta verken a eller b.";

break;

}

 

-----------------------------------------------------------------------------------

Lenke til kommentar

Her er spillet mitt..

Det er fortsatt litt uferdig men det kommer seg nå. Jeg fant en måte å løse problemene på, så nå kan jeg lage det ganske langt. Ta en titt på koden og se litt der det står en notis etter //.

 

EDIT:

Forresten glem det.. Fant feilen.. Jeg har rettet koden nå.

 

#include <iostream>
#include <string>

using namespace std;


namespace hus {
string streng = "a house.";
};

namespace tre {
string streng = "a tree.";
};

int main ()
{
int a;
int b;
int c;
int d;
int e;
int f;
int g;
int h;
int i;
int j;
int k;
int l;
int m;
int n;
int o;
int p;
int q;
int r;
int s;
int t;
int u;
int v;
int w;
int x;
int y;
int z;
int gold;
gold = 0;//Her er koden rettet//
cout << "Do you want to look left or right? Type 0 for left, or 1 for right" << endl;
cin >> a;
if (a == 0)
 cout << "You look to the left, and see see " << hus::streng << endl;
if (a == 1)
 cout << "You look to the right, and see " << tre::streng << endl;
if (a == 0)
 b = 0;
if (a == 1)
 b = 1;
if (b == 0)
 cout << "You walk over to the house and, discover that the door is not locked.           What do you do?                                                                 0=Enter the house                                                               1=Walk into the nearby forest" << endl;
if (b != 1)
 cin >> c;
if (b == 1)
 cout << "You walk over to the tree and you see a hole in the ground. What do you do?     0=Go back to your house to get a spade                                          1=Dig with your hands" << endl;
if (b != 0)
 cin >> d;
if (c == 0)
 cout << "The door slowly opens, and you walk inside. There you see a crate. Inside the   crate, you find some gold. Would you like to pick it up? 0=Yes 1=No" << endl;
if (c == 0)
 cin >> d;
if (d == 0)
 cout << "10 Gold has been added to your inventory!! You walk out of the house" << endl;
if (d == 0)
 gold = gold + 10;
if (d == 0)
 cout << "You have " << gold << " gold in your inventory" << endl;//Hvorfor funker det ikke å vise hvor mye gold man har i ryggsekken?//
if (d == 1)
 cout << "You leave the gold in the crate, thinking its best not to steal from someone    else, and walk out of the house" << endl;
return (0);
}

Endret av Tha Phreak
Lenke til kommentar

Der var det voldsomt mange flere integere enn du trenger! Også litt overkill å bruke namespaces til hver sin streng.

 

En ting du kunne gjort her var å bruke nøstede if-setninger, altså

if(han gikk mot skogen){
 if(han fant ei dame i skogen){
   cout<< "######SENSUR!!" << endl;
  }
  else if(han fant ikkeno i skogen){
   cout<<"Bwahaha! Du er pwned!" << endl;
  }
}
if(han gikk mot huset){
if(han gadd å plukke opp){
 gold+=10;
}
}

 

Grunnen til at den gold-tingen ikke virker er at du ikke initialiserer variabelen gold. Du må sette

int gold = 0;

i stedet for

int gold;

ellers så vil gold inneholde en verdi som tilfeldigvis lå på minne der som gold skulle ligge. Når du da øker gold med 10 sånn:

gold = gold + 10;

så blir gold satt til ett tilfeldig tall pluss 10.

 

 

Edit: Åja, du hadde ordna det ja. :p

 

En ting til: Lær deg bruken av {}, for

 if (d == 0)
cout << "10 Gold has been added to your inventory!! You walk out of the house" << endl;
if (d == 0)
gold = gold + 10;
if (d == 0)
cout << "You have " << gold << " gold in your inventory" << endl;//Hvorfor funker det ikke å vise hvor mye gold man har i ryggsekken?//

kan skrives sånn:

if (d == 0){

cout << "10 Gold has been added to your inventory!! You walk out of the house" << endl;

gold = gold + 10;

cout << "You have " << gold << " gold in your inventory" << endl;//Hvorfor funker det ikke å vise hvor mye gold man har i ryggsekken?//

}

 

Og da blir ting plutselig mye greiere å holde styr på. Bruk også mer logiske navn på variablene dine! (ikke a,b,c,d)

Lenke til kommentar

Tha Phreak:

Gløm det der nå .. du må først lære C++ .. ikke kom tilbake før du har lest en hel bok og kan alt i den. (men spør gjerne om ting du måtte lure på i sammenheng med det som står i boka)

 

Hint:

Du må finne et bibliotek/API (dette eller dette f.eks. eller det i DirectX) som leser inn lydfilen og spiller den av.

Akkurat samme som når man vil lage GUI'er i programmet .. man må finne seg et bibliotek/API.

Endret av søppel
Lenke til kommentar

D-Xpert:

Dette er rett frem; man åpner filen i binary-mode og leser den inn .. gjør endringer .. og skriver den ut igjen.

 

Hint:

Finn frem en bok om C++ .. slå opp på IO eller Input/output.

 

Edit:

Man trenger ingen eksterne biblioteker eller api'er for dette:

http://nostdal.net/lars/ticpp-v1/Chapter02.html#Heading95

http://nostdal.net/lars/ticpp-v2/#_Toc53985673

Endret av søppel
Lenke til kommentar
  • 2 måneder senere...

Heisann.. En stund siden jeg har posta noe her.. Tenkte å legge ut koden til det nyeste programmet mitt her for å se hva dere syns.. Sammenlign med det første programmet mitt, som jeg tror er posta her..

 

#include <iostream>

#include <cctype>

 

using namespace std;

 

int main () {

const char jasvar = 'J';

const char neisvar = 'N';

const char trekant = 'T';

const char sirkel = 'S';

const char kvadrat = 'K';

const char rektangel = 'R';

const double pi = 3.14;

 

bool flere = true;

while (flere) {

  char valg;

  cout << "Trekant, Sirkel, Rektangel eller Kvadrat (" << trekant << "/" << sirkel << "/" << rektangel << "/" << kvadrat << ") ? ";

  cin >> valg;

  valg = toupper(valg);

 

  double areal;

  if (valg == trekant) {

  double grunnlinje;

  double hoyde;

  cout << "skriv grunnlinje og hoyde: ";

  cin >> grunnlinje >> hoyde;

 

  areal = grunnlinje * hoyde * 0.5;

  }

 

  else

  if (valg == sirkel) {

  double radius;

  cout << "skriv radius: ";

  cin >> radius;

 

  areal = pi * radius * radius;

  }

 

  else

  if (valg == kvadrat) {

  double side;

  cout << "skriv en av sidene: ";

  cin >> side;

 

  areal = side * side;

 

  }

 

  else

  if (valg == rektangel) {

  double lengde;

  double bredde;

  cout << "Skriv lengde og bredde: ";

  cin >> lengde >> bredde;

 

  areal = lengde * bredde;

 

  }

 

  cout << "arealet blir: " << areal << endl;

  char svar;

  cout << "flere beregninger? (" << jasvar << "/" << neisvar << ") ";

  cin >> svar;

  svar = toupper(svar);

  if (svar != jasvar) flere = false;

}

 

 

 

return 0;

}

Lenke til kommentar

Ville bare lage litt kvalme og poste litt av koden til spillet mitt.

 

void c_terrain::createTerrain(c_terrain *target, ulong w_segs, ulong h_segs, float cell_width, float cell_height, float u_tiles, float v_tiles)
{
uint x, y;
triangle *t;
float start_x = -((cell_width * w_segs) / 2) / 2;
float start_y = -((cell_height * h_segs) / 2) / 2;
float w_t_x = cell_width * w_segs;
float w_t_y = cell_height * w_segs;
float w_x = start_x, w_y = start_y;
float ww_x = 0, ww_y = 0;
mesh_vertex *mb;
if(!target->createBuffer(h_segs * w_segs, 2 * ((h_segs - 1) * (w_segs - 1))))
 return;
target->m_cell_width = cell_width;
target->m_cell_height = cell_height;
target->m_h_segs = h_segs;
target->m_w_segs = w_segs;
// Create vertex buffer
// Start at first entry in buffer
mb = target->m_vertexbuffer;
for(y=0;y<target->m_h_segs;y++)
{
 for(x=0;x<target->m_w_segs;x++)
 {
 	mb->u = (ww_x / w_t_x) * u_tiles;
 	mb->v = (ww_y / w_t_y) * v_tiles;
 	mb->alpha = 255;
 	mb->x = w_x + start_x;
 	mb->y = w_y + start_y;
 	mb->z = 0;
 	
 	w_x += cell_width;
 	ww_x += cell_width;
 	mb++;
 }
 w_x = start_x;
 ww_x = 0;
 ww_y += cell_height;
 w_y += cell_height;
}
// Faces
t = target->m_tribuffer;
for(y=0;y<h_segs - 1;y++)
{
 for(x=0;x<w_segs - 1;x++)
 {
 	t->a = target->toIndex(x, y);
 	t->b = target->toIndex(x + 1, y);
 	t->c = target->toIndex(x, y + 1);

 	t++;
 	t->a = target->toIndex(x + 1, y);
 	t->b = target->toIndex(x + 1, y + 1);
 	t->c = target->toIndex(x, y + 1);

 	t++;
 }
}

}

 

:ermm::whistle:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...