jeli moguće upravljati pritiskom tipki na gamepadu preko programa kao što je moguće za tipkovnicu preko keybd_event();
Programiranje u C++-u - pitanja i odgovori
- poruka: 7.285
- |
- čitano: 1.712.719
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
jeli moguće upravljati pritiskom tipki na gamepadu preko programa kao što je moguće za tipkovnicu preko keybd_event();
http://msdn.microsoft.com/en-us/library/dd757116(v=VS.85).aspx#CommunityContent
Joj MSDN i njihovi URL-ovi, da su malo više frendly ne bi nikom smetalo.
http://msdn.microsoft.com/en-us/library/dd757116(v=VS.85).aspx#CommunityContent
Joj MSDN i njihovi URL-ovi, da su malo više frendly ne bi nikom smetalo.
Onaj dio koji nije oznacen kao url, nije cak ni potreban.
Kako da u CodeBlocks-u onemogucim "auto code completion"?
U postavkama pod ---- "Settings ------- Editor ------- Code completion and symbols browser" sam vec odabrao "disable code completion" ali bez ikakvog ucinka.
Imaš temu o literaturi iz programiranja.
jeli moguće upravljati pritiskom tipki na gamepadu preko programa kao što je moguće za tipkovnicu preko keybd_event();
gledam i gledam tu stranicu i sve ostale linkove, i nigdje nemogu pronaći nešto čime bi baš kontrolirao osi. sve nešto kao capture, get position..,
gledam i gledam tu stranicu i sve ostale linkove, i nigdje nemogu pronaći nešto čime bi baš kontrolirao osi. sve nešto kao capture, get position..,
Što ti znači "kontrolirao osi"?
Pa očitavaš trenutno stanje joysticka pomoću određenih funkcija, te reagiraš sukladno tome.
http://msdn.microsoft.com/en-us/library/dd757121%28v=vs.85%29.aspx
Inače, to je zastarjeli API. Ako hoćeš nešto s više mogućnosti zasuci rukave i pozabavi se directinputom.
gledam i gledam tu stranicu i sve ostale linkove, i nigdje nemogu pronaći nešto čime bi baš kontrolirao osi. sve nešto kao capture, get position..,
Što ti znači "kontrolirao osi"?
da ja u programu određujem trenutnu poziciju osi, nezavisno od toga što je na joysticku
da ja u programu određujem trenutnu poziciju osi, nezavisno od toga što je na joysticku
lol pa ti čitaš input sa joysticka, kako ćeš ti interpretirati taj input je tvoja stvar...
da ja u programu određujem trenutnu poziciju osi, nezavisno od toga što je na joysticku
lol pa ti čitaš input sa joysticka, kako ćeš ti interpretirati taj input je tvoja stvar...
nije meni uopće potrebno da ga čitam svojim programom, nego mi je važno kako ostali programi čitaju joystick ( hoću da čitaju moje inpute iz programa)
nije meni uopće potrebno da ga čitam svojim programom, nego mi je važno kako ostali programi čitaju joystick ( hoću da čitaju moje inpute iz programa)
Želiš stvarati joystick input evente?
nije meni uopće potrebno da ga čitam svojim programom, nego mi je važno kako ostali programi čitaju joystick ( hoću da čitaju moje inpute iz programa)
Želiš stvarati joystick input evente?
Želim ako je to ono što tražim :D čuo sam da je to jedino moguće preko direct inputa, no ja o tome nemam pojma
Želim ako je to ono što tražim :D
Pa želiš li stvarati vlastite joystick input evente na koje će druge aplikacije reagirati? Npr. odaslati event pomicanja palice ulijevo koji će onda neka aplikacija uhvatiti i reagirati na njega kao da je netko stvarno pomaknuo palicu joysticka ulijevo?
čuo sam da je to jedino moguće preko direct inputa, no ja o tome nemam pojma
DirectInput je zadužen za joysticke, ako sam dobro skužio što želiš to ti neće baš funkcionirati bez hookanja na directinput. Znači ne gine ti proučavanje rada sa directinputom kako bi shvatio kako radi, te učenje hookanja u windows okružju.
Želim ako je to ono što tražim :D
Pa želiš li stvarati vlastite joystick input evente na koje će druge aplikacije reagirati? Npr. odaslati event pomicanja palice ulijevo koji će onda neka aplikacija uhvatiti i reagirati na njega kao da je netko stvarno pomaknuo palicu joysticka ulijevo?
točno to, imate kakvih korisnih linkova? :D
točno to, imate kakvih korisnih linkova? :D
To je veoma egzotična tema pa ću googlanje prepustiti tebi. Dao sam ti post iznad okvirno opis u kojem smijeru moraš tražiti. Evo nešto malo za početak:
http://stackoverflow.com/questions/3223406/low-level-mouse-hook-and-directx
http://sourceforge.net/p/vjoystick/code/344/tree/
Ako tražiš brzo rješenje, bojim se da ga nema ili barem ja ne znam za isto. Morat ćeš zasukati rukave i sam smisliti nekakvo rješenje jer je ovo što pokušavaš prilično neuobičajeno.
Hm, imam jedno pitanje. Jel je moguce napisati algoritam za rotaciju N x M matrice (proizvoljne, ne samo kvadratne) za +-pi/2 sa slozenoscu O(n2) ili je to meni malo kasno pa se ne mogu pomaknuti u nekom pravom pravcu? Posto su proizvoljne matrice u pitanju trebalo bi vektore koristiti.
Dakle, islo bi ovako nekako, transponirati matricu i onda obrnuti retke. Problem je samo u tome sto mi trenutno ne pada na pamet kako to izvesti u <= O(n2) slozenosti.
Eh, da, i bez dodatne matrice. Dakle, na istoj.
Mislim da je ovo unutar slozenosti O(n2):
http://stackoverflow.com/questions/2893101/how-to-rotate-a-n-x-n-matrix-by-90-degrees
for(int i=0; i<n/2; i++)
for(int j=0; j<(n+1)/2; j++)
cyclic_roll(m[i][j], m[n-1-j][i], m[n-1-i][n-1-j], m[j][n-1-i]);
void cyclic_roll(int &a, int &b, int &c, int &d)
{
int temp = a;
a = b;
b = c;
c = d;
d = temp;
}
To je za N x N matricu, tj. kvadratnu, slican algoritam sam i sam osmislio, doduse vidio sam ga kasnije na SO-u, razlika je jedino bila sto moj rotira -pi/2, taj na SO-u je rotirao +pi/2, ali ideja je ista.
Za kvadratnu mi i treba, ali to sam vec rijesio, pa rekoh sebi, zasto stati na tome, ajmo rotirati i N x M matrice, cisto iz zabave. Doduse, mislim da ne postoji neka prakticna primjena N x M matrica za koju ja znam, tako da mi nije hitno, a napravio bih to cisto iz zabave da vidim da se moze.
Ja sam rijesio na 2 slicna nacina, i mislim da je u oba slozenost u granicama O(n2). U oba slucaja prazna mjesta popunjam nulama(nije nuzno za rad programa). Oba rotiraju za +90 stupnjeva, no moze se algoritam se moze promijeniti na -90 stupnjeva. Ovdje sam stavio cijele kodove programa, koji sami popune matricu ovisno o varijablama n i m i ispisu matricu na pocetku i na kraju. To sam napravio iz razloga da se algoritmi vrlo lako testiraju, (samo mijenjajte m i n).
U prvom nacinu pretpostavljam da ako je npr. m> n, onda rezerviran prostor m*m, i obrnuto. Pravokutnik svodim na kvadrat, tj uzmem dimenziju pravokutnika koja je veca kao stranicu kvadrata. Onda taj kvadrat rotiram, po vec poznatom algoritmu gore. I po potrebi ako ostane negdje praznoga mjesta, pomakne matricu kako bi pocinjala tocno od (0,0)
#include <iostream>
#include <iomanip>
#define MAX 100
using namespace std;
void cyclic_roll(int &a, int &b, int &c, int &d)
{
int temp = a;
a = b;
b = c;
c = d;
d = temp;
}
void print_matrix(int **matrix,int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++)
cout<<setw(3)<<((int*)matrix)[i*MAX+j];
cout<<endl;
}
cout<<endl;
}
int main(){
int matrix[MAX][MAX]={{0}};
const int n =5, m = 10;
for(int i = 0; i< n; i++){
for(int j = 0; j < m; j++){
matrix[i][j] = i*m + j+1;
}
}
print_matrix((int**)matrix,n,m);
int square_size = n > m ? n : m;
for(int i = 0; i < square_size /2;i++)
for(int j = 0; j< (square_size+1)/2; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[square_size - 1 - j][i];
matrix[square_size - 1 - j][i] = matrix[square_size-1-i][square_size-1-j];
matrix[square_size - 1 - i][square_size - 1 -j] = matrix[j][square_size-1-i];
matrix[j][square_size-1-i] = temp;
}
int offsetY = m > n ? m - n : 0;
if(offsetY > 0){
for(int i = 0; i< m; i++)
for(int j = offsetY; j < m; j++){
matrix[i][j-offsetY] = matrix[i][j];
matrix[i][j] = 0;
}
}
print_matrix((int**)matrix,m,n);
return 0;
}
Drugi nacin, predostavlja da ako je matrica n*m dimenzija, da je rezerviran prostor za rotiranu matricu m*n( Dakle za razliku od prvog nacina, ne koristi prostor koji matrica i rotirana matrica ne koriste). Ovdje matricu podijelimo na 2 dijela, na najveci moguc kvadrat ( max(n,m)), i na ostatak. Kvadrat rotiramo po po prije poznatome algoritmu. Onda po potrebi pomaknemo taj kvadrat, da bi ostavili mjesta za ostatak. Onda taj ostatak jednostavno prepisemo.
#include <iostream>
#include <iomanip>
#define MAX 100
using namespace std;
void cyclic_roll(int &a, int &b, int &c, int &d)
{
int temp = a;
a = b;
b = c;
c = d;
d = temp;
}
void print_matrix(int **matrix,int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++)
cout<<setw(3)<<((int*)matrix)[i*MAX+j];
cout<<endl;
}
cout<<endl;
}
int main(){
int matrix[MAX][MAX]={{0}};
const int n =5, m = 4;
for(int i = 0; i< n; i++){
for(int j = 0; j < m; j++){
matrix[i][j] = i*m + j+1;
}
}
print_matrix((int**)matrix,n,m);
int square_size = n > m ? m : n;
int offset = n > m ? n-m : 0;
for(int i = 0; i < square_size /2;i++)
for(int j = 0; j< (square_size+1)/2; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[square_size - 1 - j][i];
matrix[square_size - 1 - j][i] = matrix[square_size-1-i][square_size-1-j];
matrix[square_size - 1 - i][square_size - 1 -j] = matrix[j][square_size-1-i];
matrix[j][square_size-1-i] = temp;
}
if(offset > 0)
for(int i = 0; i< square_size;i++)
for(int j = m -1 + offset; j> offset-1;j--)
matrix[i][j] = matrix[i][j-offset];
if(n > m)
for(int i = m; i<n;i++)
for(int j = 0; j<m;j++){
matrix[j][n-i-1] = matrix[i][j];
matrix[i][j] = 0;
}
else
for(int i = n; i <m;i++)
for(int j = 0; j< n;j++){
matrix[i][n-j-1] = matrix[j][i];
matrix[j][i] = 0;
}
print_matrix((int**)matrix,m,n);
return 0;
}
počinjem učit c++
možete mi reči nešto osnovno što se mora znati?!
s kojim programom da idem radit i neke stranice s dobrim tutorijalima!
možete mi reči nešto osnovno što se mora znati?!
Engleski jezik i umijeće googlanja ;)
Nekakav IDE, recimo Code::Blocks, DevCpp ili Visual C++ express
Možeš ovdje početi, ali pokušaj se što prije dokopati nekakve ozbiljnije literature, recimo C++ analiza i primjena ili Demistificirani C++.
HITNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO :D
Da li mi moze neko nacrtati dijagram toka za slijedeci zadatak pleaseeee:
Napisati program koji ce pronaci ikoliko ima petocifrenih brojeva kod kojih je suma zadnje cetiri cifre jednaka prvoj.
Uradila sam vec u programu, samo mi treba dijagram toka.Hitno,potrebno za uslov =)
Hitno mi treba pomoc please............... Trebam nacrtati dijagram toka za slijedeći zadatak.
Koliko ima 5-cifrenih brojeva kod koji je zbir zadnje 4 cifre jednak prvoj cifri.
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,p,n;
cin>>n;
p=(n/10000);
a=(n%10);
b=(n%100)/10;
c=(n%1000)/100;
d=(n%10000)/1000;
if (a+b+c+d==p)
{
cout<<n << " je petocifren broj ciji je zbir tadnje 4 cifre jednake prvoj."<<endl;
}
else
{
cout<<n <<" nije petocifren broj ciji je zbir zadnje 4 cifre jednake prvoj"<<endl;
}
return 0;
}
Eto ti kod za jedan broj,ubacis u petlju od 10000 do 99999 i napises dijagram toka na osnovu uradjenog programa ako ne znas odma..
Ma nije meni nazalost problem kod,samo dijagram toka :(
Što bi sve trebao znati prije nego krenem na OOP ? Za sada znam osnove , znaci funkcije,polja,pokazivače,petlje itd. Da li bi trebo naučiti još nešto kako bi mi shvaćanje OOP-a bilo lakše ?
Što bi sve trebao znati prije nego krenem na OOP ? Za sada znam osnove , znaci funkcije,polja,pokazivače,petlje itd. Da li bi trebo naučiti još nešto kako bi mi shvaćanje OOP-a bilo lakše ?
Što manje znaš to ti je bolje. :D
Objektno orjentisano nije nadogradnja funkcionalnog, najbolje bi bilo da nemaš pojma ni jedno i da odmah učiš OOP. To što znaš do sada ti je dosta, funkcije ćeš u OOP-u zvati metode, itd.
tko sve od vas ide na HONI?
1 | skupina OŠ |
---|---|
1 | skupina SŠ |
0 | mentor |
5 | ne idem |
5 | ne znam što je to |
Imam jedan problem, naime ovo je tekst zadatka kojeg trebam rijesiti :
Za četiri broja poredana po veličini reći ćemo da čine aritmetički niz ako je razlika dvaju susjednih elemenata uvijek ista. Takvi su primjerice brojevi: 1, 5, 9, 13 (razlika je 4). Napiši program koji će unositi tri broja iz aritmetičkog niza od 4 i odredit će koji je četvrti broj. Uneseni brojevi nisu nužno poredani po veličini.
Test primjer :
Ulazni - 13, 9, 1
Izlazni - 5
I ovo sam dosad napisao :
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main ()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>b && b>c &&(b-c)==4 &&(a-b)>4)
{
printf("%d",a-4);
}
if(a>b && b>c &&(a-b)==4 &&(b-c)>4)
{
printf("%d",b-4);
}
system("pause");
return 0;
}
Problem jest taj, sto program nista ne ispisuje, makar i u ovom stadiju
Problem je taj što si postavio uvjete takve kakve si postavio. Probaj malo provrtiti jedan od ta dva uvjeta kroz glavu pa će ti biti jasno, koristi i olovku i papir ako ne možeš popamtiti što prolazi a što ne prolazi. Dosta si naivno krenuo rješavati taj problem ako smijem primijetiti, zar si mislio pisati if blok za svaku moguću kombinaciju poredanih brojeva? Ja bih to stavio sve u polje, sortirao polje, i onda tražio brojeve između kojih je razlika veća od četiri.