• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wprowadzenie danych do tablicy poprzez podanie współrzędnej planszy.

Aruba Cloud - Virtual Private Server VPS
+1 głos
225 wizyt
pytanie zadane 19 listopada 2016 w C i C++ przez kostiw Nowicjusz (170 p.)
edycja 19 listopada 2016 przez kostiw
Witam.

(C++)
Jestem studentem pierwszego roku. Na podstawach programowania otrzymałem do wykonania projekt. Mam napisać grę dla 2 osób w której każdy z graczy podaje współrzędne punktu na planszy a zadaniem programu jest umieszczenie w tym miejscu odpowiedniego znaku (o lub x w zależności który gracz podaje współrzędne). Kolumny oznaczone są od a - t a wiersze od 0 - 9. Nie wiem jak po podaniu współrzędnej np. a1 (podawane są obie jednocześnie) program ma wpisać w to miejsce tablicy znak. Myślałem o przypisaniu każdej literze cyfry, ale wciąż nie wiem jak program ma przeczytać oba znaki na raz i wpisać tam znak. Czy mógłby ktoś mnie lekko nakierować ?

2 odpowiedzi

+1 głos
odpowiedź 19 listopada 2016 przez Moonshine Mądrala (6,360 p.)
Nie wiem jakich mechanizmów, bibliotek możesz używać w projekcie. Jeśli są to podstawy programowania to na pewno prowadzący nie będzie miał nic przeciwko jeśli użyjesz instrukcji switch. I wtedy dla np. wprowadzonego 'a' odwołasz się do komorki macierzy [1][jakasWartosc]. Jeśli 'b' to [2][jakasWartosc] itd.

Napisałeś też, że od 1 - k, a nie powinno być od a - k ?
komentarz 19 listopada 2016 przez kostiw Nowicjusz (170 p.)
Tak mój błąd, teraz sprawdziłem dokładniej polecenie. Nie ma żadnych restrykcji odnośnie bibliotek, kolumny są opisane od a - t.

Wciąż jednak nie wiem jak program ma czytać obie współrzędne na raz (a1). Można zrobić wszystkie kombinacje wierszy i kolumn lecz będzie to bardzo dużo kodu (20 * 10 kombinacji).
+1 głos
odpowiedź 19 listopada 2016 przez mrcnsct Nałogowiec (36,390 p.)

Wczytaj napis do stringa. Spójrz na tabelę ASCII: https://pl.wikipedia.org/wiki/ASCII Cyfry zaczynają się od numeru 48, małe litery od 97. Tak więc od znaku który odpowiada za kolumnę (a-t) odejmij 97, a od znaku, który odpowiada za wiersz (0-9) odejmij 48. Wyniki tych operacji zapisz do zmiennych i już masz indeksy tablicy.

int a = napis[0]-97;

int b = napis[1]-48;

Lub na odwrót, zależy co wpisujesz najpierw kolumnę, czy wiersz.

komentarz 19 listopada 2016 przez kostiw Nowicjusz (170 p.)
Super, na pewno wykorzystam ten sposób. Można jakoś to rozwiązać, żeby podać nr kolumny i wiersza na raz i wtedy umieścić znak na planszy ?
komentarz 19 listopada 2016 przez mrcnsct Nałogowiec (36,390 p.)
edycja 19 listopada 2016 przez mrcnsct

Przecież jak wczytujesz do stringa to podajesz oba na raz.

string napis;
cin>>napis;//tu podajesz np. a5, oba znaki na raz
int a = napis[0]-97;
int b = napis[1]-48;

Piszesz w C czy C++? Jak w C to:

char napis[3];//3, bo jeden znak na znak końca napisu
fgets(napis,3,stdin);
int a = napis[0]-97;
int b = napis[1]-48;

 

komentarz 19 listopada 2016 przez kostiw Nowicjusz (170 p.)
Ah no tak, nie pomyślałem :)

Dziękuję bardzo za pomoc.
komentarz 19 listopada 2016 przez mrcnsct Nałogowiec (36,390 p.)
A piszesz w C czy C++? Jak o coś pytasz to warto to napisać w pytaniu, bo kategoria to C i C++.
1
komentarz 19 listopada 2016 przez kostiw Nowicjusz (170 p.)
C++, dodałem do pytania.

Podobne pytania

0 głosów
2 odpowiedzi 417 wizyt
0 głosów
1 odpowiedź 208 wizyt
0 głosów
3 odpowiedzi 174 wizyt

93,334 zapytań

142,328 odpowiedzi

322,406 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...