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 functionEli 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 functionKiitoksia avusta
Aihe on jo aika vanha, joten et voi enää vastata siihen.