+ All Categories
Home > Documents > Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19...

Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19...

Date post: 27-Sep-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
31
1 Intro to Programming Intro to Programming CMPUT 299 H. James Hoover Fall 2005 2005-10-11 Version 1.0 CMPUT 299 H. James Hoover Fall 2005 2005-10-11 Version 1.0
Transcript
Page 1: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

1

Intro to ProgrammingIntro to Programming

CMPUT 299

H. James Hoover

Fall 2005 2005-10-11

Version 1.0

CMPUT 299

H. James Hoover

Fall 2005 2005-10-11

Version 1.0

Page 2: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

2

Programming isProgramming is

Machine + Instructions

Page 3: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

3

Scripting isScripting is

♣Programming where the “machine” is oftenanother program or system.

♣No real distinction anymore.

♣Programming where the “machine” is oftenanother program or system.

♣No real distinction anymore.

Page 4: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

4

ExampleExample

♣Bob the robot:

♣Instructions:

turn left L

turn right R

go forward F

♣Bob the robot:

♣Instructions:

turn left L

turn right R

go forward F

Page 5: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

5

Straight Line ProgramStraight Line Program

F F L F R F F R

Page 6: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

6

Straight Line ProgramsStraight Line Programs

♣Simple linear flow of control

♣Only work in limited, pre-defined contexts

♣Building blocks for more complex actions

♣Simple linear flow of control

♣Only work in limited, pre-defined contexts

♣Building blocks for more complex actions

Define 2F as F FDefine Spin as R R R RDefine Dance as 2F Spin 2F Spin

Page 7: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

7

2F Spin 2F Spin

Page 8: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

8

SLP to walk a mazeSLP to walk a maze

[][][][][] [] [] [] [] [] [] [][][][][]

F R F F L F F F F

Page 9: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

9

Branching ProgramsBranching Programs

♣To adapt to uncertain environment need tohave decision ability.

♣Decision result causes a branch in the flowof control.

♣To adapt to uncertain environment need tohave decision ability.

♣Decision result causes a branch in the flowof control.

Page 10: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

10

Decision TreesDecision Trees

♣Decision trees are a common example ofbranching programs.

♣Appear in many kinds of games and searchproblems.

♣Decision trees are a common example ofbranching programs.

♣Appear in many kinds of games and searchproblems.

Page 11: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

11

Common Decision TreeCommon Decision Tree

♣Pick a number in range 0 .. 7♣Pick a number in range 0 .. 7

< 4 ?

< 2 ? < 6 ?

< 1 ? < 3 ? < 5 ? < 7 ?

0 1 2 3 4 5 6 7

Y N

Page 12: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

12

Many possible designs …Many possible designs …

♣Pick a number in range 0 .. 7♣Pick a number in range 0 .. 7

< 1 ?

0 < 2 ?

1 < 3 ?

2

Y N

< 4 ?

3 < 5 ?

4 < 6 ?

5

Y N

< 7 ?

6 7

Page 13: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

13

So Cost is an IssueSo Cost is an Issue

♣How much time (e.g. number of steps,decisions)

♣How much space (e.g. memory in RAM, ondisk)

♣How much programmer time?

♣How much time (e.g. number of steps,decisions)

♣How much space (e.g. memory in RAM, ondisk)

♣How much programmer time?

Page 14: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

14

Looping ProgramsLooping Programs

♣Add decision ability to our robot

♣Add Instructions:

blocked? - which returns Y or Ndepending on whether can go forward ornot.

♣Allow branching back to previous point

♣Add decision ability to our robot

♣Add Instructions:

blocked? - which returns Y or Ndepending on whether can go forward ornot.

♣Allow branching back to previous point

Page 15: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

15

Maze program again …Maze program again …

Blocked? RY

N

Blocked? RY

N

Blocked?

R

Y

N

L

F

[][][][][] [] [] [] [] [] [] [][][][][]

Page 16: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

16

Simplified …Simplified …

Blocked? RY

N

L

F

[][][][][] [] [] [] [] [] [] [][][][][]

Page 17: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

17

As programsAs programswhile ( in maze ) { L; if ( Blocked? ) { R; if ( Blocked? ) { R; if ( Blocked? ) { R; } } } F; }

while ( in maze ) { L; while ( Blocked? ) { R; } F; }

Are these equivalent?I.e. do the same thing?

Page 18: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

18

Key IdeasKey Ideas

♣System - all the things that you areinterested in. Eg. Maze + Robot

♣State - all the dynamic information neededto reconstruct the system at a point in time.E.g. position and orientation of robot.

♣If you stop a system at time t, record itsstate, and then continue you can backtrackback to time t. E.g. Save game.

♣System - all the things that you areinterested in. Eg. Maze + Robot

♣State - all the dynamic information neededto reconstruct the system at a point in time.E.g. position and orientation of robot.

♣If you stop a system at time t, record itsstate, and then continue you can backtrackback to time t. E.g. Save game.

Page 19: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

19

♣Transition - change of a system from onestate at time t to another state at time t+1.Transitions are described by rules that saywhere the current state can go next.

♣State space - all the potential states that asystem can have. Some of them may neveractually occur when a system runs.

♣Execution - a sequence of transitionsbetween states, usually starting in someinitial state and ending in a final state.

♣Transition - change of a system from onestate at time t to another state at time t+1.Transitions are described by rules that saywhere the current state can go next.

♣State space - all the potential states that asystem can have. Some of them may neveractually occur when a system runs.

♣Execution - a sequence of transitionsbetween states, usually starting in someinitial state and ending in a final state.

Page 20: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

20

♣State Variable - variables capture differentparts of the system. They break it into piecesto make it intellectually manageable.

♣E.g. for robot in maze have 3 state variables:

orientation o: {N, S, E, W}

position (x,y) where

x: {0, 1, 2, 3, 4}

y: {0, 1, 2, 3, 4}

♣State Variable - variables capture differentparts of the system. They break it into piecesto make it intellectually manageable.

♣E.g. for robot in maze have 3 state variables:

orientation o: {N, S, E, W}

position (x,y) where

x: {0, 1, 2, 3, 4}

y: {0, 1, 2, 3, 4}

Page 21: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

21

[][][][][] [] [] [] [] [] [] [][][][][]

o: Ex: 0y: 3

[][][][][] [] [] [] [] [] [] [][][][][]

o: Sx: 3y: 2

[][][][][] [] [] [] [] [] [] [][][][][]

o: Sx: 2y: 2

Not a legit state

Page 22: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

22

♣How big is the state space?♣For robot in maze have 3 state variables:

orientation o: {N, S, E, W} position (x,y) where

x: {0, 1, 2, 3, 4}y: {0, 1, 2, 3, 4}

so 4 x 5 x 5 = 100 possible states. Whichones are legal depends on the maze.

♣How big is the state space?♣For robot in maze have 3 state variables:

orientation o: {N, S, E, W} position (x,y) where

x: {0, 1, 2, 3, 4}y: {0, 1, 2, 3, 4}

so 4 x 5 x 5 = 100 possible states. Whichones are legal depends on the maze.

Page 23: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

23

♣Actually have a 4th state variable p, theposition in the program giving the nextinstruction the robot is going to execute.

♣Actually have a 4th state variable p, theposition in the program giving the nextinstruction the robot is going to execute.

Page 24: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

24

Managing State SpaceManaging State Space

♣The art of programming is managing yourstate space.

♣Total state space is huge (multiply thepossible values of all variables).

♣Program with just 1000 integers has2 ** 32000, or about 10 ** 9600 states.

♣The art of programming is managing yourstate space.

♣Total state space is huge (multiply thepossible values of all variables).

♣Program with just 1000 integers has2 ** 32000, or about 10 ** 9600 states.

Page 25: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

25

But size doesn’t matter …But size doesn’t matter …

♣The key to keeping sane is making suremost actions only affect “local” state.

♣The narrative guidelines are examples ofthis.

♣Programming guidelines are similar. Themain one is:Don’t talk to too many others.

♣The key to keeping sane is making suremost actions only affect “local” state.

♣The narrative guidelines are examples ofthis.

♣Programming guidelines are similar. Themain one is:Don’t talk to too many others.

Page 26: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

26

♣The other main one is:Just because you can doesn’t mean youshould. Aka, Keep it Simple and Stupid.

♣The other main one is:Just because you can doesn’t mean youshould. Aka, Keep it Simple and Stupid.

Page 27: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

27

Programming LanguagesProgramming Languages

♣Languages are designed for specificpurposes, and generally don’t do so welloutside their design domain.

♣Some are general purpose: Java, Perl

♣Others are domain specific: ScriptEase, ourtoy robot

♣Languages are designed for specificpurposes, and generally don’t do so welloutside their design domain.

♣Some are general purpose: Java, Perl

♣Others are domain specific: ScriptEase, ourtoy robot

Page 28: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

28

General PurposeGeneral Purpose

♣Have to be able to do almost anything, sotend to be bad at most things.

♣Expressing what you want to do is neithereasy nor outrageously difficult

♣Have to be able to do almost anything, sotend to be bad at most things.

♣Expressing what you want to do is neithereasy nor outrageously difficult

Page 29: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

29

Special PurposeSpecial Purpose

♣Have to be able to do a small number ofthings well.

♣Expressing what you want to do is easy ifyou are are using it as intended, but oftenoutrageously difficult if you are pushing theboundaries.

♣Have to be able to do a small number ofthings well.

♣Expressing what you want to do is easy ifyou are are using it as intended, but oftenoutrageously difficult if you are pushing theboundaries.

Page 30: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

30

ScriptEaseScriptEase

♣Special purpose, designed to cover mostcommon activities in a RP game: encounterswith other characters and objects.

♣Built by looking at common coding patternsin the game engine codes and capturingthese in the programming language.

♣Special purpose, designed to cover mostcommon activities in a RP game: encounterswith other characters and objects.

♣Built by looking at common coding patternsin the game engine codes and capturingthese in the programming language.

Page 31: Intro to Programming - University of Albertagames/299/Lecture10.pdf · Intro to Programming 19 ♣Transition - change of a system from one state at time t to another state at time

CMPUT 299 - Fall 2005Intro to Programming

31

ScriptEaseScriptEase

♣Don’t try to make it do what it is notintended to do.

♣Don’t try to make it do what it is notintended to do.


Recommended