Kuten tekoälyn keskusteluaiheesta voi lukea, QB:n kääntäjä rupesi sekoilemaan, ja joudun nyt porttaamaan tekoälyni C++:lle. Koska en kuitenkaan C++:aa kovin hyvin hallitse, joudun esittämään monia kysymyksiä. Ja tässä on ensimmäinen:
Miten voin määritellä kaksiulotteisen taulukon niin, että alkiot ovat -5:stä 55:een, niin kuin QB:ssä:
DIM taulukko(-5 TO 55, -5 TO 55)
Et mitenkään. Taulukon alkiot alkavat aina nollasta ja päättyvät kohtaan taulukon koko - 1.
Pahin pelkoni toteutui. Nyt meni TODELLA vaikeaksi.
int taulukko[60][60];
Eiköhän se tolla hoidu? Eli tuo luo kaksiulotteisen taulukon jonka viimeinen alkio on 59 ja ensimmäinen 0...
No hoituu tietysti, mutta porttauksen kannalta erittäin vaikeaa.
Noh, ihmettelen kyllä miksi sitä QB:tä edes pitää käyttää nykyään :)
Käytä vaikka PHP:tä mielummin... Tai sitten CoolBasicia, sekin on parempi valinta kuin QB.
T.M. kirjoitti:
Noh, ihmettelen kyllä miksi sitä QB:tä edes pitää käyttää nykyään :)
Käytä vaikka PHP:tä mielummin... Tai sitten CoolBasicia, sekin on parempi valinta kuin QB.
Minulla on 20 päivää aikaa saada tekoäly portattu, ja siihen voi mennä kauemminkin, jos ruvetaan vetämään off-topiciksi. Kai tajuat, että asia nyt myöhäistä korjata. Sitä paitsi olenkin siirtymässä QB:stä C++:aan. PHP:tä en ainakaan vielä kokeile. CoolBasic (joka ei suoriudu edes lausekkeesta: Dim muuttuja As Integer) ei kyllä auta minua tässä tekoälyssä enempää kuin QB, päinvastoin. Jos jotain muuta Basicia käyttäisin, niin se olisi Visual Basic.
Edit: Miksi minä sen vasta nyt keksin? Tietysti! Porttaan tekoälyni Visual Basicille! :D
Mihin edes tarvitset alkioita -5:stä 55:een? Eikö nollasta 60:een olisi parempi?
firebug kirjoitti:
Mihin edes tarvitset alkioita -5:stä 55:een? Eikö nollasta 60:een olisi parempi?
Kerron sitten, kun kilpailu on ohi. Ennalta en aio paljastaa vielä mitään.
int taulukko[60][60]; int taulu(int x, int y) { return taulu[x+5][y+5]; }
Tiedot ladataan muuttujaan taulukko ja tarkistetaan sieltä funktion taulu avulla. Esim. taulu(-5, -5) toimii nyt. Tällainen olisi yksi mahdollisuus.
Tarkoitat luultavasti kuitenkin:
return taulukko[x+5][y+5];
eikä
return taulu[x+5][y+5];
Todella kekseliäs ratkaisu. Täytyy pitää tuo mielessä, kun seuraavan kerran tarvitsen negatiivisia alkioita C++:ssa, mutta sain kuitenkin jo portattua tekoälyni Visual Basicille, ja exe toimii nyt, kuten pitää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.