Im looking for a basic understand of a userinput survey. So it would display what a, b and c are and you would type the letter based on the answer assigned to the letter. And it would switch scenes for every question.
See if this would help you any.
https://codea.io/talk/discussion/7868/how-to-code-for-a-poll#latest
I had a look at that but i didnt seem to like that logic
That example showed a question and let you select an answer. It then continued showing questions/answers until there were no more questions. There’s code in there that you wouldn’t need, but you would remove that and add your code. I guess I don’t understand exactly what you’re after then.
I want basically, you pick one out of 4 options ( which are buttons) and the question is displayed above.
Can you give one example of the 4 options and the questions that would pop up. Maybe if I can see what you want I can whip up another example.
What is your age? , 1-10,10-15,15-20,20-80
That was basically the program I showed you above. Here’s a modified version of it. You’ll have to add code to the touched function depending on what you want to do with the answer you select. Does this work for you.
function setup()
questions()
answers()
quest=1
end
function draw()
background(40, 40, 50)
fill(255)
if quest<=#qTab then
fill(255)
rect(50,650,400,80)
rect(50,450,400,80)
rect(50,350,400,80)
rect(50,250,400,80)
rect(50,150,400,80)
fill(255,0,0)
text(qTab[quest],200,700)
text(aTab[quest][1],200,500)
text(aTab[quest][2],200,400)
text(aTab[quest][3],200,300)
text(aTab[quest][4],200,200)
else
text("No more questions",WIDTH/2,HEIGHT/2)
end
end
function questions()
qTab={}
table.insert(qTab,"What is your age.")
table.insert(qTab,"How tall are you.")
table.insert(qTab,"This is question 3")
table.insert(qTab,"This is question 4")
table.insert(qTab,"This is question 5")
end
function answers()
aTab={}
table.insert(aTab,{"1-10 years","11-15 years","16-20 years","21-80 years"})
table.insert(aTab,{"3-4 feet","4-5 feet","5-6 feet","6-7 feet"})
table.insert(aTab,{"ans3-1","ans3-2","ans3-3","ans3-4"})
table.insert(aTab,{"ans4-1","ans4-2","ans4-3","ans4-4"})
table.insert(aTab,{"ans5-1","ans5-2","ans5-3","ans5-4"})
end
function touched(t)
if t.state==ENDED and quest<=#qTab then
if t.x>0 and t.x<WIDTH and t.y>450 and t.y<550 then
quest=quest+1
end
if t.x>0 and t.x<WIDTH and t.y>350 and t.y<450 then
quest=quest+1
end
if t.x>0 and t.x<WIDTH and t.y>250 and t.y<350 then
quest=quest+1
end
if t.x>0 and t.x<WIDTH and t.y>150 and t.y<250 then
quest=quest+1
end
end
end
Here this is what i came up with, Is there i way i can add a restart button at the end? And a way to simplifiy this messyness? The purpose of the program is an adult test to see if your ready to move out or not based on the answers.
supportedOrientations(PORTRAIT_ANY)
displayMode(FULLSCREEN)
function setup()
questions()
answers()
values()
score=0
quest=1
r = math.random(1,255)
g = math.random(1,255)
b = math.random(1,255)
-- setup sparkles for background
show_poles = nil
length = 200 -- tail length
dA = 10 -- angle variation
sA = 45 -- starting angle
respawn = 0.01 -- respawn frequence in seconds
sparkles = {}
spawncounter=0
end
function draw()
background(r, g, b, 255)
fill(255, 255, 255, 255)
if quest<=#qTab then
fontSize(25)
text(qTab[quest],WIDTH/2,700)
fontSize(20)
font("AmericanTypewriter-Bold")
text(aTab[quest][1],WIDTH/2,500)
text(aTab[quest][2],WIDTH/2,400)
text(aTab[quest][3],WIDTH/2,300)
text(aTab[quest][4],WIDTH/2,200)
else
if (score >= 24) then
fontSize(25)
text("You have proved yourself, your ready to move out.",WIDTH/2,HEIGHT/2)
length = 200 -- tail length
dA = 100 -- angle variation
sA = 453 -- starting angle
elseif (score <= 24) then
fontSize(25)
text("Your almost there but your still not ready to move out.",WIDTH/2,HEIGHT/2)
length = 200 -- tail length
dA = 100 -- angle variation
sA = 453 -- starting angle
end
end
fontSize(30)
font("ArialRoundedMTBold")
text("SCORE "..score,WIDTH/2,HEIGHT-50)
end
function questions()
qTab={}
table.insert(qTab,"What is your gender?")
table.insert(qTab,"What is your age?")
table.insert(qTab,"Are you currently employed or have been employed?")
table.insert(qTab,"If yes, have you ever been fired?")
table.insert(qTab,"How much money do you currently have saved?")
table.insert(qTab,"Have you received a high school diploma?")
table.insert(qTab,"Do you do chores in your household?")
table.insert(qTab,"Can you trust people?")
table.insert(qTab,"Can people trust you?")
table.insert(qTab,"Do you feel guilty when your at fault? (I.e) a car crash")
table.insert(qTab,"Do you feel empanthy for others?")
table.insert(qTab,"Can you love someone else?")
table.insert(qTab,"Do you love yourself?")
table.insert(qTab,"Do you feel you can make it in the world?")
table.insert(qTab,"Are men and woman equal?")
table.insert(qTab,"Have you ever been addicted to drugs, alcohol, etc?")
table.insert(qTab,"Do you believe you are currently being oppressed?")
table.insert(qTab,"Do you have any disabilities that hinder your daily life?")
table.insert(qTab,"Do you believe you have a purpose in this world?")
table.insert(qTab,"Do your parents want you to move out?")
table.insert(qTab,"Do you believe you are ready to move out?")
end
function answers()
aTab={}
table.insert(aTab,{"Male","Female","Other","Apache Attack Helicopter"})
table.insert(aTab,{"15-17","18-21","22-28","29+"})
table.insert(aTab,{"Yes","No (Worked under minimum wage)","No (Was never employed)",""})
table.insert(aTab,{"N/A","Yes","No",""})
table.insert(aTab,{"$100-$500","$500-$2,000","$2,000-$6,000","$10,000+"})
table.insert(aTab,{"Yes","No (Dropped out)","No (Never went to high school)","No (Failed high school)"})
table.insert(aTab,{"Yes","No","",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"No, Men are superior to Women","No, Women are superior to Me n","No, I hate everyone","Yes, Men and Women are equal"})
table.insert(aTab,{"No, (Tried them but never got addicted)","No, (Never tried it)","Yes, but I overcame the addiction","Yes, and I'm currently addicted to something"})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes, I suffer from atleast one Mental disability","Yes, I suffer from atleast one Physical disability","Yes, I suffer from Mental and Physical disabilities","No, I do not suffer from any disabilites"})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
table.insert(aTab,{"Yes","No","Don't know",""})
end
function values()
sTab={}
table.insert(sTab,{1,1,0,9000})
table.insert(sTab,{0,1,2,0})
table.insert(sTab,{3,2,0,0})
table.insert(sTab,{0,0,1,0})
table.insert(sTab,{1,2,3,4})
table.insert(sTab,{2,1,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{0,0,0,1})
table.insert(sTab,{1,2,1,0})
table.insert(sTab,{0,1,0,0})
table.insert(sTab,{1,1,0,2})
table.insert(sTab,{0,1,0,0})
table.insert(sTab,{1,0,0,0})
table.insert(sTab,{1,0,0,0})
end
function touched(t)
if t.state==ENDED and quest<=#qTab then
if t.x>0 and t.x<WIDTH and t.y>450 and t.y<550 then
score=score+sTab[quest][1]
quest=quest+1
r = math.random(1,255)
g = math.random(1,255)
b = math.random(1,255)
sound(SOUND_JUMP, 49362)
end
if t.x>0 and t.x<WIDTH and t.y>350 and t.y<450 then
score=score+sTab[quest][2]
quest=quest+1
r = math.random(1,255)
g = math.random(1,255)
b = math.random(1,255)
sound(SOUND_PICKUP, 22679)
end
if t.x>0 and t.x<WIDTH and t.y>250 and t.y<350 then
score=score+sTab[quest][3]
quest=quest+1
r = math.random(1,255)
g = math.random(1,255)
b = math.random(1,255)
sound(SOUND_BLIT, 14885)
end
if t.x>0 and t.x<WIDTH and t.y>150 and t.y<250 then
score=score+sTab[quest][4]
quest=quest+1
r = math.random(1,255)
g = math.random(1,255)
b = math.random(1,255)
sound(SOUND_PICKUP, 38590)
end
end
end
In the code where quest > #qTab, add another text that says to tap the screen to restart. In the touched function, add code that calls restart if the screen is tapped.
@dave1707 @durnonimous all those table.insert
commands, yuck! You don’t them, you can declare table by placing the values inside the curly braces:
eg:
function values()
sTab={
{1,1,0,9000},
{0,1,2,0},
{3,2,0,0}
-- ... lots more values here
}
etc
is much more readable.
@yojimbo2000 You’re correct about the table entries. I’m not sure why I did the table.insert to start with, but apparently I just copied the lines of code.
Everyone’s code needs another pair of eyes sometimes
@durnonimous Here’s the above code with the table.inserts removed. I also added the restart at the end of the questions and reduced the size of the touched function.
supportedOrientations(PORTRAIT_ANY)
displayMode(FULLSCREEN)
function setup()
pos={vec2(475,525),vec2(375,425),vec2(275,325),vec2(175,225)}
s1={SOUND_JUMP,SOUND_PICKUP,SOUND_BLIT,SOUND_PICKUP}
s2={49362,22679,14885,38590}
questions()
answers()
values()
score=0
quest=1
col=color(math.random(1,255),math.random(1,255),math.random(1,255))
end
function draw()
background(col)
fill(255, 255, 255, 255)
if quest<=#qTab then
fontSize(25)
text(qTab[quest],WIDTH/2,700)
fontSize(20)
font("AmericanTypewriter-Bold")
text(aTab[quest][1],WIDTH/2,500)
text(aTab[quest][2],WIDTH/2,400)
text(aTab[quest][3],WIDTH/2,300)
text(aTab[quest][4],WIDTH/2,200)
else
fontSize(25)
if (score >= 24) then
text("You have proved yourself, your ready to move out.",WIDTH/2,HEIGHT/2)
else
text("Your almost there but your still not ready to move out.",WIDTH/2,HEIGHT/2)
end
fontSize(45)
text("Double tap the screen to restart",WIDTH/2,250)
end
fontSize(30)
font("ArialRoundedMTBold")
text("SCORE "..score,WIDTH/2,HEIGHT-50)
end
function questions()
qTab={
"What is your gender?",
"What is your age?",
"Are you currently employed or have been employed?",
"If yes, have you ever been fired?",
"How much money do you currently have saved?",
"Have you received a high school diploma?",
"Do you do chores in your household?",
"Can you trust people?",
"Can people trust you?",
"Do you feel guilty when your at fault? (I.e) a car crash",
"Do you feel empanthy for others?",
"Can you love someone else?",
"Do you love yourself?",
"Do you feel you can make it in the world?",
"Are men and woman equal?",
"Have you ever been addicted to drugs, alcohol, etc?",
"Do you believe you are currently being oppressed?",
"Do you have any disabilities that hinder your daily life?",
"Do you believe you have a purpose in this world?",
"Do your parents want you to move out?",
"Do you believe you are ready to move out?",
}
end
function answers()
aTab={
{"Male","Female","Other","Apache Attack Helicopter"},
{"15-17","18-21","22-28","29+"},
{"Yes","No (Worked under minimum wage)","No (Was never employed)",""},
{"N/A","Yes","No",""},
{"$100-$500","$500-$2,000","$2,000-$6,000","$10,000+"},
{"Yes","No (Dropped out)","No (Never went to high school)","No (Failed high school)"},
{"Yes","No","",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"No, Men are superior to Women","No, Women are superior to Me n","No, I hate everyone","Yes, Men and Women are equal"},
{"No, (Tried them but never got addicted)","No, (Never tried it)","Yes, but I overcame the addiction","Yes, and I'm currently addicted to something"},
{"Yes","No","Don't know",""},
{"Yes, I suffer from atleast one Mental disability","Yes, I suffer from atleast one Physical disability","Yes, I suffer from Mental and Physical disabilities","No, I do not suffer from any disabilites"},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
{"Yes","No","Don't know",""},
}
end
function values()
sTab={
{1,1,0,9000},
{0,1,2,0},
{3,2,0,0},
{0,0,1,0},
{1,2,3,4},
{2,1,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{1,0,0,0},
{0,0,0,1},
{1,2,1,0},
{0,1,0,0},
{1,1,0,2},
{0,1,0,0},
{1,0,0,0},
{1,0,0,0},
}
end
function touched(t)
if t.state==ENDED and t.tapCount==2 and quest>#qTab then
restart()
elseif t.state==ENDED and quest<=#qTab then
for z=1,4 do
if t.x>0 and t.x<WIDTH and t.y>pos[z].x and t.y<pos[z].y then
score=score+sTab[quest][z]
quest=quest+1
sound(s1[z],s2[z])
col=color(math.random(1,255),math.random(1,255),math.random(1,255))
end
end
end
end
@durnonimous Here’s another version where everything is in one table. I just did the first 4 questions. If you like this version, you can fill in the rest of the questions.
supportedOrientations(PORTRAIT_ANY)
displayMode(FULLSCREEN)
function setup()
pos={vec2(475,525),vec2(375,425),vec2(275,325),vec2(175,225)}
s1={SOUND_JUMP,SOUND_PICKUP,SOUND_BLIT,SOUND_PICKUP}
s2={49362,22679,14885,38590}
questions()
score=0
quest=1
col=color(math.random(1,255),math.random(1,255),math.random(1,255))
end
function draw()
background(col)
fill(255, 255, 255, 255)
if quest<=#qTab then
fontSize(25)
text(qTab[quest][1],WIDTH/2,700)
fontSize(20)
font("AmericanTypewriter-Bold")
text(qTab[quest][2][1],WIDTH/2,500)
text(qTab[quest][2][2],WIDTH/2,400)
text(qTab[quest][2][3],WIDTH/2,300)
text(qTab[quest][2][4],WIDTH/2,200)
else
fontSize(25)
if (score >= 24) then
text("You have proved yourself, your ready to move out.",WIDTH/2,HEIGHT/2)
else
text("Your almost there but your still not ready to move out.",WIDTH/2,HEIGHT/2)
end
fontSize(45)
text("Double tap the screen to restart",WIDTH/2,250)
end
fontSize(30)
font("ArialRoundedMTBold")
text("SCORE "..score,WIDTH/2,HEIGHT-50)
end
function questions()
qTab=
{ {"What is your gender?",
{"Male","Female","Other","Apache Attack Helicopter"},
{1,1,0,9000}},
{"What is your age?",
{"15-17","18-21","22-28","29+"},
{0,1,2,0}},
{"Are you currently employed or have been employed?",
{"Yes","No (Worked under minimum wage)","No (Was never employed)",""},
{3,2,0,0}},
{"If yes, have you ever been fired?",
{"N/A","Yes","No",""},
{0,0,1,0}},
}
end
function touched(t)
if t.state==ENDED and t.tapCount==2 and quest>#qTab then
restart()
elseif t.state==ENDED and quest<=#qTab then
for z=1,4 do
if t.x>0 and t.x<WIDTH and t.y>pos[z].x and t.y<pos[z].y then
score=score+qTab[quest][3][z]
quest=quest+1
sound(s1[z],s2[z])
col=color(math.random(1,255),math.random(1,255),math.random(1,255))
end
end
end
end
now that is the way to store the survey data, it is much easier to make changes
Thank you so much for the help guys.