The Spelling Game (WIP)

Got a LiveCode personal license? Are you a beginner, hobbyist or educator that's new to LiveCode? This forum is the place to go for help getting started. Welcome!

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller

Post Reply
Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

The Spelling Game (WIP)

Post by Bantymom » Mon Sep 13, 2010 12:05 am

I hope I am not out of line in posting this.

It was suggested in my previous thread that I post my game and my idea for the finished product along with the answers to the following questions. I am still plugging away at it ("done" bits turned to gray, bits outstanding left bold), but would appreciate any suggestions for making it run smoothly.

a) stack appareance (fixed size, resizable, full screen, kiosk mode?)
Currently I am looking at using a fixed size as I am not sure of my ability to deal with resizing it and all the pieces. I have made it as large as I think safe for it to be able to run on the variety of the computers we have at school. We have Apples with OS 10. My laptop is running Snow Leopard. Those in the computer room might run that or Leopard as well. The two in my room are still capable of running in Classic Mode, so they are not running as high an OS 10 as I am. If Kiosk Mode means that it makes it more difficult for the children to accidentally get into the guts of it, then that is what I am looking for.

b-c) user interaction/input, timer...
By Keyboard and mouse, no timer required at this time.

d) feedback messages (visual, text or sounds?)
Many of my students can't read, so feedback graphics are better. I would like to use auditory instructions (though I don't know how to record and use them yet).

e-f) save output/sessions or restore sessions?
No for both. It only has to be able to upgrade the students' levels if they pass.

I've uploaded the stack to as far as I've gotten it. ((To get under the size limit, I had to delete all the images except the rewards, so it looks very plain right now.))

This is where I am headed with it (what I had it do before in Hypercard) and how it would run from top to bottom:

Student Interaction:
The First Card has a "Play" button that asks for the student to enter his or her name. (done)
The Stack takes name and finds that student on a list (made by the teacher on another card) to get that student's level, then enters the student's name and level on the Game Card (done)

The First Card then welcomes that student by name and starts the game. (done)

The stack uses the student's level to go a card called "List Card" to find a field of the same level which contains a list of words. It loads the list of words into the field "temporary list" on a different card. (done)

That was a frustrating problem for awhile, but suddenly it decided to work for me.
I would still like to know the pros and cons of using fields or files for handling the leveled word lists.


From there, the Stack moves on to the Game Card. (done)
The Student's name and level are posted there. (done)
I still need to add a button for verbal instructions. (has written instructions right now)
The student clicks on one of the 20 buttons. (done)
The "word" field is shown and brought over to cover the button. (done)
It gets "any" word from the temporary list and shows it to the student for 2 seconds. (done)
The word disappears and the cursor clicks in the field so the student can type in the word. (done)
(I'm not having the word said orally because I think it is too hard to understand the computer voice, and I want them to have to read the word.)

If the student doesn't type anything for 10 seconds, the stack will prompt them to do so. That I can record.

If the word typed in is incorrect, the field returns "no," shows the word again, and then shows the box empty again with the blinking cursor. If the child misses again, that button is reset. The child can click it or another box to get a new word. (done)

If the word is typed in correctly, the box returns “yes,” (done)
deletes that word from the temporary list, (deletes every occurrence of that word, including inside of other words, and I only want it to delete the one it used
and hides field and the original button to reveal part of the picture beneath. (done)

When the child clicks another button, the routine is repeated. (done)

When 20 words have been spelled correctly, the black and white picture is revealed. (done)
After a few seconds, it is colored in. (done)
The Stack then goes to the "Yea!" card, the "The End" card, and then resets itself back to the beginning for another child to use (or the same child in Tomas's case). (This happens no matter how many tries it took to clear the 20 words.)(done)

If the student got 19/20 words correct on the first try:
His or her level is advanced by one, (else the level remains the same).
An additional reward is triggered where the stack will go to another card after "Yea!" instead of to "The End"
This might include fireworks or some other short animation-like thing that announces that he or she is advancing to the next level. Previously, this was a train that appeared to move across the card to announce the news, with a radiating sun/star in the background, before the whole thing dissolved into an exploding 5-pointed star. I had managed this before using the old flip-book technique of animation, making a series of cards with the action progressed bit by bit on each card, and using only the HyperCard drawing graphics to do so. I'm not sure if I am going to do it that way again or not.

After this bonus reward, the game then does go back to the First Card and reset itself.

Currently, there is only one Game Card and only one picture hidden behind the buttons.
Each level must eventually have its own picture.
I did this before by making a separate game card (with its own buttons) for each level so I could put the picture directly on the card.
I wonder if instead of having a different card for each level, if I could have the picture(s) brought to the game card based on level instead, just as the word lists are brought to the card. Can I do that? I would still have the same problem I am having with the word-list fields in that I have to use the child's level to determine which image to pull, however, so I really need to know how to make that work. Again, would image fields or files be better?

Teacher Interaction:
At the Play button on the First Card, if the teacher enters the name “teacher,” the computer will ask for a password, then take the teacher to the teacher interface. This part isn't working at the moment. :( (done but not working properly. Even though it goes to the Teacher Card, it doesn't leave the if-then statement, but comes back and completes the rest of the instructions.) (fixed: it needed an "exit returninfield" after going to the Teacher Card)

There, the teacher can:
Enter student names and levels (done)
Find instructions to do that (done)
Sort that list several different ways (done)
Go to the cards where new word lists can be added ((done)

On this card is the temporary field for the list of words currently in play (done)

Security issues/wishes:
I to make it very difficult for the children to get off task. So, part of clicking that first button (currently labeled “Tomas” in one and "Play" in the other) would set the following in place:
1) make invisible the menu bar and the editing bar and all other bits like that
2) make the “command” key (and other such keys) inoperable so that they can’t accidently go from one card to another.
3) make clicking on another button (before having completed the task initiated by the first button clicked) close and reset the button that was already in play, counting it as an error.
4) Random clicking off the game make an alert sound for the teacher (though with earphones, that won't work).
5) Being correctly identified as a teacher at the beginning would negate those security measures.
6)I used to be able to make hidden buttons so that the teacher could bypass the security. I would like that again, some “hot corner” where a teacher could click to reset the game back to the first card and undo the security measures (except for allowing edits to the stack), but I haven't figured that out yet.


So, there it is, the plan. A drawing of a visual map of my idea is attached. I know this rambles, so please ask for clarification.
Attachments
Spelling Game Plain.rev.zip
This version includes the Cards of Leveled Word Lists, but I can't access them based on the student's assigned level. I have instead directed it to get the words from "List 1" no matter which child is playing for now.
(152.28 KiB) Downloaded 323 times
Spelling Game Tomas Plain.rev.zip
This one was just for Tomas but it shows how the words are put in randomly. I can't get the one for everyone to get the words from the list on the other card right now.
(151 KiB) Downloaded 357 times
Spelling-Game-Plan.gif
Spelling-Game-Plan.gif (27.6 KiB) Viewed 9458 times
Last edited by Bantymom on Thu Sep 16, 2010 7:23 am, edited 4 times in total.
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

capellan
Posts: 654
Joined: Wed Aug 15, 2007 11:09 pm

Re: The Spelling Game (WIP)

Post by capellan » Mon Sep 13, 2010 12:34 pm

Hi Bantymom,

Congratulations for your clear and detailed message,
explaining how your Spelling stack will work. :D

I just noticed that i don't know how to use this forum.
Everything that i had written was lost when the forum
asked me to log again... (almost 1 hour wasted)

Please download these stacks:
http://andregarzia.on-rev.com/alejandro ... stacks.zip

These two stacks, that i have published previously in the Runrev mail list and
shows many (not all) of the features that you had described for the Spelling game.

Open these stacks and play for a while with them.

Please, send me a message from one of your public
email directions to send you a third stack.
capellan2000 at gmail.com

In a next message, i will answer specifically about your stack features
and revTalk code useful to implement them.

Al

Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

Re: The Spelling Game (WIP)

Post by Bantymom » Thu Sep 16, 2010 4:32 am

Thank you very much, Al.
I have downloaded the stacks you attached and after I write this, I will send a message to your gmail.

Attached is the most recent version of my stack.

I am completely stuck at the point where I want to delete the (or replace with empty) the word that has been used.

If I use
replace gWord with empty in field "Temporary List" of card "Teacher Card,"
every instance of that word is removed, including parts of other words, and I understand why.

So I went after it by finding the whole word and trying to delete it that way. Just using the foundline wasn't working, so I tried the same thing that worked in another instance.
I put the second word of the foundline into tLine, then tried to use that number to select the specific word in the list I wanted removed.

Here is the section of the code that is causing me fits:

Code: Select all

      lock screen
      --do I need to lock the screen at this point?
      replace gWord with empty in field "Temporary List" of card "Teacher Card" 
      
      --Alternative attempts to delete only the one whole word from "Temporary List"
      find whole gWord in field "Temporary List" of card "Teacher Card"
      --answer the foundline (is returning nothing)
      put word 2 of the foundLine into tLine
      --answer tLine (is also returning nothing)
      --(option 1) delete word tLine in field "Temporary List"
      --(option 2) delete line tLine of field "Temporary LIst"
      --(option 3) replace word 1 with empty of line tLine of field "Temporary List"
      -- -- none of those removes the word and all leaves the game stuck on card "Teacher Card"
      
      put gCorrect +1 into gCorrect
      set the backgroundcolor of field "Score" of card "Game Card" to green
      unlock screen
      --is this the best place to unlock the screen since I am back on "Game Card here?
      put gCorrect into field "Score" of card "Game Card"
      wait .2 seconds
      set the backgroundcolor of field "Score" of card "Game Card" to yellow
The code that runs the game has all been moved to the card "Game Card" script which makes it easier for me to remember where I put it. If that isn't a good idea, someone please let me know.

So, two questions right now:
1) How do I remove the one word and only that one word from the field "Temporary List"?
2) How do I keep the game from getting stuck on card "Teacher Card"? It doesn't do that if I just use the original bit of script quoted at the beginning, it doesn't get stuck and appears to stay on card "Game Card" throughout. And when it gets stuck on card "Teacher Card," the stack has continued to run because the score is changed, which comes after all the "find" stuff
Attachments
Spelling Game Plain.rev.zip
(152.42 KiB) Downloaded 365 times
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

capellan
Posts: 654
Joined: Wed Aug 15, 2007 11:09 pm

Re: The Spelling Game (WIP)

Post by capellan » Thu Sep 16, 2010 5:47 pm

Hi Banty Mom,

I am really glad to read about your enthusiasm! :D

When i send a reply to your email direction,
i received this error message from gmail:

Delivery to the following recipient failed permanently:
Technical details of permanent failure:
Google tried to deliver your message, but it was rejected by the recipient domain.
We recommend contacting the other email provider for further information about
the cause of this error. The error that the other server returned was: 550 550
Requested action not taken: mailbox unavailable (state 14).

Is your mailbox full?

I believe that your students should use a player
to run this Spelling Game stack, Not RevMedia.
Only teachers should use RevMedia to edit the
Spelling Game.

Check if StackRunner works fine in these MacOs X computers:
http://www.sonsothunder.com/devres/revo ... Runner.htm

Both stacks, posted in a previous message, open fine in RevMedia 4.0 v950
under Windows. I dont know if they open and run under RevMedia for Mac.
Hopefully, another Mac users could give us instructions about this particular.

About the location of the scripts in these two stacks:

In the stack named "examen_MS_Windows.rev"
check the scripts from card 1, 2, 3 and 4
(and scripts inside the controls in them.)

These cards contain the Teacher screen and student
feedback.

About the Japanese Syllabaries stack, you have to scroll
manually the scrollbar "charset" to include the set of
syllabes that you want to learn.

After you learn, really well, a set of syllabes then you move
the scrollbar "charset" (the scroll bar at the top of the syllabes)
toward the right, to include the following set of syllabes that
you want to learn.

The controls that have scripts are:

1- scrollbar "charset" - the scroll bar at the top of the syllabes
2- button "Answer"
3- group id 1300 - the group of 75 buttons with syllabes names
4- button "New Button" - this button (at top-right) holds the syllabe
gif animation
5- graphic "BallCircle" - a red circle that appear over the button "New Button"
if the user select this option in the preferences panel
6- group "charselection" - this group contains two buttons to select
between the character sets Hiragana and Katakana
7- button "Save"
8- button "Inicio" - This button actually has the icon with title "Start"
9- button "Reset"
10- button "New Button" - this button shows the icon of my previous
website "aulasdigitales.net"
11- Within the group "Preferences" these controls have
scripts: (click on the word "Preferences" at bottom-right to
see this group, that i use as a panel)
a) button "Preferences"
b) button "ShowBallCircle"
c) button "feedback"
d) button "letter_animation"

Go to card 3 and check the small text field in the bottom right. This is:
the Background Group "drop_image" (this group is shared among many cards)
with a single control:
a) Field "dropfld" -- Important -- Check this script, because this
single script
allowed me to drag and drop images into the card and saved
me countless hours while importing all the images used in
this Japanese syllabaries stack.

Later, after i finish some pending work, i will check
this new version of the spelling game. :)

Have a nice day!

Alejandro

Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

Re: The Spelling Game (WIP)

Post by Bantymom » Sat Sep 18, 2010 8:57 pm

Al, I did get your message at my yahoo email. I don't understand why you would have received such a message. The inbox is hardly full. I sure hope you are getting my replies. I did use the scroll bar to include other syllables. My limit of five vowels reflects my inability to learn more, not any perceived defect in the stack! lol :)

And that little drop script is sure nifty.

For anyone else willing to help or for the mildly curious as to how I am coming along, below you will see where I am now. What I still need to do follows that, and Questions about things that are hanging me up are at the very end:

Student Interaction:
The First Card asks for the student to enter his or her name and then sets up the game with a list of words corresponding to the student's level. On the Game Card, the student is instructed to click on one of 20 buttons which briefly presents a random word from the list. He or she is prompted to type the word. If the answer is incorrect, the word is shown again, but two misses and the button is reset. If the answer is correct, there is a small reward, the word is deleted from play, and part of a picture hidden under the button is revealed. (Unfortunately every other occurrence of that word inside other words is also removed: "an" is also removed from "and," "ant," "hand," and "sand"). Eventually, the whole B&W picture is revealed, dissolves into a colored version of the picture, the next card tells the student he or she is done, and the stack resets the game back to the beginning. This does not advance the student's level.

Teacher Interaction:
At the Play button on the First Card, the name “teacher,” and a password send the stack to the Teacher Interface where the Teacher can find instructions for running the stack, enter student names and assign levels, sort the list of students, and get to the cards where new word lists can be added (currently, only I can add new pictures). The list of words currently in play is also stored here.

Security:
1) If the student clicks and open another button while still working on another (a chronic problem in my HyperCard version), the button they already had open resets and closes.
2) I want to keep the student locked into the Game Card with no access to any other part of the program or stack. In order for the teacher to undo that security and intervene if needed, there is a tiny invisible button in the upper right which currently only goes back to the First Card, but eventually will (with a password) undo all the security precautions in place.

Big Things I Am Still Working On (that I think I can handle on my own):
1) create an additional reward when 19/20 are answered correctly the first time to announce that the student is progressing to the next level (perhaps fireworks or some other short animation-like thing. Previously, this was a train that appeared to move across the card to announce the news, with a radiating sun/star in the background, before the whole thing dissolved into an exploding 5-pointed star. I had managed this before using the old flip-book technique of animation, making a series of cards with the action progressed bit by bit on each card, and using only the HyperCard drawing graphics to do so. I'm not sure I want to do it that way again or not.)
2) save the student's session (words shown and student responses to each) on a student-specific card so the teacher can identify what might be causing students who aren't progressing to get hung up
3) make a separate stack that will install updated versions of this stack to copy over the current student list, levels, word lists, images, and student archive cards (see above) because I know I am going to continue to tinker with this after my students begin to use it (while I could do all of that by hand, if other teachers use this, they won't be able to do it themselves).

Little Things I Am Still Working On (that I can handle on my own):
1) add a button for verbal instructions on the Game Card (need to rearrange the UI)
2) add verbal feedback
3) prompt for an answer after 10 seconds of no student input
4) advance the student's level on the student list when 19/20 are answered correctly the first time.
5) save the stack when it closes
6) improve the UI: make the space for the picture portrait in orientation and ratio so I have a greater selection of free coloring pages (which are mostly portraitly oriented) available to me, and add graphics like a teacher pointing to a blackboard

QUESTIONS (some short, some complex):
1) How do I delete only whole words and not pieces of words from the temporary list? I get my random word by using "any" when asking it to choose a word from the Temporary List. This word is put into gWord and used for all actions involving that word until it is deleted from the Temporary List and replaced by the next word. This is what I currently have in place to delete it:

Code: Select all

replace gWord with empty in field "Temporary List" of card "Teacher Card"
I have seen "" used in other scripts where I have used empty, but I don't think that alone is going to solve my problem.

I use the following code successfully to find the level for the current playing student:

Code: Select all

find whole tName in field "StudentList" of card "Teacher Card" --some student's names are two names long
put word 2 of the foundLine into tLine
get word -2 of line tLine in field "StudentList" of card "Teacher Card" --level is 2nd from the end
put it into tStudentLevel
So I tried the same for removing the whole gWord:

Code: Select all

lock screen
find whole gWord in field "Temporary List" of card "Teacher Card" --same structure as above
put word 2 of the foundLine into tLine
"answer the foundline" "answer (the foundline)" and "answer tLine" are all returning empty nothingness, so apparently I've messed up "the foundline" somehow and am not even getting it. When I used that same syntax/format before, there too, tested it as I went with "answer the foundline" and it worked just fine (line 25 of field 3)

I followed that with each of the following options:

Code: Select all

delete word tLine in field "Temporary List" of card "Teacher Card"

Code: Select all

delete word tLine of field "Temporary List" of card "Teacher Card"

Code: Select all

delete line tLine of field "Temporary LIst" of card "Teacher Card"

Code: Select all

replace word 1 with empty of line tLine of field "Temporary List" of card "Teacher Card"

Code: Select all

get word 1 of line tLine in field "Temporary List" of card "Teacher Card"
replace it with empty --a desperate attempt
But none of those removes the word, which I suppose might be caused by the foundline not being found, so I really have no idea which of those might be correct. Additionally, all options leave the screen stuck on card "Teacher Card," even though I know it continues on beyond that point because it completes the tasks that follow, though I have to manually go to that card after the program stalls to find out that the Score has been changed.

Code: Select all

put gCorrect +1 into gCorrect
set the backgroundcolor of field "Score" of card "Game Card" to green
unlock screen
put gCorrect into field "Score" of card "Game Card"
wait .2 seconds
set the backgroundcolor of field "Score" of card "Game Card" to yellow
2) Will animated GIFs work if they are imported like an image? If not, is there a way to get them to work in RevMedia? It seems they might, based on card 3 of the Japanese Syllabaries stack of Al's, which seems to have animated gifs of how to write all those characters!)

3) What is Kiosk mode?

4) How do I set up security measures so that the student can't leave the Game Card (disable keystrokes that navigate through the stack, hide all menu bars and tools, makes a noise if attempts to leave the game are detected)? StackRunner is working great for hard-line, no nonsense, don't-even-think-of-messing-with-this-program control, but I will have to rethink a way to have the teacher come to the rescue if something go wrong, perhaps opening to another Teacher Control panel. It will require more thought

5) Are cards the only thing that can be dissolved to? Can I have just an image dissolve into another on the same card? I currently get the same effect by creating another card identical to the first except for the picture, but I was wondering if it is possible. (I found the following bit of code in one of the stacks Al sent me. Will it work with images as well as with graphics?)

Code: Select all

on mouseUp
  set dontuseqteffects to true
  if the visible of grc id 1280 is false then
    show grc id 1280 with visual effect dissolve
  else
    hide grc id 1280 with visual effect dissolve
  end if
end mouseUp
6) Can I create a way for others to add pictures (it would have to crop and size it automatically or allow the teacher to crop the picture to the correct size before putting it into the appropriate storage place)?

7) Currently, there is only one Game Card that serves by bringing in the reward picture and the leveled list of words every time the game is set up for a new student. Is this the best way to do it, or should I have a separate Game Card (with duplicate buttons and fields) for every level, which is how I did it before oh HC? If that is better, will the name/level fields, the 20 buttons, and the word/answer field still work if they are a group placed on each card? Doing individual cards will allow me to store each new picture on it's own card, but to get the dissolve, I will still need an identical card behind the first Game Card. Which will be neater and tidier and take less memory in the long run? Instead of having a different card for each level, I could have the picture(s) brought to the game card based on level instead, just as the word lists are brought to the card.[/b]

8) If I continue to have the words and images brought to the cards, is it better to store all the lists of words together and all the images stored together on a different card, or is it better to store all the things for one level (word lists, temporary field to allow the words to be deleted, and the two images) on individual cards? That might seem the same as just making a separate Game Card for each level, but it wouldn't necessitate all the duplicate buttons or the extra card behind the first to set up the dissolve to the colored picture.

9) What are the pros and cons of using fields vs. files for handling the leveled word lists and the images that go with them?

10) I am slowly moving the big scripts to the card their object is on and putting only custom handlers into the objects themselves to make it easier for me to find and change things. Is that a good or bad idea? Is there a reason I wouldn't want to just move all of them to the stack script?

I continue to work on each one little by little by searching through this forum because I don't want to ask anyone post a long answer to something that has already been discussed at length, but if anyone has a short quick answer to one or two of these, I won't turn it down. *smiles*
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

Re: The Spelling Game (WIP)

Post by Bantymom » Mon Oct 04, 2010 8:27 am

I hope that enough time has passed that this will be seen as an update rather than as a double post.

I wanted to share my recent progress on my little game but have found that even compressed it is now too large to upload. As I don't have a website of my own, I have uploaded it to a file-sharing site:

http://www.mediafire.com/?iiv84ww00sliv7z

It isn't finished. Several numbers don't change yet and it doesn't automatically change the student's level yet, but it now differentiates between completing the game with a minimum of errors (for Thomas, this was 20, so if you want to see what happens, you will have to make 20 mistakes). The painting page (with major assistance from Bernd) is now included, though not yet prettied up with graphics.

I have been studying the stacks Capellan sent me and hope soon to fix my problem with deleting parts of words in my play list when I delete a smaller word that has successfully been answered (deleting "an" has devastating effects on "can," "fan," and "and," for example), move my global variables to custom properties, and add a card where Teachers can view records of the children's sessions.

As always, I appreciate any thoughts, suggestions, or notes of bugs.

Thank you very much for everyone's help,
Bantymom

*sets out chocolate-chip cookies and milk*
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

bn
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 4163
Joined: Sun Jan 07, 2007 9:12 pm

Re: The Spelling Game (WIP)

Post by bn » Mon Oct 04, 2010 11:10 am

Hi Bantymom,

that looks very good. (give yourself a cookie please :)

instead of

Code: Select all

 replace gWord with empty in field "Temporary List" of card "Teacher Card" 
you could use

Code: Select all

   set the wholeMatches to true  -- important to always work on whole lines, no partial matches
   put lineOffset (gWord,field "Temporary List" of card "Teacher Card") into tFoundLineNumber  -- returns 0 if not found, otherwise the line number
   if tFoundLineNumber > 0 then delete line tFoundLineNumber of field "Temporary List" of card "Teacher Card"
I think that should take care of your problem. Since you only have a list of words that are unique this would delete the line with the match from the list. This would also allow for a spelling test with more then a single word on a line.

If you dont want to delete the line you could say

Code: Select all

if tFoundLineNumber > 0 then put empty into line tFoundLineNumber of field "Temporary List" of card "Teacher Card"

regards
Bernd

Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

Re: The Spelling Game (WIP)

Post by Bantymom » Mon Oct 11, 2010 7:58 am

Thanks! That worked like a charm and the thing that has been making me the most crazy has been fixed.

Tomas was not motivated to work carefully and so would play around. This meant he would not get to the painting card and he would get miffed. So, I added little animated gifs for each time he gets the word correct on the first try.

I imported 40 of them and in the script, I asked it to copy and paste any of them onto the Game Card. (I had originally had them paste to the back of the white button after the word vanished but before the button disappeared, but I moved it to where it would draw the eye to the change in the score as well.)

Unhappily, the "any" seems to be selecting the same handful of images each time, with several repeats. I have thought of a few ways to keep it from repeating images (keep track of those selected and tell it if it selects one of those again to get another instead, or, tell it to copy a random 20 to another card and delete them one at a time as they are used, like I did for the words), but if there are other ideas out there, I'll certainly listen.

Right now, I'm going to look up "any" and "random" in the dictionary and user's guide to learn why they both exist and how they are different from each other.

Here is the link to the whole stack so far. Yes, some of the cards still are pretty dull, but I'll get there eventually. Next? I will use what capellan has shown me to make a card where the teacher can see how Tomas responded to each word.

http://www.mediafire.com/?v0aozozcdtfcbd9

As always, I am open to criticism and suggestions.

Cheers,
Bantymom

Edit: I got "random (40)" to work, but it seems to function exactly the same as "any," so for right now, I'm going back to "any." I did read and do understand about "randomseed," and so I might consider a way to work that into the flow if there is a chance it might help. I also noticed "randomsort," which might be useful as well. "Randomsort" might also have been a way to work with my list of words, come to think of it. When I am more awake, I will work on figuring out a way to avoid the repeating of images. Again, any insight offered is always gleefully accepted.
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

Mark
Livecode Opensource Backer
Livecode Opensource Backer
Posts: 5150
Joined: Thu Feb 23, 2006 9:24 pm
Contact:

Re: The Spelling Game (WIP)

Post by Mark » Sat Oct 16, 2010 10:55 pm

Bantymom,

Don't worry about randomseed, unless you do something scientific.

Best,

Mark
The biggest LiveCode group on Facebook: https://www.facebook.com/groups/livecode.developers
The book "Programming LiveCode for the Real Beginner"! Get it here! http://tinyurl.com/book-livecode

Bantymom
Posts: 73
Joined: Fri Aug 27, 2010 4:32 am

Re: The Spelling Game (WIP)

Post by Bantymom » Fri Nov 12, 2010 11:37 pm

It is time for an update. My tiny stack has ballooned to 4.5 mb and is about to go on a diet, but it is at a good working point where Thomas can use it every day without my needing to add or tweek anything, and I can copy it to my flash drive to take home to check on his activity for his session that day.

I especially want to give an enormous thanks to the members here who have very patiently been helping me along each of these little bits, no matter how simple and basic it seemed to them.
Image

This is the link: http://www.mediafire.com/?n3fo8i5fzqwto59

I know that everyone here is very busy, but if you do happen to look at it (run it or look at the code) and have any thoughts or suggestions, they are always gleefully appreciated.

Update on the checklist.
Green parts are things I have learned from the members here and for which I can't possibly give enough thanks. You can see how much this stack would not exist without your kind and patient help.
Blue parts are things I needed to do from the last report, or new ideas that I have come up with since last time and that I have implemented. (Oooo! Lots of blue means I have made more improvements since last time than I thought I had!)
Red are things that I am still planning. (Not so many things to work on this time as there were before, yea!)

Welcome Card:
1) Stack gets Student level from a custom property
2) Puts Student Name and Level into place on the Game Card.
3) Uses Level to get the words from a list on another card and puts them into a temporary list so they can be safely deleted one by one
  • (Currently these are vertical lists, each needing its own field.)
    (I plan to turn them each list into a horizontal line in one scrolling field.)
    (I had considered getting the words from a file, but if the folder were ever separated
    from the stack, that would mean that the game wouldn't work at all)
4) Uses Level to get the picture rewards and put them into their pre-formatted Image Holder Controls
5) Sets up the Headings on field "Results"
6) Gets the seconds for the start time
7) Resets various buttons, graphic elements, and custom properties of the stack
  • (Next step: make this more efficient as it takes too long now at the beginning)
8) Welcomes student by name (voice) and goes to the Game Card to start the game
(ok, how do I stop it from turning the 8 + ) into a "Cool" smilie?)

Game Card:
1) There still is no button for verbal instructions. Since Tomas knows the game, that hasn't been a priority.
2) The student clicks on one of the 20 buttons.
3) Field "Word" is shown, moves over the button, gets any word from the temp list, and shows it to the student for 2 seconds.
4) The cursor clicks in the field so the student can type in the word. (done)
9) If the student doesn't answer for 10 seconds, the stack will prompt them to do so. (not done)
5) On a wrong answer, the field returns "no," shows the word again, and then empties the box to give him a second try.
6) If the child misses again, the button is reset.
7) On a correct answer, the box returns “yes,” and deletes the word from the temp list (thanks to help from here!)
8) The score written on the board is changed.
9) If the answer was correct on the first try, a tiny, random animated gif is shown in the space for a few seconds
10) Hides field "Word" and the original button to reveal part of the picture beneath.
11) Correct and incorrect responses are written into field "Results" for me to look at later
12) When all 20 words have been spelled correctly, the total time is computed and written into field "Results"
13) The chalkboard picture is revealed.
14) If Thomas missed too many words, the picture is colored in and the student is asked if he wants to try again.
15) If so, it resets the Game Card right there.
16) If not, it goes through the "Game Over" routine and goes back to the Welcome Card
17) If Thomas got half of the words correct on the first try:
  • His level is increased by one in the custom property
    A "You did it!" audio clip is played
    A ribbon (or later, a trophy) is revealed (12 are hidden on the card) with the number of the level just completed
    Stack goes to the Painting Card (yes, this little fella needs a LOT of rewards to keep him going)
Painting Card (This whole reward is new since the last update)
1) The black and white picture is there and ready in it's pre-formatted Image Holder Control
2) A trumpet gif does its animation thing
3) A fanfare audio clip is played (such fun getting those two to synch)
4) His new level is revealed with a visual effect
(This will eventually include an exploding star)
5) All that fades, the paints and painting buttons fade in, the artist/teacher moves onto the card.
6) Clicking button "Paint" enable the ability to switch between the pointer and the paint tool.
7) Buttons "Fix" and "Redo" allow errors to be repaired
8) Button "Done" sends the stack into the "Game Over" routine (card "Yea!" and card "The End")
9) Returns to the Welcome Card

Cards behind the scenes:
1) Each level needs three images (ChalkDrawing, LineDrawing, Colored Drawing) Taking advice I found in another post, I made a separate card for each level to hold the three images, so I could keep the names the same for each kind of image. This made it VERY easy to manipulate those card in the script, a task made even easier using the Image Place Holder Control (eventually I'll figure out how to refer to this in a way that distinguishes it from an image uploaded directly there). This makes for far too many cards, but I have a plan for dealing with this. I won't tell you yet though, not until I do more research and come up with at least a first try at the coding. (I am very excited by the idea.)
2) There are several cards just for the storing of the tiny animated gifs. If I put them all on one card, they stop moving, but that is not why they are separated. Right now they reside on separate cards so I can call on different sets depending on the level the student is on, though I haven't yet written that into the code.
3) There is one card where the little trophies will eventually be stored. Right now, there are twelve ribbons and trophies hidden in position on the Game Card, but as there are more than 12 levels, that will eventually have to change. I haven't figured out how I am going to deal with that, but I made a card on which I can store those as I create them so they will be there once I do figure it out.

Teacher Interaction:
1) A button on the Welcome Card to take me to the Teacher Card (right now I use the Application Browser)
2) There is a tabbed button on the Teacher Card labeled "Students," "Results," and "Options."
  • Group "Students" is where for viewing the list of words in play and, later, a list of all the students playing the game and their current level. Here I will be able to preload the names of Students I want to be able to play the game.
    Group "Results" is where the responses can be viewed for one student at a time. Currently the only option is Thomas. The results of the current game can be moved into a second field where all the results can be collected. Later I will archive that information in a custom property like on the stacks capellan showed me.
    Group "Options" was made in case I need more space for things. I thought it would be easier to delete it later if I didn't need it rather than having to add it into the button if it turned out I did. So far, the idea behind it is to have a place to be able to change things for each student such as level, time allotted for showing the word, and the number of errors allowed to receive the Painting Reward.
Security issues/wishes:
1) With StackRunner, most of my security issues have been addressed. Thomas has been unable to accidentally mess up my stack, something that used to happen with HyperCard when the children got off task or too curious.
2) Make it so that clicking on another button (before having completed the task initiated by the first button clicked) close and reset the button that was already in play, and to count it as an error.
3) Random clicking off the game make an alert sound for the teacher (though with earphones, that won't work).
4) With StackRunner, I can't navigate with keystrokes either, lol. I just need to get around to making Teacher-only buttons to get me to places I want to go and to reset cards as needed. Until then, I just open the stack in RevMedia when I have to do something.
2nd-grade Teacher, Poultry Fancier, Scottish Country Dancer
and Perpetual Beginner

Steve Denney
Posts: 101
Joined: Wed Dec 22, 2010 8:17 pm

Re: The Spelling Game (WIP)

Post by Steve Denney » Thu Dec 23, 2010 1:02 am

Hi Bantymom, I really like your spelling game, some great ideas there :)
(I must stress, i've only had a cursory look--but liked everything I saw )
I did something a little similar (but much simpler) a few years ago for ESL kids on remote communities in Australia. Those apps, one per spelling list, had .wav's associated with each word to more accurately mimic a classroom spelling test i.e. "The ground is bare... bare" I've just made up that example, but the point is it puts the word into context & no one would type 'bear'
Those wavs were embedded but could just as easily be externally referenced (to reduce file size). There was a speaker img to replay the word and replaying it 3 times caused the word to flash momentarily on the screen (teachers could manipulate the settings to permenantly display the word if they wished).
I you adopted a similar approach i.e. record your own sounds, your app would sound more natural (and wouldn't reveal the answer beforehand--perhaps you do this at higher levels, if so then please disregard). You could also speak the name/function of buttons or other controls on rollover (on mouseEnter) which is good if kids can't read well.
Something which works well is to have a very small splashscreen (the build standalone) which opens other stacks as required. Then, although the entire app may be large, that part open in memory at any one time will be comparitively small. It's also easier to update/edit (no need to rebuild for deployment, just overwrite the affected stack).
The way i do it is to put the standalone splashscreen's file path into a global on preOpenStack (i.e. homeStakPath). Any other files I put in sub-folders or within the standalone's folder. You can then use that global to reference other files i.e...
put homeStakPath & "/" & levelsFolder & "/" & requiredLevel into newLevel
open stack newLevel
close stack oldLevel
or somesuch, similarly for external sounds. (Please excuse if you've already thought of all this and decided otherwise for whatever reason).
Just some thoughts
Steve

Post Reply