Building Brains Into Your Games

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Building Brains Into Your Games as PDF for free.

More details

  • Words: 1,110
  • Pages: 10
%XLOGLQJ%UDLQVLQWR
7KH*UDSKLFV0RGXOH +DOIWKHZRUOGXVHV0LFURVRIW&DQG&FRPSLOHUVDQGWKHRWKHUKDOIXVHV%RUODQG&DQG&FRPSLOHUVVR LW VDOZD\VDSUREOHPSXEOLVKLQJGHPRVWKDWGHSHQGRQWKHXVHRIHLWKHU+HQFHZHDUHJRLQJWRZULWH&FRGH WKDWLVWRWDOO\FRPSLOHULQGHSHQGHQWEDVHGRQDJUDSKLFVLQWHUIDFHWKDWZHDUHJRLQJWRZULWHRXUVHOYHVDQG WKDWZLOOZRUNRQERWKFRPSLOHUV7KHJUDSKLFVLQWHUIDFHZLOOEHEDVHGRQJUDSKLFVPRGHKZKLFKLVE\ SL[HOVZLWKFRORUV)RUWKHVLPSOHGHPRVZHDUHJRLQJWRZULWHDOOZHZDQWWRGRLVSODFHWKH 9*$69*$FDUGLQPRGHKDQGSORWVLQJOHSL[HOVRQWKHVFUHHQ7KXVZHQHHGWZRIXQFWLRQV

Set_Video_Mode(int mode); DQG

Plot_Pixel(int x, int y,unsigned char color); :HZLOOXVHWKHYLGHR%,26IXQFWLRQKWRVHWWKHYLGHRPRGHEXWKRZFDQZHSORWSL[HOV"3ORWWLQJSL[HOVLQ PRGHKLVYHU\VLPSOHEHFDXVHWKHJUDSKLFVDUHIXOO\PHPRU\PDSSHG%DVLFDOO\PRGHKLVDWRWDOO\ OLQHDUDUUD\RIPHPRU\WKDWUHSUHVHQWVHDFKSL[HOZLWKDVLQJOHE\WH)XUWKHUWKLVYLGHRPHPRU\VWDUWVDW ORFDWLRQ$DQGFRQVLVWVRIURZVDQGFROXPQV7KHUHIRUHWRFRPSXWHWKHDGGUHVVRIDQ\ SL[HODW [\ ZHVLPSO\PXOWLSO\WKH<FRPSRQHQWE\DQGDGGWKH;2ULQRWKHUZRUGV

memory offset = y*320+x; $GGLQJWKLVPHPRU\RIIVHWWR$JLYHVXVWKHILQDOPHPRU\ORFDWLRQWRDFFHVVWKHGHVLUHGVFUHHQ SL[HO+HQFHLIZHDOLDVD)$5SRLQWHUWRWKHYLGHRPHPRU\OLNHWKLV

unsigned char far* video_buffer = (unsigned char far*)A0000000L; 7KHQZHFDQDFFHVVWKHYLGHRPHPRU\XVLQJDV\QWD[OLNH

video_buffer[y*320+x] = color; $QGWKDW VLW6RXVLQJWKDWLQIRUPDWLRQZHFDQWKHQZULWHDVLPSOHSL[HOSORWWLQJIXQFWLRQDQG JUDSKLFVPRGHIXQFWLRQ7KHVHWZRIXQFWLRQVVKRXOGEHDGGHGWRHDFKGHPRVRWKDWWKHGHPRVFDQSHUIRUP WKHJUDSKLFVUHODWHGIXQFWLRQVZLWKRXWKHOSIURPWKHFRPSLOHUGHSHQGHQWJUDSKLFVOLEUDU\:H UHDOVRJRLQJWR

DGGDOLWWOHWLPHGHOD\IXQFWLRQEDVHGRQWKH3& VLQWHUQDOWLPHU7KHIXQFWLRQLVFDOOHG7LPHB'HOD\ DQG WDNHVDVLQJOHSDUDPHWHUZKLFKLVWKHQXPEHURIFOLFNVWRZDLWIRU/LVWLQJVKRZVWKHFRPSOHWHJUDSKLFV LQWHUIDFHQDPHG*02'+IRUWKHGHPRVFRQWDLQHGZLWKLQWKLVDUWLFOH6LPSO\LQFOXGHWKHFRGHRIWKHJUDSKLFV PRGXOHZLWKHDFKGHPRDQGHYHU\WKLQJVKRXOGZRUNILQH1RZWKDWZHKDYHWKHVRIWZDUHZHQHHGWRGR JUDSKLFVOHW VEHJLQRXUGLVFXVVLRQRI$,

/LVWLQJ7KH*UDSKLFV0RGXOH*02'+

// GMOD.H graphics module for demos unsigned char far *video_buffer = (unsigned char far *)0xA0000000L; void Plot_Pixel(int x,int y,int color) { // plots the pixel in the desired color a little quicker using binary shifting // to accomplish the multiplications video_buffer[((y<<8) + (y<<6)) + x] = (unsigned char )color; } // end Plot_Pixel void Set_Graphics_Mode(int mode) { // use the video interrupt 10h and the C interrupt function to set // the video mode union REGS inregs,outregs; inregs.h.ah = 0; // set video mode sub-function inregs.h.al = (unsigned char)mode; // video mode to change to int86(0x10, &inregs, &outregs); } // end Set_Graphics_Mode void Time_Delay(int clicks) { // this function uses the internal timer to wait a specified number of "clicks" // the actual amount of real time is the number of clicks * (time per click) // usually the time per click is set to 1/18th of a second or 55ms long far *clock = (long far *)0x0000046CL, // address of timer start_time; // starting time // get current time start_time = *clock; // when the current time minus the starting time >= the requested delay then // the function can exit while(labs(*clock - start_time) < (long)clicks){} } // end Time_Delay 'HWHUPLQLVWLF$OJRULWKPV 'HWHUPLQLVWLFDOJRULWKPVDUHWKHVLPSOHVWRIWKH$,WHFKQLTXHVXVHGLQJDPHV7KHVHDOJRULWKPVXVHDVHWRI YDULDEOHVDVWKHLQSXWDQGWKHQXVHVRPHVLPSOHUXOHVWRGULYHWKHFRPSXWHUFRQWUROOHGHQHPLHVRUJDPH REMHFWVEDVHGRQWKHVHLQSXWV:HFDQWKLQNRIGHWHUPLQLVWLFDOJRULWKPVDVUHIOH[HVRUYHU\ORZOHYHOLQVWLQFWV $FWLYDWHGE\VRPHVHWRIFRQGLWLRQVLQWKHHQYLURQPHQWWKHDOJRULWKPVWKHQSHUIRUPWKHGHVLUHGEHKDYLRU UHOHQWOHVVO\ZLWKRXWFRQFHUQIRUWKHRXWFRPHWKHSDVWRUIXWXUHHYHQWV 7KHFKDVHDOJRULWKPLVDFODVVLFH[DPSOHRIDGHWHUPLQLVWLFDOJRULWKP7KHFKDVHDOJRULWKPLVEDVLFDOO\D PHWKRGRILQWHOOLJHQFHXVHGWRKXQWGRZQWKHSOD\HURUVRPHRWKHUREMHFWRILQWHUHVWLQDJDPHE\DSSO\LQJ WKHVSDWLDOFRRUGLQDWHVRIWKHFRPSXWHUFRQWUROOHGREMHFWDQGWKHREMHFWWREHWUDFNHG,PDJLQHDJDPHZLWK DWRSGRZQYLHZRIDEDWWOHJURXQGRQZKLFKWKUHHFRPSXWHUFRQWUROOHGEDGJX\VDQGRQHSOD\HUDUHILJKWLQJ 7KHTXHVWLRQLVKRZFDQZHPDNHWKHFRPSXWHUFRQWUROOHGEDGJX\VWUDFNDQGPRYHWRZDUGWKHSOD\HU"2QH ZD\LVWRXVHWKHFRRUGLQDWHVRIWKHEDGJX\VDQGWKHFRRUGLQDWHVRIWKHSOD\HUDVLQSXWVLQWRDGHWHUPLQLVWLF DOJRULWKPWKDWRXWSXWVGLUHFWLRQFKDQJHVRUGLUHFWLRQYHFWRUVIRUWKHEDGJX\VLQUHDOWLPH /HW VXVHEDGJX\RQHDVWKHH[DPSOH:HVHHWKDWKHLVORFDWHGDWFRRUGLQDWHV E[E\ DQGWKHSOD\HULV ORFDWHGDWFRRUGLQDWHV S[S\ 7KHUHIRUHDVLPSOHDOJRULWKPWRPDNHWKHEDGJX\PRYHWRZDUGWKHSOD\HU ZRXOGEH

// process x-coords if (px>bx1) bx1++; else if (pxby1) by1++; else if (py
/LVWLQJ$'HPRRI'HWHUPLQLVWLF/RJLF

// Deterministic chasing algorithm demo // use numeric keypad to move player #include #include #include #include #include #include #include #include

<stdio.h> <stdlib.h> <dos.h> <math.h> <string.h>

#include "gmod.h" // include our graphics module int main(void) { int px=160, // starting position of player py=100, bx=0, // starting position of bad guy by=0, done=0; // exit flag // set the video mode to 13h Set_Graphics_Mode(0x13); // main event loop while(!done) { // perform player logic // get input from keyboard if (kbhit()) // which way is player moving? switch(getch()) { case '8': // up { if ((py-=2)<0) py+=200; } break; case '2': // down { if ((py+=2)>=200) py-=200; } break; case '6': // right {

if ((px+=2)>=320) px-=320; } break; case '4': // left { if ((px-=2)<0) px+=320; } break; case 27: // exit { done=1; } break; } // end switch } // end if // perform bad guy logic if (px>bx) bx++; else if (pxby) by++; else if (py
1RZOHW VPRYHRQWRDQRWKHUW\SLFDOEHKDYLRUZKLFKZHFDQFDWHJRUL]HDVUDQGRPORJLF

5DQGRP/RJLF 6RPHWLPHVDQLQWHOOLJHQWFUHDWXUHH[KLELWVDOPRVWUDQGRPEHKDYLRUV7KHVHUDQGRPEHKDYLRUVPD\EHWKH UHVXOWRIDQ\RQHRIDQXPEHURILQWHUQDOSURFHVVHVEXWWKHUHDUHWZRPDLQRQHVWKDWZHVKRXOGWRXFK XSRQODFNRILQIRUPDWLRQDQGGHVLUHGUDQGRPQHVV 7KHILUVWSUHPLVHLVDQREYLRXVRQH0DQ\WLPHVDQLQWHOOLJHQWFUHDWXUHGRHVQRWKDYHHQRXJKLQIRUPDWLRQWR PDNHDGHFLVLRQRUPD\QRWKDYHDQ\LQIRUPDWLRQDWDOO7KHFUHDWXUHWKHQVLPSO\GRHVWKHEHVWLWFDQZKLFK LVWRVHOHFWDUDQGRPEHKDYLRULQKRSHVWKDWLWPLJKWEHWKHFRUUHFWRQHIRUWKHVLWXDWLRQ)RUH[DPSOHOHW V VD\\RXZHUHGURSSHGLQWRDGXQJHRQDQGSUHVHQWHGZLWKIRXULGHQWLFDOGRRUV.QRZLQJWKDWDOOEXWRQH PHDQWFHUWDLQGHDWK\RXZRXOGVLPSO\KDYHWRUDQGRPO\VHOHFWRQH 7KHVHFRQGSUHPLVHWKDWEULQJVRQDUDQGRPVHOHFWLRQLVLQWHQWLRQDO)RUH[DPSOHVD\\RXDUHDVS\WU\LQJWR PDNHDJHWDZD\DIWHUDFTXLULQJVRPHVHFUHWGRFXPHQWV WKLVKDSSHQVWRPHDOOWKHWLPH 1RZLPDJLQH\RX KDYHEHHQVHHQDQGWKHEDGJX\VVWDUWVKRRWLQJDW\RX,I\RXUXQLQDVWUDLJKWOLQHFKDQFHVDUH\RXDUH JRLQJWRJHWVKRW+RZHYHULIGXULQJ\RXUHVFDSH\RXPDNHPDQ\UDQGRPGLUHFWLRQFKDQJHVDQG]LJ]DJDELW

\RXZLOOJHWDZD\HYHU\WLPH :KDWZHOHDUQIURPWKDWH[DPSOHLVWKDWPDQ\WLPHVUDQGRPORJLFDQGVHOHFWLRQVDUHJRRGEHFDXVHLWPDNHV LWKDUGHUIRUWKHSOD\HUWRGHWHUPLQHZKDWWKHEDGJX\VDUHJRLQJWRGRQH[WDQGLW VDJRRGZD\WRKHOSWKH EDGJX\VPDNHDVHOHFWLRQZKHQWKHUHLVQ WHQRXJKLQIRUPDWLRQWRXVHDGHWHUPLQLVWLFDOJRULWKP0RWLRQ FRQWUROLVDW\SLFDOSODFHWRDSSO\UDQGRPORJLFLQEDGJX\$,
// select bx1 = bx1 // select by1 = by1

a + a +

random translation for X axis rand()%11 - 5; random translation for Y axis rand()%11 - 5;

7KHSRVLWLRQRIWKHEDGJX\LVWUDQVODWHGE\DUDQGRPDPRXQWLQERWK;DQG<ZKLFKLQWKLVFDVHLV SL[HOVRUXQLWV 2IFRXUVHZHFDQXVHUDQGRPORJLFIRUDORWRIRWKHUWKLQJVEHVLGHVGLUHFWLRQFKDQJHV6WDUWLQJSRVLWLRQV SRZHUOHYHOVDQGSUREDELOLW\RIILULQJZHDSRQVDUHDOOJRRGSODFHVWRDSSO\UDQGRPORJLF,W VGHILQLWHO\D JRRGWHFKQLTXHWKDWDGGVDELWRIXQSUHGLFWDELOLW\WRJDPH$,/LVWLQJLVDGHPRRIUDQGRPORJLFXVHGWR FRQWUROPRWLRQ7KHGHPRFUHDWHVDQDUUD\RIIOLHVDQGXVHVUDQGRPORJLFWRPRYHWKHPDURXQG3UHVV(6&WR H[LWWKHGHPR

/LVWLQJ$%XQFKRI'XPE)OLHV

// Random logic demo // moves a flock of flies around // hit any key to exit #include #include #include #include #include #include #include #include

<stdio.h> <stdlib.h> <dos.h> <math.h> <string.h>

#include "gmod.h" // include our graphics module #define NUM_FLIES 64 // start off with 64 flies typedef struct fly_typ { int x,y; // position of fly } fly; int main(void) { fly flys[NUM_FLIES]; // the array of flies int index; // looping variable // set the video mode to 13h Set_Graphics_Mode(0x13); // initialize all flies to random position for (index=0; index
Plot_Pixel(flys[index].x,flys[index].y,0); // perform fly logic, translate each fly +-2 pixels for (index=0; index
1RZOHW VWDONDERXWSDWWHUQV

(QFRGHG/LVW3URFHVVLQJ 0DQ\LQWHOOLJHQWFUHDWXUHVKDYHSUHUHFRUGHGSDWWHUQVRUOLVWVRIEHKDYLRUVWKDWWKH\KDYHHLWKHUOHDUQHGIURP H[SHULHQFHRUDUHLQVWLQFWLYH:HFDQWKLQNRIDSDWWHUQDVDVHTXHQFHRIVWHSVZHSHUIRUPWRDFFRPSOLVKD WDVN*UDQWHGWKLVVHTXHQFHPD\EHLQWHUUXSWHGLIVRPHWKLQJKDSSHQVGXULQJWKHVHTXHQFHWKDWQHHGV DWWHQWLRQ%XWLQJHQHUDOLIZHIRUJHWDERXWLQWHUUXSWLRQVWKHQZHFDQWKLQNRISDWWHUQVDVDOLVWRIHQFRGHG LQVWUXFWLRQVWKDWDQLQWHOOLJHQWFUHDWXUHFRQVXPHVWRDFFRPSOLVKVRPHWDVN )RUH[DPSOHZKHQ\RXGULYHWRZRUNVFKRRORU\RXUJLUOIULHQG VRUER\IULHQG VKRXVH\RXDUHIROORZLQJD SDWWHUQ
Turn right Turn left Move forward Move backward Sit still Fire weapon (YHQWKRXJKZHRQO\KDYHVL[VHOHFWLRQVZHFDQFRQVWUXFWTXLWHDIHZSDWWHUQVZLWKDVKRUWLQSXWOLVWRI HOHPHQWVDVLQWKHH[DPSOH,QIDFWWKHUHDUHGLIIHUHQWSRVVLEOHSDWWHUQVRUURXJKO\WULOOLRQGLIIHUHQW EHKDYLRUV,WKLQNWKDW VHQRXJKWRPDNHVRPHWKLQJORRNLQWHOOLJHQW6RKRZFDQZHXVHHQFRGHGOLVWVDQG SDWWHUQVLQDJDPHIRUWKH$,"2QHVROLGZD\LVWRXVHWKHPWRFRQWUROWKHPRWLRQRIDEDGJX\RUJDPH REMHFW)RUH[DPSOHDGHWHUPLQLVWLFDOJRULWKPPLJKWGHFLGHLW VWLPHWRPDNHDEDGJX\SHUIRUPVRPH FRPSOH[PRWLRQWKDWZRXOGEHGLIILFXOWLIZHXVHGVWDQGDUGFRQGLWLRQDOORJLF7KXVZHFRXOGXVHWKDWSDWWHUQ ZKLFKVLPSO\UHDGVDQHQFRGHGOLVWGLUHFWLQJWKHEDGJX\WRPDNHVRPHWULFN\PRYHV)RUH[DPSOHZHPLJKW KDYHDVLPSOHDOJRULWKPOLNHWKLV

int move_x[16] = {-2,0,0,0,3,3,2,1,0, -2,-2,-,0,1,2,3,4}; int move_y[16] = {0,0,0,1,1,1,0,0,-1,-1, 2,3,4,0,0.-1}; // encoded pattern logic for a 16 element list

for (index=0; index<16; index++) { bx1+=move_x[index]; by1+=move_y[index]; } // end for index
)LQLWH6WDWH0DFKLQHV )LQLWHVWDWHPDFKLQHVRU)60VDUHDEVWUDFWPRGHOVWKDWFDQEHLPSOHPHQWHGHLWKHULQKDUGZDUHRUVRIWZDUH )60VDUHQRWUHDOO\PDFKLQHVLQWKHPHFKDQLFDOVHQVHRIWKHZRUGEXWUDWKHUDEVWUDFWPRGHOVZLWKDVHWRI VWDWHVWKDWFDQEHWUDYHUVHG:LWKLQWKHVHVWDWHVWKH)60QRWRQO\KDVDVSHFLDOVHWRIRXWSXWVEXW UHPHPEHUVWKHVWDWHDQGFDQWUDQVLWLRQWRDQRWKHUVWDWHLIDQGRQO\LIDVHWRILQSXWVRUSUHPLVHVDUHPHW 6D\ZHKDYHDW\SLFDOILQLWHVWDWHPDFKLQHLQZKLFKWKHUHDUHDVHWRIVWDWHVODEHOHG666DQG6QDQG ZLWKLQHDFKVWDWHLVDVHWRIRXWSXWV7KHVHRXWSXWVFDQEHDQ\WKLQJZHZLVKIURPPRWLRQFRQWUROVIRUD JDPH VEDGJX\VWRKDUGGLVNFRPPDQGV+RZGRZHPRGHODQ)60LQVRIWZDUHDQGXVHLWWRFRQWUROWKH JDPH$,"/HW VEHJLQZLWKWKHILUVWTXHVWLRQ :HFDQPRGHODQ)60ZLWKDVLQJOHYDULDEOHDQGDVHWRIORJLFDOFRQGLWLRQVXVHGWRPDNHVWDWHWUDQVLWLRQV DORQJZLWKWKHRXWSXWIRUHDFKVWDWH)RUH[DPSOHOHW VDFWXDOO\EXLOGDVLPSOHVRIWZDUHVWDWHPDFKLQHWKDW FRQWUROVDFRPSXWHUEDGJX\GLIIHUHQWO\EDVHGRQWKHEDGJX\ VGLVWDQFHWRWKHSOD\HU7KHVWDWHPDFKLQHZLOO KDYHWKHIROORZLQJIRXUVWDWHV 6WDWH6HOHFWQHZVWDWH 6WDWH0RYHUDQGRPO\ 6WDWH7UDFNSOD\HU 6WDWH8VHDSDWWHUQ

67$7(B1(: 67$7(B5$1'20

67$7(B75$&. 67$7(B3$77(51

7KH)60 VWUDQVLWLRQVKRXOGEHVHWXSVRWKDWLIWKHEDGJX\LVZLWKLQXQLWVRIWKHSOD\HUWKHQWKHEDGJX\ PRYHVLQWR6WDWHDQGVLPSO\DWWDFNV,IWKHEDGJX\LVLQWKHUDQJHRIWRXQLWVIURPWKHSOD\HUWKHQ WKHEDGJX\JRHVLQWR6WDWHDQGPRYHVLQDSDWWHUQ)LQDOO\LIWKHEDGJX\LVIDUWKHUWKDQXQLWVIURP WKHSOD\HUWKHQFKDQFHVDUHWKHEDGJX\FDQ WHYHQVHHWKHSOD\HU LQWKHLPDJLQDU\FRPSXWHUXQLYHUVH ,Q WKDWFDVHWKHEDGJX\PRYHVLQWR6WDWHZKLFKLVUDQGRPPRWLRQ 6RKRZFDQZHLPSOHPHQWWKLVVLPSOH)60PDFKLQH"$OOZHQHHGLVDYDULDEOHWRUHFRUGWKHFXUUHQWVWDWHDQG VRPHFRQGLWLRQDOORJLFWRSHUIRUPWKHVWDWHWUDQVLWLRQVDQGRXWSXWV/LVWLQJVKRZVDURXJKDOJRULWKPWKDW ZLOOGRDOOWKLV

/LVWLQJ7KH&RUH)60/RJLF

typedef unsigned short DISTANCE; const DISTANCE Tracking_Threshold = 50; const DISTANCE Random_Threshold = 100; DISTANCE theDistance; //Define states and initialize enum states{new, random, track, pattern}; states currentState = new; //FSM loop for(;;){ switch (currentState) { case new: //Note: Switchbox only, causes no behavior theDistance = CalcDistanceToPlayer(); if (theDistance > Random_Threshold){ currentState = random; } else {

if (theDistance > Tracking_Threshold) { currentState = pattern; } else { currentState = track; } } break; case track: DoTrackBehavior(); currentState = new; break; case pattern: DoPatternBehavior(); currentState = new; break; case random: DoRandomBehavior(); currentState = new; break; case default: cerr<<"state machine has entered an unknown state\n"; assert(FAIL); } }

1RWHWKDW6 WKHQHZVWDWH GRHVQRWWULJJHUDQ\EHKDYLRURQWKHSDUWRIWKHRSSRQHQW5DWKHULWDFWVDVD VWDWHVZLWFKER[WRZKLFKDOOVWDWHV H[FHSWLWVHOI WUDQVLWLRQ7KLVDOORZV\RXWRORFDOL]HLQDVLQJOHFRQWURO EORFNDOOWKHGHFLVLRQPDNLQJDERXWWUDQVLWLRQV $OWKRXJKWKLVUHTXLUHVWZRF\FOHVWKURXJKWKH)60ORRSWRFUHDWHRQHEHKDYLRULW VZHOOZRUWKLW,QWKHFDVH RIDVPDOO)60WKHHQWLUHORRSFDQVWD\LQWKHFDFKHDQGLQWKHFDVHRIDODUJH)60ORRSWKHORFDOL]DWLRQRI WKHWUDQVLWLRQORJLFZLOOPRUHWKDQSD\IRUWKHSHUIRUPDQFHSHQDOW\,I\RXDEVROXWHO\UHIXVHWRGRXEOHORRS \RXFDQKDQGFUDIWWKHWUDQVLWLRQVEHWZHHQVWDWHV$ILQLWHVWDWHPDFKLQHGLDJUDPZLOOYLYLGO\LOOXVWUDWHLQWKH IRUPRIVSDJKHWWLWUDQVLWLRQVZKHQ\RXUWUDQVLWLRQORJLFLVRXWRIFRQWURO 1RZWKDWZHKDYHDQRYHUDOOWKRXJKWFRQWUROOHUWKDWLVDQ)60ZHVKRXOGGLVFXVVVLPXODWLQJVHQVRU\ H[FLWDWLRQLQDYLUWXDOZRUOG

(QYLURQPHQWDO6HQVLQJ 2QHSUREOHPWKDWSODJXHV$,JDPHSURJUDPPLQJLVWKDWLWFDQEHYHU\XQIDLUDWOHDVWWRWKHSOD\HU7KH UHDVRQIRUWKLVLVWKDWWKHSOD\HUFDQRQO\VHHZKDW VRQWKHFRPSXWHUVFUHHQZKHUHDVWKHFRPSXWHU$, V\VWHPKDVDFFHVVWRDOOYDULDEOHVDQGGDWDWKDWWKHSOD\HUFDQ WDFFHVV 7KLVEULQJVXVWRWKHFRQFHSWRIVLPXODWHGVHQVRU\RUJDQVIRUWKHEDGJX\VDQGJDPHREMHFWV)RUH[DPSOH LQDWKUHHGLPHQVLRQDOWDQNJDPHWKDWWDNHVSODFHRQDIODWSODLQWKHSOD\HUFDQRQO\VHHVRIDUEDVHGRQKLV RUKHUILHOGRIYLHZ)XUWKHUWKHSOD\HUFDQ WVHHWKURXJKURFNVEXLOGLQJVDQGREVWDFOHV+RZHYHUEHFDXVH WKHJDPHORJLFKDVDFFHVVWRDOOWKHV\VWHPYDULDEOHVDQGGDWDVWUXFWXUHVLWLVWHPSWLQJIRULWWRXVHWKLV H[WUDGDWDWRKHOSZLWKWKH$,IRUWKHEDGJX\V 7KHTXHVWLRQLVLVWKLVIDLUWRWKHSOD\HU":HOORIFRXUVHQRW6RKRZFDQZHPDNHVXUHZHVXSSO\WKH$, HQJLQHRIWKHEDGJX\VDQGJDPHREMHFWVZLWKWKHVDPHLQIRUPDWLRQWKHSOD\HUKDV":HPXVWXVHVLPXODWHG VHQVRU\LQSXWVVXFKDVYLVLRQKHDULQJYLEUDWLRQDQGWKHOLNH(DFKRSSRQHQWDQGWKHSOD\HUKDVDFRQHRI YLVLRQDVVRFLDWHGZLWKLW%RWKWKHEDGJX\VDQGWKHSOD\HUFDQRQO\VHHREMHFWVZLWKLQWKLVFRQH7KHSOD\HU FDQRQO\VHHZLWKLQWKLVFRQHDVDIXQFWLRQRIWKH'JUDSKLFVHQJLQHEXWWKHEDGJX\VFDQRQO\VHHZLWKLQ WKLVFRQHDVDIXQFWLRQRIWKHLU$,SURJUDP/HW VEHDOLWWOHPRUHVSHFLILFDERXWWKLV 6LQFHZHNQRZWKDWZHPXVWEHIDLUWRWKHSOD\HUZKDWZHFDQGRLVZULWHDVLPSOHDOJRULWKPWKDWVFDQVWKH DUHDLQIURQWRIHDFKEDGJX\DQGGHWHUPLQHVLIWKHSOD\HULVZLWKLQYLHZ7KLVVFDQQLQJLVVLPLODUWRWKHSOD\HU YLHZLQJWKHYLHZSRUWRUORRNLQJRXWWKHYLUWXDOZLQGRZ2IFRXUVHZHGRQ WQHHGWRSHUIRUPDIXOO WKUHHGLPHQVLRQDOVFDQZLWKUD\WUDFLQJRUWKHOLNHZHFDQVLPSO\PDNHVXUHWKHSOD\HULVZLWKLQWKHYLHZ DQJOHRIWKHEDGJX\LQTXHVWLRQE\XVLQJWULJRQRPHWU\RIDQ\WHFKQLTXHZHZLVK %DVHGRQWKHLQIRUPDWLRQREWDLQHGIURPHDFKEDGJX\VFDQWKHSURSHU$,GHFLVLRQFDQEHPDGHLQDPRUH

XQLIRUPDQGIDLUPDQQHU2IFRXUVHZHPD\ZDQWWRJLYHWKHFRPSXWHUFRQWUROOHG$,V\VWHPPRUHDGYDQWDJH WKDQWKHKXPDQSOD\HUWRPDNHXSIRUWKH$,V\VWHPLWVHOIEHLQJUDWKHUSULPLWLYHZKHQFRPSDUHGWRWKH ELOOLRQFHOOQHXUDOQHWZRUNLWLVFRPSHWLQJDJDLQVWEXW\RXJHWWKHLGHD )LQDOO\ZHPLJKWDVN&DQZHSHUIRUPRWKHUNLQGVRIVHQVLQJ"
0HPRU\DQG/HDUQLQJ 7KHILQDOWRSLFZH UHJRLQJWRWRXFKXSRQLVPHPRU\DQGOHDUQLQJ0HPRU\LVHDV\HQRXJKWRXQGHUVWDQGEXW OHDUQLQJLVDELWPRUHQHEXORXV/HDUQLQJDVIDUDVZHDUHFRQFHUQHGLVWKHDELOLW\WRLQWHUDFWLQDQ HQYLURQPHQWLQVXFKDZD\WKDWEHKDYLRUVWKDWVHHPWRZRUNEHWWHUWKDQRWKHUVXQGHUFHUWDLQFRQGLWLRQVDUH PHPRUL]HGDQGXVHGPRUHRIWHQ,QHVVHQFHOHDUQLQJLVEDVHGRQPHPRU\RISDVWDFWLRQVEHLQJJRRGRU EDGRUZKDWHYHU,PDJLQHWKDWZHKDYHZULWWHQDIDLUO\FRPSOH[JDPHFRPSRVHGRIFRPSXWHUFRQWUROOHG DOLHQV7KHVHDOLHQVXVHDQ)60EDVHG$,HQJLQHDQGHQYLURQPHQWDOVHQVLQJ7KHSUREOHPLVWKDWRQHRIWKH UHVRXUFHVLQWKHJDPHLVHQHUJLRQFXEHVDQGWKHSOD\HUDQGDOLHQVPXVWFRPSHWHIRUWKHVHFXEHV $VWKHSOD\HULVPRYLQJDURXQGLQWKHHQYLURQPHQWKHRUVKHFDQFUHDWHDPHQWDOPDSRIZKHUHHQHUJLRQ FXEHVVHHPWREHSOHQWLIXOEXWWKHDOLHQFUHDWXUHVKDYHQRVXFKDELOLW\WKH\FDQRQO\VWDQGDQGDUHDWD GLVDGYDQWDJH&DQZHJLYHWKHPDPHPRU\DQGWHDFKWKHPZKHUHWKHVHHQHUJLRQFXEHVDUH"2IFRXUVHZH FDQZHDUHF\EHUJRGV 2QHVXFKLPSOHPHQWDWLRQZRXOGZRUNDVIROORZV:HFRXOGXVHDVLPSOHGDWDVWUXFWXUHWKDWZRXOGWUDFNWKH QXPEHURIWLPHVDQDOLHQIRXQGHQHUJLRQLQHDFKJHRJUDSKLFDOUHJLRQRIWKHJDPH7KHQZKHQDQDOLHQZDV SRZHUKXQJU\LQVWHDGRIUDQGRPO\ERXQFLQJDURXQGWKHDOLHQZRXOGUHIHUWRWKLVPHPRU\GDWDVWUXFWXUHDQG VHOHFWWKHJHRJUDSKLFDOUHJLRQZLWKWKHKLJKHVWSUREDELOLW\RIILQGLQJHQHUJLRQDQGVHWLWVWUDMHFWRU\IRUWKLV UHJLRQ 7KHSUHYLRXVH[DPSOHLVDVLPSOHRQHEXWDVZHFDQVHHPHPRU\DQGOHDUQLQJDUHDFWXDOO\YHU\HDV\WR LPSOHPHQW0RUHRYHUZHFDQPDNHWKHFRPSXWHU$,OHDUQPXFKPRUHWKDQZKHUHHQHUJLRQLV,WFRXOGOHDUQ WKHPRVWFRPPRQGHIHQVLYHPRYHVRIWKHSOD\HUDQGXVHWKLVLQIRUPDWLRQDJDLQVWWKHSOD\HU :HOOWKDW VHQRXJKIRUEDVLF$,WHFKQLTXHV/HW VWDNHDTXLFNORRNDWKRZZHFDQSXWLWDOOWRJHWKHU

%XLOGLQJ0RQVWHUVIURPWKH,G :HKDYHTXLWHDUHSHUWRLUHRIFRPSXWHU$,WULFNVDWRXUILQJHUWLSVVRKRZVKRXOGZHXVHLWDOO"%DVLFDOO\ ZKHQ\RXZULWHDJDPHDQGDUHLPSOHPHQWLQJWKH$,\RXVKRXOGOLVWWKHW\SHVRIEHKDYLRUVWKDWHDFKJDPH REMHFWRUEDGJX\QHHGVWRH[KLELW6LPSOHFUHDWXUHVVKRXOGXVHGHWHUPLQLVWLFORJLFUDQGRPQHVVDQG SDWWHUQV&RPSOH[FUHDWXUHVWKDWZLOOLQWHUDFWZLWKWKHSOD\HUVKRXOGXVHDQ)60EDVHG$,HQJLQH$QGWKH PDLQJDPHREMHFWVWKDWKDUDVVDQGWHVWWKHSOD\HUVKRXOGXVHDQ)60DQGVHQVRU\LQSXWVDQGPHPRU\

7KH)XWXUH ,VHH$,DVWKHQH[WIURQWLHUWRH[SORUH:LWKRXWDGRXEWPRVWJDPHSURJUDPPHUVKDYHIRFXVHGVRPXFKRQ JUDSKLFVWKDW$,KDVQ WEHHQUHVHDUFKHGPXFK7KHLURQ\LVWKDWUHVHDUFKHUVKDYHEHHQPDNLQJOHDSVDQG ERXQGVLQ$,UHVHDUFKDQG$UWLILFLDO/LIHRU$/LIH , PVXUH\RX YHKHDUGWKHFRPPRQWHUPVJHQHWLFDOJRULWKPVDQGQHXUDOQHWZRUNV*HQHWLFDOJRULWKPVDUH VLPSO\DPHWKRGRIUHSUHVHQWLQJVRPHDVSHFWRIDFRPSXWHUEDVHG$,PRGHOZLWKDVHWRIJHQHVZKLFKFDQ UHSUHVHQWZKDWHYHUZHZLVKDJJUHVVLYHQHVVPD[LPXPVSHHGPD[LPXPYLVLRQGLVWDQFHDQGVRRQ7KHQD SRSXODWLRQRIFUHDWXUHVLVJHQHUDWHGXVLQJDQDOJRULWKPWKDWDGGVDOLWWOHUDQGRPQHVVLQHDFKRIWKHRXWSXW FUHDWXUHV JHQHV 2XUJDPHZRUOGLVWKHQSRSXODWHGZLWKWKHVHJHQHEDVHGFUHDWXUHV$VWKHFUHDWXUHVLQWHUDFWLQWKH HQYLURQPHQWWKH\DUHNLOOHGVXUYLYHDQGDUHUHERUQ7KHELRORJLFDODQDORJFRPHVLQWRSOD\GXULQJWKH UHELUWKLQJSKDVH(LWKHUPDQXDOO\RUE\VRPHRWKHUPHDQVWKHFRPSXWHU$,HQJLQHPDWHVYDULRXVSDLUVRI FUHDWXUHVDQGPL[HVWKHLUJHQHV7KHUHVXOWLQJRIIVSULQJWKHQVXUYLYHDQRWKHUJHQHUDWLRQDQGWKHSURFHVV FRQWLQXHV7KLVFDXVHVWKHFUHDWXUHVWRHYROYHVRWKDWWKH\DUHPRVWDGDSWHGIRUWKHJLYHQHQYLURQPHQW 1HXUDOQHWZRUNVRQWKHRWKHUKDQGDUHFRPSXWHUDEVWUDFWLRQVRIDFROOHFWLRQRIEUDLQFHOOVWKDWKDYHILULQJ WKUHVKROGV
$QGUH/D0RWKHLVWKHDXWKRURIWKHEHVWVHOOLQJ7ULFNVRIWKH*DPH3URJUDPPLQJ*XUXV 6$06 3XEOLVKLQJ DQG7HDFK

Related Documents

Team Building Games 613
April 2020 11
Into Your Heart
November 2019 33
Brains Violators
November 2019 20
Building Your Dream Life.pdf
November 2019 11