C++ -kysymykset

Muu yhteisön välinen keskustelu.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Sain toimimaan - Uskomattomalla purkalla ja kikkailuilla:

Code: Select all

//...

string GetStr(int n){
  char *Buffer;
  itoa(n,Buffer,10);
  return Buffer;                   
}

string LoadMap(string Level){
  string Line,Returns;
  string cont = string("Maps/")+Level+string(".txt");
  
  ifstream MapFile (string(cont).c_str());

  if(MapFile.is_open()){
    while(!MapFile.eof()){
      // ...
    }
    MapFile.close();  
  }
}

//...
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:Sain toimimaan - Uskomattomalla purkalla ja kikkailuilla...
Näin nippelitietona tähän väliin, että intin maksimipituus kymmenjärjestelmän merkkijonoksi muutettuna on 11, koodissasi oli 10.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Joo, tein tuon funktion oli alunperin liukuluvuille, ja tuo 10 jäi siihen vahingossa kun tein siitä kokonaisluku version. Kiitos huomautuksesta :-)
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: C++ -kysymykset

Post by phons »

Olisioko mitään ohjekirjaa millä nyt pääsisi ajan tasalle kun en taita C++:aa vielä kovin hyvin :?:
Image
dem0
Newcomer
Posts: 43
Joined: Wed Mar 19, 2008 7:36 am

Re: C++ -kysymykset

Post by dem0 »

phons wrote:Olisioko mitään ohjekirjaa millä nyt pääsisi ajan tasalle kun en taita C++:aa vielä kovin hyvin :?:
Oppaita löytyy monenlaista kunhan vain viitsii etsiä, mikä nyt on äärimmäisen helppo homma.

Itse voisin suositella alkuun Hassun hauskaa C++-opasta (http://www.nic.funet.fi/c++opas/), millä itsekin pääsin jaloilleni (ehkä vähän vanhentunut, mutta hyvää settiä silti). Toinen hyvä on myös Cplusplus.comin opas (http://www.cplusplus.com/doc/tutorial/), mikäli et kaihda lontoon kieltä.

Näiden jälkeen jos haluat sitten jotain kuvaakin näytölle, suosittelen SDL:ää ja oppaana LazyFoon SDL-opas (http://lazyfoo.net/SDL_tutorials/).

Ja kirjat, mitä ilmeisesti alunperin kysyit (vai kysyitkö :O). Niitä löytyy monia, lähikirjastostakin löytyy varmasti jotain matskua. Itse en ole mokomia lukenut enkä osaa neuvoa mitään teosta, mutta vaikka tätä threadia selailemalla löytyy varmasti kohtuuhyviä vinkkejä.
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: C++ -kysymykset

Post by TheDuck »

Tosiaan, itse opettelin kanssa ton hassun hauskan C++-oppaan avulla perusteet ja sitten koodasin. Koodaamalla oppii.
^^
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Sain juuri IDE:tä DevCPP ja kääntäjää MinGW32 käyttäen VisualC++:n virheilmoituksen:
Image
Mistä johtuu? Taikuutta? :D
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:Sain juuri IDE:tä DevCPP ja kääntäjää MinGW32 käyttäen VisualC++:n virheilmoituksen:
Mistä johtuu? Taikuutta? :D
Veikkaisin EVOa ennemminkin.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Kyllä minä nyt sen tiedän, että tein pienen virheen koodissa. Sitä olin kyselemässä, että miksi tuli VCpp:n virheilmoitus, kun en sitä ole edes asentanut koneelle?
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:Kyllä minä nyt sen tiedän, että tein pienen virheen koodissa. Sitä olin kyselemässä, että miksi tuli VCpp:n virheilmoitus, kun en sitä ole edes asentanut koneelle?
No tuosta Runtime:stä päättelisin, että windowsissa on itsessään mukana ajonaikaisia kirjastoja jotka antaa tuon virheilmoituksen? Tai sitten käyttämäsi ide tai kääntäjä asentaa ne itse.
OoO
zHelmet
Member
Posts: 73
Joined: Mon Nov 10, 2008 3:55 pm

Re: C++ -kysymykset

Post by zHelmet »

Olisiko mitään functiota millä voisi tarkastaa painetaanko nappia koska esim GetAsyncKeyState() on huono koska se tunnistaa näppäimet kaukaa..?
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

zHelmet wrote:Olisiko mitään functiota millä voisi tarkastaa painetaanko nappia koska esim GetAsyncKeyState() on huono koska se tunnistaa näppäimet kaukaa..?
Kaukaa O_o?

Miten olisi sitten GeKeyState()?
OoO
zHelmet
Member
Posts: 73
Joined: Mon Nov 10, 2008 3:55 pm

Re: C++ -kysymykset

Post by zHelmet »

no siis se tunnistaa ne muiden ohjelmien läpi.
Edit: kiitos :)
Edit2: ei tuokin ottaa muista ohjelmista sen napin painasun
Guest

Re: C++ -kysymykset

Post by Guest »

zHelmet wrote:no siis se tunnistaa ne muiden ohjelmien läpi.
Edit: kiitos :)
Edit2: ei tuokin ottaa muista ohjelmista sen napin painasun
Jos loit ikkunasi WinAPI:lla, niin voit lukea näppäimet sen sisältä WM_KEYDOWN viestin avulla.
zHelmet
Member
Posts: 73
Joined: Mon Nov 10, 2008 3:55 pm

Re: C++ -kysymykset

Post by zHelmet »

Vieras wrote:
zHelmet wrote:no siis se tunnistaa ne muiden ohjelmien läpi.
Edit: kiitos :)
Edit2: ei tuokin ottaa muista ohjelmista sen napin painasun
Jos loit ikkunasi WinAPI:lla, niin voit lukea näppäimet sen sisältä WM_KEYDOWN viestin avulla.
Tuo on tehty pelkkään console ikkunaan.
Jormalaz
Member
Posts: 77
Joined: Sun Jun 15, 2008 9:22 pm

Re: C++ -kysymykset

Post by Jormalaz »

Turha.
Last edited by Jormalaz on Thu Nov 27, 2008 2:08 am, edited 1 time in total.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Jormalaz wrote:Nyt tekisi taas pitkästä aikaa aloittaa taas koodaaminen, mutta en muista oikeastaan enään mitään. Viimevuonna osasin jo tehdä tekstipelin ja hieman jotain SDL kirjastolla, mutta en enään.
Tämä selvä.
OoO
lukutoukka
Active Member
Posts: 111
Joined: Fri Jun 13, 2008 9:06 pm

Re: C++ -kysymykset

Post by lukutoukka »

Itse kun pyrin tekemään pientä roguelikeä, mutta ongelmana heti, mikä kirjasto lukee näppäimistön syötteitä ja miten saa tuon konsoliruudun olemaan rullaamatta alaspäin?

Ja sitten ajattelin toteuttaa tämän rogueliken olio ohjelmoituna, eli nyt kysyn, mitä kaikkea olio ohjelmoinnista tarvitsee tietää tällaisessa urakassa alkuunsa? Itse ainakin osaan luoda perus luokan (class) ja siihen olioita. Muita systeemejä en sitten ymmärräkään, niin voiko joku selittää/opettaa ne?

Ja sitten, kun luon automaattisen olion, niin pysyykö se kuinka kauan käytössä, eli jos luon vaikkapa olion main ohjelmaan, niin pysyykö se koko main ohjelman ajan toiminnassa, niinkuin normaalit muuttujat?

Miten sitten periytymiset ja nämä systeemit toimivat, sillä ymmärtääkseni ylemmän luokan tiedot periytyvät alemmalle ja alempi luokka voi käyttää myös ylemmän luokan tietoja. Eli jos tällä tavalla tekisi tähän roguelikeeni, niin olisi ensinnä ryhmä, joka käsittäisi kaikille ukoilla olevat samat tiedot, kuten sijaintien ja liikkumisten käsittelemisen ja sen jälkeen aina haarautuisi, vihollisiin ja hyviksiin, joilla on joitain samoja tietoja ja siitä sitten haarautuu eri rotujen erikoistietoihin mm. Vai olenko väärässä tässä suhteen?

Tässä sitten pieni koodi pätkä, jonka olen ymmärtänyt luokista...

Code: Select all

#include <iostream>
#include <string>
using namespace std;

class Character
{
	int x;
	int y;
public:
	void Move();
};
void Character::Move()
{
	; //Tähän tulee sitten liikutuksen hoitamiseen liittyvä koodi...
}
Olion määrityshän tapahtuu seuraavasti: Character Olio ja sillä tuon Move toiminnon hoitaminen Olio.Move() ?

Sitten vielä perus kysymys osoittimista ja viittauksista, niin mitä ne tekevät, sillä omistamani opaskirja ei oikein kertonut selvästi, itse ainakin ymmärsin niin, että niiden avulla, esim. aliohjelmasta voi katsoa main osan jotain tietoa, kun sitä kutsutaan, eli yksi parametri voisi olla viittaus siihen kohtaan, olenko oikeassa?

Noniin tuossapa sitten aika iso kysymysmäää, joihin toivon pikaista vastausta.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Itse kun pyrin tekemään pientä roguelikeä, mutta ongelmana heti, mikä kirjasto lukee näppäimistön syötteitä
Syötteitä voit lukea conio.h:n _getch() funktiolla, joka palauttaa painetun näppäimen ASCII arvon. Laita se vaikka peli-luupin loppuun, ja laita sen jälkeen tarkistukset, mitä painettiin. Ruudun saat päivitettyä siirtämällä konsolikursorin konsolin alkuun
miten saa tuon konsoliruudun olemaan rullaamatta alaspäin?
Uskoisin, että windows.h:sta löytyy ratkaisu, mutta tarkoitat ilmeisesti, miten saisit ruudun päivitettyä? Se onnistuu tällä ja kirjoittamalla päälle kaikki pelin elementit päivitettyinä esim. luupissa.
Muita systeemejä en sitten ymmärräkään, niin voiko joku selittää/opettaa ne?
Toinen tyyli olisi käyttää structuureja, mutta niistä ei ole hyötyä jos osaat käyttää classeja :)
Ja sitten, kun luon automaattisen olion, niin pysyykö se kuinka kauan käytössä, eli jos luon vaikkapa olion main ohjelmaan, niin pysyykö se koko main ohjelman ajan toiminnassa, niinkuin normaalit muuttujat?
Pysyy toki, ellet tuhoa sitä.
Eli jos tällä tavalla tekisi tähän roguelikeeni, niin olisi ensinnä ryhmä, joka käsittäisi kaikille ukoilla olevat samat tiedot, kuten sijaintien ja liikkumisten käsittelemisen ja sen jälkeen aina haarautuisi, vihollisiin ja hyviksiin, joilla on joitain samoja tietoja ja siitä sitten haarautuu eri rotujen erikoistietoihin mm. Vai olenko väärässä tässä suhteen?
Kuulostaa hyvältä idealta. En tosin ole varma onko järkevää tehdä omaa luokkaansa jokaiselle rodulle, koska voithan tehdä hahmo-luokalle enumin Rotu{...};
Olion määrityshän tapahtuu seuraavasti: Character Olio ja sillä tuon Move toiminnon hoitaminen Olio.Move() ?
Joo.
Sitten vielä perus kysymys osoittimista ja viittauksista, niin mitä ne tekevät
Niille annetaan muistiosoitteita, ja niiden avulla voidaan esimerkiksi päästä käsiksi muuttujiin jotka muuten olisivat tavoittamattomissa. Viittaus on muuten samanlainen kuin osoitin, mutta se taisi olla hieman karsitumpi.

Jos jotain meni väärin niin laitan noobiuteni piikkiin ;)
lukutoukka
Active Member
Posts: 111
Joined: Fri Jun 13, 2008 9:06 pm

Re: C++ -kysymykset

Post by lukutoukka »

Kiitoksia tuo auttoi huomattavasti eteenpäin tässäkin projektissa.
EDIT:

No en sitten omalla älykkyydellä saanut tuota konsolisysteemiä toimimaan ja tarkennuskin nyt tässä samalla, eli tarkoitin tuolla sitä, että se vierityspalkki katoa siitä konsolista, sekä se pysyy aina samssa kohtaan, tällaisen jutun sai ainakin tehytä FreeBasicilla, kun sillä kerran ohjelmoin...

Muuten sain toimimaan tämän systeemin...

Post Reply