kevindurant95 Temat założony przez niniejszego użytkownika |
[C++] - problem z wpisaniem symbolu na konkretne pole » 2014-11-21 14:42:10 Witam, prosiłbym o pomoc dotyczącą wpisania na planszę dowolnego symbolu (może to być np. #), poprzez wpisanie do konsoli współrzędnych pola (np. A5). Oto kod planszy:
void rysuj_plansze() { for (int i=0;i<6;i++) { cout << " +-----+-----+-----+-----+-----+-----+"<<endl; cout << " |"<< setw(6) <<"|" << setw(6) <<"|" << setw(6) <<"|"<< setw(6) <<"|"<< setw(6) <<"|"<< setw(6) <<"|"<<endl; cout << i+1 <<"|"<< setw(6) <<"|" << setw(6) <<"|" << setw(6) <<"|"<< setw(6) <<"|"<< setw(6) <<"|"<< setw(6) <<"|"<<endl; } cout << " +-----+-----+-----+-----+-----+-----+"<<endl; cout << " A B C D E F " << endl; }
a poniżej link do wyglądu graficznego planszy: http://i62.tinypic.com/2edvyw5.jpg
Z góry dziękuję za wszelakie przejawy dobroci :) |
|
wilkoo13 |
» 2014-11-21 14:48:49 Jak podałeś drugą część zadania to wiem że trzeba je zrobić za pomocą tablic. Niestety ci nie pomogę gdyż ich nie umiem jeszcze. Ale pomogą ci inni na tym forum. Możesz też skorzystać z kursu na tej stronie http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/345 Jeśli potrzebujesz pomocy. |
|
NopeDotAvi |
» 2014-11-21 15:20:16 std::cout << "Podaj pozycje pozioma: "; std::cin >> pozycjaPozioma; std::cout << std::endl << "Podaj pozycje pionowa: "; std::cin >> pozycjaPionowa;
twojaTablica[ pozycjaPionowa ][ pozycjaPozioma ] = '#';
Wstawiaj kod w znaczniki [ cpp ] tu kod [/ cpp] |
|
kevindurant95 Temat założony przez niniejszego użytkownika |
» 2014-11-21 15:44:00 A jakieś inne propozycje, bo ta niekoniecznie działa?
Może zacznę od początku. Mam wypisać na ekranie planszę (wyżej określoną) i poprzez podanie konkretnego pola (np. B5) wstawić w to pole jakiś dowolny znak, symbol. Może trzeba sprząc czymś funkcję rysowania planszy z funkcją wpisywania w planszę znaków? |
|
NopeDotAvi |
» 2014-11-21 16:20:07 działa, tylko nie wpisujesz B5 tylko 2 a potem 5. Podaj cały kod. |
|
kevindurant95 Temat założony przez niniejszego użytkownika |
» 2014-11-21 17:09:55 No a właśnie bym chciał, żeby wpisywać B5, a nie 25. Rozumiem, o co Ci chodzi, jednakże właśnie meritum sprawy jest takie, że chciałbym, by było litera+cyfra, a nie cyfra+cyfra. Proszę wybaczyć moje nieogarnięcie, jestem początkującym programistą. |
|
NopeDotAvi |
» 2014-11-21 18:53:21 Ok moje dwa proponowane wyjścia z takiej sytuacji: najpierw: Robisz dwie zmienne: - char znak; który przechowuje znak wpisany z klawiatury - int polozenie; - bo nie możemy do indeksu wpisać znaku teraz wczytujesz znak cin >> znak; a) bardziej zrozumiałe i w ifach sprawdzasz: if( znak == 'A' ) { polozenie = 0; } if( znak == 'B' ) { polozenie = 1; }
i tak aż do 'F' gdzie w takim przypadku polozenie = 5; b)raczej dla Cb będzie mniej zrozumiałe Odejmujesz od znak liczbę 65. Czemu tak? Każdy znak ma swoj unikalny numer w tablicy ASCII (tu: http://www.asciitable.com/) Więc każdy char ma swój numer. Jak widać duże A zaczyna się na miejscu 65, potem kolejne duże litery alfabetu mają numer o 1 większy od poprzedniego. Więc jeżeli ktoś wpisze takie współrzędne: A5 to od A odejmie 65, czyli wychodzi miejsce o współrzędnych 65 - 65 = 0-5. Gdy ktoś wpisze B to (zgodnie z tym, że każdy kolejny znak jest większy o 1 od poprzedniego) będzie 66 - 65 = 1, czyli wychodzi nam pozycje 1-5 taki kod jest zapisany tak: #include <iostream>
using namespace std;
int main() { char znak; int polozeniePionowe; cin >> znak; int polozenie = znak - 65; cout << polozenie << endl; return 0; }
|
|
kevindurant95 Temat założony przez niniejszego użytkownika |
» 2014-11-21 20:45:04 Jeśli chodzi o podpunkt a, to o jakiej tablicy mówimy? |
|
« 1 » |