Eli tehen ohjelmointiputkan ohjeiden mukaan tekstipohjaista peliä ja sen koodi on seuraavanlainen, siellä on ongelma ainokaisen funktion kanssa, joten voitteko auttaa?
Declare sub kartanpiirto ()' kartanpiirto aliohjelman lataus declare sub karttap () ' kartan lataus declare function haenappi (a as string) as string ' function haenappi lataus DIM shared kartta(1 to 80, 1 to 35) as INTEGER ' Taulukon luonti DIM x AS INTEGER, y AS INTEGER DIM shared ux as integer, uy as integer dim a as string screenres 640, 400 ' näytön määritys x = 40 ' muuttujien arvojen laitto y = 12 ux = x uy = y karttap ' kartan merkit CLS ' Näytön tyhjäys kartanpiirto ' Kartta piiretään DO LOCATE y, x ' Hahmon kohta näytöllä y ja x arvot PRINT "O"; ' Tulostamme O-merkin (hahmo) ylämainittuun kohtaan a = haenappi Locate y, x ' Ukon kohta kumitusta varten Print " "; ' Ukko kumitetaan SELECT CASE a ' näppäimet ja niiden toiminnot CASE "a" ' Vasemmalle ux = x - 1 uy = y CASE "a" + "w" ' Vasempaan yläviistoon ux = x - 1 uy = y - 1 CASE "a" + "s" ' Vasempaan alaviistoon ux = x - 1 uy = y + 1 CASE "d" ' Oikealle ux = x + 1 uy = y CASE "d" + "w" ' Oikea yläviisto ux = x + 1 uy = y - 1 CASE "d" + "s" ' Oikealle alaviistoon ux = x + 1 uy = y + 1 CASE "w" ' Ylös ux = x uy = y - 1 CASE "s" ' Alas ux = x uy = y + 1 case chr(27) ' Sulje ohjelma END END select IF kartta(ux, uy) = 0 THEN ' törmäystarkistus x = ux y = uy END IF LOOP SUB kartanpiirto ' Kartanpiirto aliohjelma DIM i as integer ' Muuttujat määritetään DIm i2 as integer ' Kartan tarkistus for i2 = 1 to 35 ' y for i = 1 to 80 ' x locate i2, i if kartta(i, i2) = 1 then print "#"; ' tarkistaa kartan ja piirtää 1 kohtiin seinää if kartta(i, i2) = 2 then print "/"; ' tarkistaa kartan ja piirtää 2 kohtiin ovet (avonaiset if kartta(i, i2) = 3 then print "k"; ' tarkistaa kartan ja piirtää 3 kohtaan avaimen next i next i2 END sub sub karttap ' kartan teko aliohjelma kartta(10, 11) = 1 kartta(10, 9) = 1 kartta(10, 7) = 1 end sub function haenappi(a as string) as string do a = inkey loop until a <> "" haenappi = a end function
Eli ainokainen haenappi functio reistailee virhesanoma on seuraavanlainen
error 1: Argument count mismatch in 'a = haenappi'
Toivoisin pikaista vastausta ja kiitos jo etukäteen kaikille vastanneille.
Virhe johtuu siitä, ettet anna funktiolle 'haenappi' tarvittavia parametreja... olet määritellyt sen niin että se vaatii parametrikeseen String-tyypin muuttujan - haenappi(a as String). Määrittele muuttuja a funrkion sisällä äläkä tuo sitä parametrina niin poistuu tuo vaiva;
function haenappi() as string dim a as String do a = inkey loop until a <> "" haenappi = a end function
Kiitoksia avusta
Aihe on jo aika vanha, joten et voi enää vastata siihen.