Jump to content
Patrunjel

Ceva asemanator conio.h pe Linux [C++]

Recommended Posts

Posted

Salut, mi-a venit prin cap sa-mi fac un joculet (nu cine stie ce, insa mie mi se pare misto, chiar daca e in consola :)) ), insa pentru asta am nevoie de clrscr() (sau un sfat legat de cum actualizez outputul, si Trolii tre sa se miste, nu? :)) ), si as mai avea nevoie de o idee legata de introducerea datelor de la tastatura fara a mai apasa enter (si, eventual, fara sa apara acolo in consola, insa asta nu e neaparat necesar, daca folosesc ceva gen clrscr).Ma poate ajuta cineva?

Posted (edited)

system("cls"); pe windoz si system("clear"); pe linux cat despre input fara enter poti cu hook-uri pe key-uri (doar in consola ta ca banuiesc ca nu vrei sa faci keylogger :P)

dar mai bine decat sa faci cu clear ..(e foarte greu) schimbi tu dinamic consola pe fiecare coordonata in parte (ti in memorie 2 matrici una pentru starea initiala si una pentru starea finala si modifici pe consola doar unde s-a schimbat ... nu tot)

edit:


#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif

si ai clrscr fara conio

edit2:

cu asta alegi pozitia din consola unde afisezi ( din cate tin minte merge si win si lin )


void gotoxy(int x, int y){
COORD coord;
coord.X = x; coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

Edited by Xander
Posted (edited)

Asta ma gandeam si eu, sa rescriu doar ceea ce s-a schimbat, insa habar n-am cum se face asta.

In legatura cu restul chestiilor pe care le-ai zis, mersi mult, dar n-am inteles o iota :))

PS: nu vreau sa fac niciun keylogger, bre, fac un RPG in consola, tu esti H, te misti, si trolii is T(si ei se misca :)) ), si daca te-ai izbit in trol iti scade 20 viata, insa il omori.A,da, creste cate 1viata la 5 secunde. Cel putin asta-i planu :)) de azi la amiaza pana acuma abea am reusit sa generez harta (si sa fac cateva teste, sa vad cat de mare sa fie), si sa fac trolii sa se miste(vreo 2 ore m-am chinuit :)) nu stiam cum sa-i fac sa evite muntii, si bordura, si pe ei intre ei :)) ).Oricum, mie mi se pare interesant, daca vrea careva sa citeasca sursa o pun si pe-aici cand e gata.

PPS: Am bagat codu, insa imi raman reziduuri de harta in partea de sus :)) .Decat sa iau moca la copy-paste, mai bine zi-mi ceva termeni de cautat pe google :)

Edited by Patrunjel
Posted

Crede-ma, poate fi oricat de depasita, tot m-ar multumi :P insa oricum n-am cum sa o folosesc, sunt pe linux, si din ce mi-a zis mie gogu, nu e conio pe linux.Decat asspain.h (sau ceva de genu :)) ) care imita cumva conio, n-am ce-mi trebuie acolo.

Posted

din conio iti trebuie doar clrscr nu? adica:


#include <stdlib.h>
#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif

cand vrei sa cureti ecranu folosesti


clrscr();

P.S.: nu dai include conio sau altceva decat ce am scris eu mai sus

exemplu complet ... lol



#include <stdio.h>
#include <stdlib.h>
#ifdef WIN32
#define clrscr() system("cls");
#else
#define clrscr() system("clear");
#endif
int main()
{
for(int i=1;i<=10000;i++)
{
printf("aaa %d\n" , i);
clrscr();
}
}

Posted

da,asa am facut, imi raman bucati de output (vreo 2 linii ) de mai inainte.In fine, nu, nu clrscr() e cel mai important.Cel mai mult m-ar interesa sa pot sa introduc date fara sa apas enter, ca sa pot sa scriu functia de mutare a eroului :))

Posted


include <stdio.h>
#include <stdlib.h>
#include <termios.h>


struct termios initial_settings,
new_settings;



int main(int argc, char *argv[])
{
int n;

unsigned char key;



tcgetattr(0,&initial_settings);

new_settings = initial_settings;
new_settings.c_lflag &= ~ICANON;
new_settings.c_lflag &= ~ECHO;
new_settings.c_lflag &= ~ISIG;
new_settings.c_cc[VMIN] = 0;
new_settings.c_cc[VTIME] = 0;

tcsetattr(0, TCSANOW, &new_settings);

while(1)
{
n = getchar();

if(n != EOF)
{
key = n;

if(key == 27) /* Escape key pressed */
{
break;
}
if( 'A' <= key && key <= 'Z') key += 'a' - 'A';
printf("%c" , key);
/* do something useful here with key */
}
}

tcsetattr(0, TCSANOW, &initial_settings);

return(0);
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...