• 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.

Object Storage Arubacloud
+1 głos
145 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 293 wizyt
0 głosów
1 odpowiedź 155 wizyt
0 głosów
3 odpowiedzi 140 wizyt

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...