Oppure

Loading
25/01/09 11:22
kelfen
Ho trovato questo comando molto interessante: "BOOL GetCursorPos(LPPOINT lpPoint);" ma ho scoperto che è per il muose e soprattutto non penso sia eseguibile in dos...

mi servirebbe un comando o un "modo" per far si che essendoci a video quelle 3 righe (prog sotto) bastasse pigiare su o giù nella tastiera per selezionarne una.
ps. io ancora non so creare programmi ad interfaccia grafica, quindi vengono eseguiti in dos.

#include <iostream>
using namespace std;
void main()
{
int n;
cout<<"1- Gioca"<<endl;
cout<<"3-Istruzioni"<<endl;
cout<<"3-opzioni"<<endl;
cin>>n;


Ultima modifica effettuata da kelfen 25/01/09 11:34
aaa
26/01/09 11:12
munkaka
anche se riuscissi a muovere il cursore il tuo programma prende l'input dal cin, quindi non ti serve selezionare le righe
prova usando getch() e una variabile che varia da 1 a 3, e poi dopo aver premuto enter con un if scegli l'operazione da eseguire
aaa
26/01/09 13:29
kelfen
Postato originariamente da munkaka:

anche se riuscissi a muovere il cursore il tuo programma prende l'input dal cin, quindi non ti serve selezionare le righe
prova usando getch() e una variabile che varia da 1 a 3, e poi dopo aver premuto enter con un if scegli l'operazione da eseguire


quello si... ma io intendevo tipo che venissero fuori a video le 3 opzioni e schiacciando su o giu sulla tastiera, un pallino si posizionasse di fianco alla scleta e premendo "invio" si sceglieva dove entrare

ps. l'ho visto su un prog.
aaa
26/01/09 20:46
Il_maca
int scelta(){
     int x1=15,x2=51,y=8,k=0,sw=0;
     gotoxy(x1,y);
     printf("-->";);
     gotoxy(x2,y);
     printf("<--";);
     do{
         k=_getch();
         switch (k){
             case 49:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=8;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 50:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=9;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 51:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=10;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 52:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=11;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 53:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=12;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 54:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=13;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 55:
             gotoxy(x1,y);printf(" ";);gotoxy(x2,y);printf(" ";);y=14;
             gotoxy(x1,y);printf("-->";);gotoxy(x2,y);printf("<--";);
             break;
             case 72:
             if (y!=8){
                 gotoxy(x1,y);printf(" ";);gotoxy(x2,y);
                 printf(" ";);y--;gotoxy(x1,y);printf("-->";);
                 gotoxy(x2,y);printf("<--";);
                 }else {                 
                     gotoxy(x1,y);printf(" ";);gotoxy(x2,y);
                 printf(" ";);y=14;gotoxy(x1,y);printf("-->";);
                 gotoxy(x2,y);printf("<--";);
                     }
             break;
             case 80:
             if (y!=14){
                 gotoxy(x1,y);printf(" ";);gotoxy(x2,y);
                 printf(" ";);y++;gotoxy(x1,y);printf("-->";);
                 gotoxy(x2,y);printf("<--";);
                 }else {
                      gotoxy(x1,y);printf(" ";);gotoxy(x2,y);
                 printf(" ";);y=8;gotoxy(x1,y);printf("-->";);
                 gotoxy(x2,y);printf("<--";);
                     }
             break;
            
             }             
         }while(k!=13);
        
     for(int i=8;i<=14;i++){
         if (y==i){sw=i-7;}
     }
return sw;    
}


implementa la libreria conio, modifica la stringa "<--" come più ti piace, mettendoci un pallino o quello che vuoi tu e modifica i numeri in modo da trovarti a tre scelte!! questo l'ho sudato e studiato io in ore e ore di sforzi mentali!!!!!
aaa
26/01/09 23:06
munkaka
ho trovato un programma che avevo fatto che fa quello che vuoi fare tu, ti allego la parte di codice che ti interessa
Ultima modifica effettuata da munkaka 26/01/09 23:08
aaa
27/01/09 13:59
Il_maca
Postato originariamente da munkaka:

ho trovato un programma che avevo fatto che fa quello che vuoi fare tu, ti allego la parte di codice che ti interessa


questo pezzo di codice l'ho provato io, ma non funziona!!! e anke l'eseguibile non va, causa mancanza delle librerire specifiche!! cmq vedendo il sorgente ho notato ke potrebbe interessarmi!! non potresti postarmi tutto il codiced con le librerie?? vorrei studiarmele!!
aaa
27/01/09 17:49
munkaka
strano che non ti funziona, ho ricompilato il codice che ti ho dato con code blocks e visual studio e funziona
in ogni caso ti mando la cartella contentente il file exe compilato in release e anche gli header usati e il codice
aaa
28/01/09 9:40
kelfen
Grazie mille a tutti!!!!!!!

adesso che ho visto come si fa, m studierò il comando gotoxy e proverò a rifarlo!!

edit.perfetto sono riuscito a rifarlo usando però solo i comandi che conosco.

char c,a1='*',a2=' ',a3=' ';
	int s=1;
	do
	{
		system("cls");
		cout<<"Scegli:"<<endl<<endl;
		cout<<a1;
		cout<<"  Gioca"<<endl;
		cout<<a2;
		cout<<"  Istruzioni"<<endl;
		cout<<a3;
		cout<<"  Opzioni"<<endl;
		c=getch();
		if(c==72) 
			s--;             //giu 
		if(c==80)  
			s++;             //su
		if(s>3) 
			s=1;
		if(s<1) 
			s=3;
		a1=' ';a2=' ';a3=' ';
		if(s==1)
			a1='*';
		if(s==2)
			a2='*';
		if(s==3)
			a3='*';
	}while(c!=13);


l'unico problema è che il "cls" è un pò lento e si vede ammalapena il refresh della pagina..
adesso vedrò di capire come funzia il "gotoxy" e poi lo farò con quello.
Ultima modifica effettuata da kelfen 28/01/09 11:46
aaa