Avatar billede zyxtem Nybegynder
22. oktober 2003 - 14:33 Der er 5 kommentarer og
1 løsning

Bruge vector eller string

Hey

  Jeg er ved at lave et lille simpelt konsolspil hvori man ved hjælp af 4 taster kan bevæge et X rundt på en plade bestående af 8x8 =tegn.

  Jeg har lavet min plade som et 2d-array char[8][8]; men vil nu prøve at lave det på en mere C++'sk måde, med vector eller string. Jeg kan fint lave det så man kan gå til siderne(1d) men når man også skal kunne gå op og ned kniber det(2d)

  Nogen forslag til hvordan dette kan gøres..
Avatar billede olennert Nybegynder
22. oktober 2003 - 14:37 #1
Der er mange måder at gøre det på. En mulighed er:

#include <vector>
typedef vector<char> CharVector;
typedef vector<CharVector> Board;
Avatar billede olennert Nybegynder
22. oktober 2003 - 14:43 #2
Ups, glemte

using std::vector;

En anden mulighed er:

#include <utility>
#include <map>

using std::pair;
using std::map;

typedef pair<int, int> IntPair;
typedef map<IntPair, char> Board;

void example() {
  Board my_board;
  char  char_value = 72; // Just an example
  for (int i = 0; i < 8; ++i)
    for (int j = 0; j < 8; ++j)
      my_board.insert(make_pair(i, j), char_value);
}
Avatar billede olennert Nybegynder
22. oktober 2003 - 14:43 #3
Men bortset fra det, så er der egentlig intet galt med din char[8][8]. Overvej eventuelt bare at pakke den ind i en klasse.
Avatar billede zyxtem Nybegynder
22. oktober 2003 - 14:44 #4
hvad så hvis jeg nu vil tiljøje et tegn på plads 3 5. Board[3][5]='='; virker i hvert fald ikke.....
Avatar billede zyxtem Nybegynder
22. oktober 2003 - 14:45 #5
har den inde i en klasse men sad og læste noget om at det i sidste ende vil være smartest at lære at bruge vectorer og lign
Avatar billede zyxtem Nybegynder
22. oktober 2003 - 16:13 #6
Fant en anden løsning jeg bedre kunne lide
    vector<string> board;

  men du får da point for de gode forslag :)
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