Grazie!
E per l'altro problema?
Grazie!
E per l'altro problema?
Fdxhccjcmvkdvovjvb h g m jvjduxhx
Altro problema?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Quello delle navicelle
Non riesco a far comparire insieme sia la navicella che ho scritto prima sia le navicelle nemiche create da un altro codice
Appena posso scrivo l'altro codice
Ma quindi "MODE CON COLS=200 LINES=200" dove lo devo inserire?
Fdxhccjcmvkdvovjvb h g m jvjduxhx
All'inizio del main può andare bene...codice:system("MODE CON COLS=200 LINES=200");
Per muovere le altre navicelle il modo più semplice è inserire all'interno del loop il codice che le disegna, evita i thread visto che non ti trovi a tuo agio nel leggere della documentazione...
Detto ciò potresti usare una matrice per la posizione delle navicelle e ad ogni ciclo spostare le navicelle in avanti (con un delay di tempo)...
codice:#include <time.h> //tempo in secondi: #define DELAY 0.2 //all'inizio del main time_t now, last; time(&last); //nel ciclo if(difftime(time(&now), last) >= DELAY) { last = now; //codice che sposta le navicelle }
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
allora, il nuovo codice è
[#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
void GotoXY(int x, int y) { COORD CursorPos = {x, y}; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsole, CursorPos); }
main () {
int x;
int y;
int muovi;
int az=3;
system("MODE CON COLS=100 LINES=50");
x=45;y=48;
GotoXY (x,y) ;
printf("!-||-!");
do {
muovi = getch();
if (muovi == 77 ) {
system("cls") ;
x=3+x;
GotoXY (x,y) ;
printf("!-||-!");
}
else if (muovi == 75 ) {
system("cls") ;
x=x-3;
GotoXY (x,y) ;
printf("!-||-!");
}
}
while (az!=50) ;
return 0;
} ]
mentre il codice delle navicelle è
[start:
b=rand()%200;
GotoXY(b,a);
printf("<(_)>");
Sleep(1000);
system("cls") ;
a=a-5;
GotoXY (b,a) ;
printf("<(_)>");
d=rand()%200;
GotoXY(d,c);
printf("<(_)>");
Sleep(1000);
system("cls") ;
c=c-5;
GotoXY (d,c) ;
printf("<(_)>");
Sleep(3000);
goto start;]
il mio problema è: dove inserire il secondo codice per evitare che il secondo annulli il primo?
Fdxhccjcmvkdvovjvb h g m jvjduxhx
Devi organizzare il tuo codice in un main e tante funzioni.
Nel main inserisci un grande ciclo while in cui chiami le varie funzioni (che gestiscono i vari oggetti).
No MP tecnici (non rispondo nemmeno!), usa il forum.
uniscili, oppure come detto da oregon usa i threadOriginariamente inviato da Scara95
codice:#include <time.h> //tempo in secondi: #define DELAY 0.2 //all'inizio del main time_t now, last; time(&last); //nel ciclo if(difftime(time(&now), last) >= DELAY) { last = now; //codice che sposta le navicelle }
Edit: ah, dimenticavo, evita gli sleep e sostituiscili con variabili di tempo e sottrazione, come mostrato qui sopra...
Nell'emulare con un ciclo un sistema multi-threading l'inserimento di uno sleep non blocca solo un processo, ma entrambi...
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
ma devo copiare un
if(difftime(time(&now), last) >= DELAY) {
last = now;
al posto di ogni sleep?
ragazzi ma io ho provato ad aggiungere
time_t now, last;
time(&last);
ma mi dice
'now' : undeclared identifier
'last' : undeclared identifier
'function' : incompatible types - from 'int *' to 'time_t *'
come risolvo?![]()
Fdxhccjcmvkdvovjvb h g m jvjduxhx