ediepl Opublikowano 18 Listopada 2011 Opublikowano 18 Listopada 2011 Witam, mam problem - przepisuje serwer do C++ i mam problem z konsolą ponieważ zatrzymywała ona cały program, więc dałem ją do innego wątku, ale teraz jeśli coś napiszę i wyświetli się jakiś text to wychodzi coś takiego "jakiś textGracz edie dołączył do gry." i nie wiem jak zrobić żeby przechwytywany tekst był zawsze w osobnej lini?
kt1117 Opublikowano 18 Listopada 2011 Opublikowano 18 Listopada 2011 Tam gdzie dodajesz ten tekst dopisz najpierw /n.
ediepl Opublikowano 18 Listopada 2011 Autor Opublikowano 18 Listopada 2011 Może dam kod DWORD WINAPI ThreadProc() { while(1) { string tekst; cin >> tekst; clearbuffer(0); writebyte(8,0); const char* messageconst=tekst.c_str(); char* charmessage=const_cast<char*>(messageconst); writestring(charmessage,0); for(int i=0; i<=maxplayers; i++) { if(Players[i].InUse) { sendmessage(Players[i].Sock, "", 0, 0); } } } return TRUE; } DWORD threadID; HANDLE hThread = CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, 0, 0, &threadID ); Wszelki tekst jest wypisywany cout.
ediepl Opublikowano 18 Listopada 2011 Autor Opublikowano 18 Listopada 2011 Źle mnie zrozumieliście, chodzi mi o to że pisze coś w konsoli(np: "cześć") nie naciskając entera i nagle wchodzi gracz to tekst się łączy ("cześćEdie join the game").
kt1117 Opublikowano 19 Listopada 2011 Opublikowano 19 Listopada 2011 Dodaj to /n przed każdą komendą typu Edie dołączył do gry.
ediepl Opublikowano 19 Listopada 2011 Autor Opublikowano 19 Listopada 2011 Po pierwsze to \n, a po drugie nie chodziło mi o to żeby "Edie join the game" było na dole tylko "cześć", chodzi o to że jeszcze nie "potwierdzony" tekst enterem był zawsze na dole.
ediepl Opublikowano 27 Listopada 2011 Autor Opublikowano 27 Listopada 2011 Odświeżam. Proszę o pomoc, chodzi mi o konsole gdzie można coś wpisać i wypisać bez blokowania wątku.
kt1117 Opublikowano 27 Listopada 2011 Opublikowano 27 Listopada 2011 Może przed wywaleniem czegoś najpierw zapis treść konsoli do zmiennej, wyczyść konsolę, zmień treść zmiennej i z cout'ój.
ediepl Opublikowano 27 Listopada 2011 Autor Opublikowano 27 Listopada 2011 Też myślałem żeby teksty zapisywać do tablicy, a potem to wypisywać, ale prawdopodobnie będzie widać mrygnięcia co będzie raczej mało efektowne <_<
Raalsky Opublikowano 28 Listopada 2011 Opublikowano 28 Listopada 2011 A jak instalujesz Linuxa to jak myślisz jak oni tą instalację konsolową robili? Też tam polega to na poleceniach "clear" itp. Może średni przykład, ale z tego co widziałem to migać to może, ale przy okropnym zawaleniu procka.
Raalsky Opublikowano 28 Listopada 2011 Opublikowano 28 Listopada 2011 A jak instalujesz Linuxa to jak myślisz jak oni tą instalację konsolową robili? Też tam polega to na poleceniach "clear" itp. Może średni przykład, ale z tego co widziałem to migać to może, ale przy okropnym zawaleniu procka. Yhm. Edit: Pokazał mi się komunikat o Antyfloodowaniu i miałem odczekać 30 sekund. Ciekawe, że jednak wysłało post...
taxi_driver Opublikowano 29 Listopada 2011 Opublikowano 29 Listopada 2011 Hej. Jesli to jest to co mi pisales, to roziazanie jest bardzo proste. Po prostu umiesc kursor w pozycji x,y i dopiero wtedy pisz to co chcesz. Mazanie calego ekranu faktycznie moze spowodowac miganie. Kiedys probowalem nauczyc sie c+ napisalem programik ktory szuka najkrotszej (najtanszej drogi). Program zasypuje tablice liczbami 0-9 a nastepnie wyszukuje drogi z jednego rogu ekranu do drugiego zeby suma pol przez ktore przejdzie droga byla jak najmniejsza. Sam zreszta zobacz, programik jest krotki, zaraz go zamieszcze. Wybierz 1 losowe zapelnianie i zobacz np: animacje napisu. Juz jest: POSZUKIWACZ NAJKROTSZEJ DROGI https://gmclan.org/up7949_3_Poszukiwacz_naj...j_drogi_by.html
ediepl Opublikowano 29 Listopada 2011 Autor Opublikowano 29 Listopada 2011 Wiem, przed 15 min temu znalazłem na google, i właśnie kończę pisać konsole(jeszcze tylko komendy admina), ale i tak dzięki wszystkim za pomoc :thumbsup:
Muuuuczek567 Opublikowano 29 Listopada 2011 Opublikowano 29 Listopada 2011 @taxi_driver: Twój program nie wyszukuje najtańszej drogi. Założyłbym się, że gdybyś napisał program, który próbuje dojść z l.g. rogu do p.d. rogu, ale tym razem nie wybierał mniejszej z dwóch wartości (prawo-dół), tylko losował którąkolwiek, to koszt byłby mniejszy częściej niż w Twoim algorytmie.
taxi_driver Opublikowano 29 Listopada 2011 Opublikowano 29 Listopada 2011 @taxi_driver: Założyłbym się, że gdybyś napisał program, który próbuje dojść z l.g. rogu do p.d. rogu, ale tym razem nie wybierał mniejszej z dwóch wartości (prawo-dół), tylko losował którąkolwiek, to koszt byłby mniejszy częściej niż w Twoim algorytmie. Przegrałbyś. :)
ediepl Opublikowano 13 Grudnia 2011 Autor Opublikowano 13 Grudnia 2011 Żeby nie robić spamu pytam w tym temacie. Przeładowałem sobie operator << do dodawanie tekstu do konsoli: konsola& operator<< (string text) { tekst[linika] += _pl(text); draw(); return (*this); } jak dodać do tego endl takie jak w cout?
Will Opublikowano 13 Grudnia 2011 Opublikowano 13 Grudnia 2011 np: konsola& operator<< (uint32 id) { if(id==ENDL) { //end line } }
ediepl Opublikowano 13 Grudnia 2011 Autor Opublikowano 13 Grudnia 2011 Ale chyba uint32 to unsigned int więc jam ma porównać z ENDL(co jest właściwie niczym)? EDIT:Problem rozwiązany, zamykam temat.
Rekomendowane odpowiedzi