Avatar billede tuctoh Nybegynder
26. september 2003 - 16:30 Der er 6 kommentarer og
1 løsning

Craps - fejlfinding

I forbindelse med et projekt i skolen, skal jeg programmere spillet "craps" i C++.

Jeg har ikke lavet meget i C++ før, så kan ikke forstå hvorfor det ikke virker :p
Har lavet starten af det jeg skal bruge, og det burde for sig virke, men giver en fejl fra compileren.
Problemet ligger ved liniet:
status = "vandt";


her er koden:


#include <iostream.h>
#include <stdlib.h>    //rand()
#include <conio.h>    //getche, clrscr,
#include <windows.h>    //Sleep(milisec)


int kast1 = 0;
int spil = 0;
int vsum = 0;
int tsum = 0;
int sum;
char status[20];
int kastnr = 0;

int kast()
{
rand();
return rand() % 6+1;
}

int vandt(){
status = "vandt";
cout << "Med " << sum << " øjne vandt du!";
vsum++;
}

void tabt(){
//status << "tabte";
cout << "Med " << sum << " øjne tabte du!";
tsum++;
}

int uafgjort(){
//status << "uafgjort";
cout << "Med " << sum << " blev spillet uafgjort. Lad os kaste igen";
}

int start(spil){

  int t1 = kast();
  int t2 = kast();
  sum = t1+t2;
    cout << "\n\nDen første terning viser: " << t1 << "\n" ;
    cout << "\n\nDen anden terning viser: " << t2 << "\n" ;
  cout << "Dette giver samlet " << sum << ".";

  if(spil==1) {
      kast1 = sum;
      if(sum==7 || sum==11)
          vandt();
      else if(sum==2 ||sum==3 ||sum==12)
          tabt();
      else
          uafgjort();
  }else{


  }

    cout << "\n\nTryk for at kaste igen"; getche();
}


void main()
{
int totalspil;

cout << "Hvor mange spil vil du spille?"; cin >> totalspil;


do
    {
  spil++;
  start(spil);

    }while(spil!=totalspil);

cout << "Tryk en tast for at lukke spillet";
getche();
}
Avatar billede arne_v Ekspert
26. september 2003 - 16:46 #1
char status[20];
status = "vandt";

duer ikke.

Enten:

char status[20];
strcpy(status,"vandt");

eller:

string status;
status = "vandt";
Avatar billede arne_v Ekspert
26. september 2003 - 16:46 #2
strcpy kræver:

#include <string.h>

string kræver:

#include <string>

using namespace std;
Avatar billede tuctoh Nybegynder
26. september 2003 - 16:54 #3
hvis jeg bruger:

#include <string.h>      //string
// ...
int sum;
string status;  //<<<<<<<<<<<<<<<<<<<<<<<<
int kastnr = 0;


Siger compileren:
Error:  noname00.cpp(13,14):Declaration syntax error
Avatar billede tuctoh Nybegynder
26. september 2003 - 16:55 #4
men med kun include string (uden .h) virker det :D

tak arne.

Hvor mange bytes er en "string" på? Lidt underligt at man med en char ikke kan indsætte data nemt :s
Avatar billede arne_v Ekspert
26. september 2003 - 16:55 #5
#include <string.h>

...

char status[20];
strcpy(status,"vandt");

eller

#include <string>

using namespace std;

...

string status;
status = "vandt";
Avatar billede arne_v Ekspert
26. september 2003 - 16:56 #6
string.h definerer ikke string.

Og det grunder i nogle historiske ting med C og C++.
Avatar billede arne_v Ekspert
26. september 2003 - 16:58 #7
En string (ofte kaldet en "STL string") kan være vilkårlig lang (er dynamisk).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester