visual basic games: prepare for hangman questions on memory string operations; array operations...

18
Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show

Upload: rosaline-reed

Post on 29-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Visual Basic Games: Prepare for Hangman

Questions on Memory

String operations; array operations

Homework: Take practice quiz

Next week: Quiz; Show projects

Page 2: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Memory?

• Questions?

• Show projects to me in lab.

Page 3: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Hangman• Computer is the player with the secret word.

– Uses an internal array (word bank) from which program randomly picks a word.

• User-interface (game board) includes – dashes indicating number of letters in hidden word– Alphabet: labels to be clicked by player. Note: this is a

modification of the pencil-and-paper game for the computer. (You may also look up how to use the keyboard)

– Images showing progression of the hanging. (You may choose to make your own images, but do this after you build the rest of the application.)

– Command button for new game

Page 4: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects
Page 5: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Data types

• Most programming languages have the concept of data type.

• Systems need data type to determine how much space to allocate and how to treat collection of bits.

• So far, data types have been Integer, Single, Boolean and String

• Note: the contents of captions and textboxes are strings.

Page 6: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Strings

• Visual Basic treats strings as a distinct data type.– Some other computer languages implement strings as

arrays of single characters. Character is the data type.– Some have special characters for the end of string.

• Visual Basic has special functions for string handling:– Len(stringname)– Mid(stringname, position, length)– Left(stringname,length)– Right(stringname,length)

Page 7: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Indexing• Control arrays (arrays of elements on the form) are

indexed from 0 to n-1 when n is the number of elements– New elements can be dynamically loaded (loaded during

runtime)

• Internal arrays (arrays of internal variables) can have any index bounds. Can also have more than one dimension

• Individual characters in strings are indexed 1 to n where n = Len(Stringname)

• Index errors are common! Visual Basic will catch a runtime index out of bounds error.– Alternative?

Page 8: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Examples

dim strName as String

strName="abcde"

What is:Len(strName)

Mid(strName,2,3)

Left(strName,4)

Right(strName,3)

Page 9: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Constants

• Also termed ‘named constants’ for variables that do not change

• Use in place of actual numbers (or strings) for readability of code and for easing changing of code.Const strAlpha as String = _

“abcdefghijklmnopqrstuvwxyz”

Const conNumw as Integer = 5 ‘words in word bank

Const conHung as Integer = 5 ‘length of hanging

Const conLeftc as Integer = 270 ‘twips

Page 10: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Control array for alphabet• Each label is a single letter.• First letter set at design time. Other letters

generated during execution time (dynamically) using Load statement.For I = 1 to 25

Load lblAlphabet(I)lblAlphabet(I).Left = lblAlphabet(I).Left + I * conLeftc

lblAlphabet(I).Caption = Mid(strAlpha,I+1,1)lblAlphabet(I).Visible = True

Next I

• Labels made invisible after player clicks them.

Page 11: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Setting up choices for computer

• strWordBank is name we chose for an array of strings.

• Define user-defined procedure setupwordbank()ReDim strWordBank(conNumw)strWordBank(0) = “movie”strWordBank(1) = “quixotic”…

• You can certainly chose your own words. But do make sure you have word with double letters to test logic (maybe even two letter or one letter words???)

Page 12: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Player move = lblAlphabet_Click(Index)

• Player clicks particular letter of alphabet. Is this in the hidden word?

• Index indicates which specific label was clicked.

• strWordBank(intChoice) is the particular word ‘chosen’ by the computerIs lblAlphabet(Index).Caption equal to any letter in

strWordBank(intChoice) ?

Page 13: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

How to check if player’s pick is in the chosen word

intLength has been set to length of the chosen word

Use For/Next loop with I going from 1 to intLength

Compare the player’s pick with each letter in the chosen word.

In the loop,

strLetter = Mid(strWordBank(intChoice),i,1)

Page 14: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Code for new display

• If the player’s guess is good, you need to reconstruct the word display:

lblHiddenPlace.Caption =_ Left(LblHiddenPlace.Caption,i-1) & _strLetter & _Right(lblHiddenPlace.Caption,intlength-i)

• Remember to put in underscore _ if any line of code goes over to the next line.

Page 15: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Continue checking letters

• Your code needs to keep going for the rest of the word whether there was a hit or not.

• However, if you get a hit, you set a Boolean so as to NOT proceed with the hanging. You also increment intNumPicked. If and when this equals intLength, the player wins!

• If you advance the hanging, you need to check if it is complete. In this case, the player loses!

Page 16: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Events

• If the player clicks on a visible label, then the label Click event handler is invoked.

• If the player clicks directly on the Form or where there is an invisible label, the Form_Click event handler is invoked.– In this case, use MsgBox to give feedback to

player to try again.

Page 17: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Initialization

• Form_Load sets up lblAlphabet and calls user-defined procedures to set up word bank, set new game and choose a new word.

• cmdNewWord calls same routines and also sets the Visible property of all the lblAlphabet labels to True.

Page 18: Visual Basic Games: Prepare for Hangman Questions on Memory String operations; array operations Homework: Take practice quiz Next week: Quiz; Show projects

Homework

• (Complete and show Memory)• Complete and show Hangman project• Do on-line practice quiz in order to prepare

for next week, including sending or posting questions.

• Quiz is in classroom (not lab) on 3/4 • (Catchup) and Hangman, anything else due

3/6.