ebook img

Minecraft Pi Book PDF

225 Pages·0.927 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Minecraft Pi Book

. N P ROGRA O M H T M I Y P N G Key Stage 3 COMPUTING STUDENT REFERENCE AND EXERCISES PART II y m U si d n a g e c Mi o d n C ecraft Pi a n d . Minecraft Pi Book Craig Richardson June 13, 2013 ThisbookislicensedundertheCreativeCommonslicenseofAttribution-NonCommercial- ShareAlike3.0Unported(CCBY-NC-SA3.0) Youarefree: toShare —tocopy,distributeandtransmitthework toRemix —toadaptthework Underthefollowingconditions: Attribution —Youmustattributetheworkinthemannerspecifiedbytheauthoror licensor(butnotinanywaythatsuggeststhattheyendorseyouoryouruseofthe work). Noncommercial —Youmaynotusethisworkforcommercialpurposes. ShareAlike —Ifyoualter,transform,orbuilduponthiswork,youmaydistributethe resultingworkonlyunderthesameorsimilarlicensetothisone. Withtheunderstandingthat: Waiver — Any of the above conditions can be waived if you get permission from the copyrightholder. PublicDomain —Wheretheworkoranyofitselementsisinthepublicdomainunder applicablelaw,thatstatusisinnowayaffectedbythelicense. OtherRights —Innowayareanyofthefollowingrightsaffectedbythelicense: • Yourfairdealingorfairuserights,orotherapplicablecopyrightexceptions andlimitations; • Theauthor’smoralrights; • Rightsotherpersonsmayhaveeitherintheworkitselforinhowtheworkis used,suchaspublicityorprivacyrights. Notice—Foranyreuseordistribution,youmustmakecleartoothersthelicense termsofthiswork. MoreinformationcanbefoundontheCreativeCommonssite: http://creativecommons.org/licenses/ Disclaimer: Anyreferenceorresemblancetotheintellectualpropertyofanindividual ororganisationisusedforeducationalpurposesonly. ThisbookisnotaffiliatedorendorsedbytheRaspberryPiFoundation,Mojang/Minecraft, Codecademyoranyorganisationmentionedinthisbook. Contents 1 Introduction 1 1.1 UsingthisBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 StandardsUsedinthisBook . . . . . . . . . . . . . . . . . . . . 2 2 GettingStarted 5 2.1 ProgrammingwithPython . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 TheMinecraftPiAPI . . . . . . . . . . . . . . . . . . . . 6 2.1.2 WritingandRunningCode . . . . . . . . . . . . . . . . 7 3 PythonSyntax 11 3.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1.1 TeleportthePlayer . . . . . . . . . . . . . . . . . . . . . 12 3.1.2 TeleportthePlayerPrecisely . . . . . . . . . . . . . . . 15 3.1.3 TeleportationTour . . . . . . . . . . . . . . . . . . . . . 16 3.1.4 StopSmashingThings . . . . . . . . . . . . . . . . . . . 18 3.2 VariablesandDataTypes . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.2 Floats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.3 Booleans . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.4 ChangingValuesofVariables . . . . . . . . . . . . . . . 23 3.3 WhitespaceandStatements . . . . . . . . . . . . . . . . . . . . 24 3.3.1 StatementsandLineBreaks . . . . . . . . . . . . . . . . 24 3.3.2 Indentation . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.1 SingleLineComments . . . . . . . . . . . . . . . . . . . 26 3.4.2 Multi-lineComments . . . . . . . . . . . . . . . . . . . . 27 4 MathsOperations 29 4.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.1 StackingBlocks . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.2 SuperJump . . . . . . . . . . . . . . . . . . . . . . . . . . 32 i ii CONTENTS 4.1.3 SetBlockBelowPlayer . . . . . . . . . . . . . . . . . . . 33 4.1.4 SpeedBuilding . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.5 Proportions . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.2 Operators,ExpressionsandStatements . . . . . . . . . . . . . 37 4.2.1 Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.2 Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.3 Multiplication . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.4 Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.5 Exponentials . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.6 Modulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3 OperatorOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 InterchangingVariablesandValues . . . . . . . . . . . . . . . 43 4.5 ShorthandOperators . . . . . . . . . . . . . . . . . . . . . . . . 44 5 StringsandConsoleOutput 47 5.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.1.1 HelloMinecraftWorld . . . . . . . . . . . . . . . . . . . 48 5.1.2 InputtingYourMessage . . . . . . . . . . . . . . . . . . 49 5.1.3 UserName . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.4 MadLibs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1.5 CreateaBlockwithInput . . . . . . . . . . . . . . . . . 52 5.1.6 SprintRecord . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.2.1 Substrings . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 StringFunctionsandMethods . . . . . . . . . . . . . . . . . . 56 5.3.1 len() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.3.2 .lower() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.3.3 .upper() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3.4 str() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.4 Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.4.1 PrintingStringVariables . . . . . . . . . . . . . . . . . 60 5.4.2 JoiningStrings . . . . . . . . . . . . . . . . . . . . . . . . 61 5.4.3 ConcatenatingIntegers,FloatsandBooleans . . . . . 62 5.4.4 PlaceholdersinStrings . . . . . . . . . . . . . . . . . . . 62 5.4.5 raw_input() . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.4.6 input() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.5 DateandTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.5.1 GettingtheCurrentDateandTime . . . . . . . . . . . 66 6 ComparatorsandControlFlow 67 6.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 67 CONTENTS iii 6.1.1 Swimming . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.1.2 Doyouwanttostopsmashingthings? . . . . . . . . . 69 6.1.3 Bringusashrubbery . . . . . . . . . . . . . . . . . . . . 72 6.1.4 TakeaShower . . . . . . . . . . . . . . . . . . . . . . . . 74 6.1.5 SecretPassage . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2 Comparators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.2.1 EqualTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.2 NotEqualTo . . . . . . . . . . . . . . . . . . . . . . . . . 78 6.2.3 LessThan . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2.4 LessThanorEqualTo . . . . . . . . . . . . . . . . . . . . 80 6.2.5 GreaterThan . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.2.6 GreaterThanorEqualTo . . . . . . . . . . . . . . . . . . 83 6.3 BooleanOperators . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3.1 and . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3.2 or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.3.3 not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.3.4 BooleanOperatorOrder . . . . . . . . . . . . . . . . . . 88 6.4 If,ElseandElif . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.4.1 ifStatements . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.4.2 else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.4.3 elif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.4.4 NestedIfstatements . . . . . . . . . . . . . . . . . . . . 95 6.4.5 CheckingForLetters . . . . . . . . . . . . . . . . . . . . 96 7 Functions 99 7.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.1.1 AForest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.1.2 ArmingTNT . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.1.3 WoolColour . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.1.4 Turtle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.1.5 ImportBlockModule . . . . . . . . . . . . . . . . . . . . 106 7.2 Functionsyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.2.1 Callingafunction . . . . . . . . . . . . . . . . . . . . . . 108 7.2.2 Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.2.3 MultipleArguments . . . . . . . . . . . . . . . . . . . . 110 7.3 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.3.1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.3.2 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.3.3 ImportAll* . . . . . . . . . . . . . . . . . . . . . . . . . . 113 7.4 Built-inFunctionsandMethods . . . . . . . . . . . . . . . . . . 114 7.4.1 max() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 iv CONTENTS 7.4.2 min() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4.3 abs() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4.4 type() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 8 ListsandDictionaries 119 8.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 119 8.1.1 GlitchingSign . . . . . . . . . . . . . . . . . . . . . . . . 119 8.1.2 BlockbyNumbers . . . . . . . . . . . . . . . . . . . . . . 121 8.1.3 TeamCamera . . . . . . . . . . . . . . . . . . . . . . . . . 122 8.1.4 DictionaryofWool . . . . . . . . . . . . . . . . . . . . . 123 8.1.5 HackingaFriend’sGame . . . . . . . . . . . . . . . . . 124 8.2 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 8.2.1 Definingalist . . . . . . . . . . . . . . . . . . . . . . . . 126 8.2.2 Accessingalistitem . . . . . . . . . . . . . . . . . . . . 127 8.2.3 Changingalistitem . . . . . . . . . . . . . . . . . . . . . 128 8.3 ListCapabilitiesandFunctions . . . . . . . . . . . . . . . . . . 128 8.3.1 Addinganitem . . . . . . . . . . . . . . . . . . . . . . . 129 8.3.2 ListLength . . . . . . . . . . . . . . . . . . . . . . . . . . 130 8.3.3 ListSlicing . . . . . . . . . . . . . . . . . . . . . . . . . . 130 8.3.4 Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8.3.5 InsertinganItem . . . . . . . . . . . . . . . . . . . . . . 132 8.3.6 RemovinganItem . . . . . . . . . . . . . . . . . . . . . . 133 8.3.7 Loopingthroughalist . . . . . . . . . . . . . . . . . . . 134 8.3.8 Sortingalist . . . . . . . . . . . . . . . . . . . . . . . . . 135 8.3.9 AddingTogetherItemsinaList . . . . . . . . . . . . . . 136 8.4 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 8.4.1 DefiningaDictionary . . . . . . . . . . . . . . . . . . . . 137 8.4.2 AccessingItemsinDictionaries . . . . . . . . . . . . . 138 8.4.3 Changing/AddinganItemwithaDictionary . . . . . 138 8.4.4 DeletingItemsinDictionaries . . . . . . . . . . . . . . 139 9 FunctionsandLists 141 9.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.1.1 PixelArt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.1.2 ShadowCastle . . . . . . . . . . . . . . . . . . . . . . . . 143 9.2 UsingFunctionswithLists . . . . . . . . . . . . . . . . . . . . . 144 9.2.1 ListsasArguments . . . . . . . . . . . . . . . . . . . . . 144 9.2.2 LoopsandListsinFunctions . . . . . . . . . . . . . . . 145 9.2.3 ModifyingEachListItem . . . . . . . . . . . . . . . . . 145 9.2.4 FunctionstoModifyEachIteminaList . . . . . . . . . 147 9.2.5 MoreOnrange() . . . . . . . . . . . . . . . . . . . . . . . 147 CONTENTS v 9.2.6 ConvertingaListintoaString . . . . . . . . . . . . . . 149 9.2.7 SplittingaStringintoaList . . . . . . . . . . . . . . . . 149 9.3 UsingMultipleLists . . . . . . . . . . . . . . . . . . . . . . . . . 150 9.3.1 Multi-dimensionalLists . . . . . . . . . . . . . . . . . . 151 9.3.2 JoiningTwoLists . . . . . . . . . . . . . . . . . . . . . . . 151 9.3.3 UsinganUndefinedNumberofLists . . . . . . . . . . 153 10 Loops 155 10.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.1.1 MidasTouch . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.1.2 TreeFighter . . . . . . . . . . . . . . . . . . . . . . . . . . 156 10.1.3 ChatwithaLoop . . . . . . . . . . . . . . . . . . . . . . . 158 10.1.4 Pyramid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 10.1.5 HotandCold . . . . . . . . . . . . . . . . . . . . . . . . . 160 10.1.6 AdaptExercises . . . . . . . . . . . . . . . . . . . . . . . 161 10.2 WhileLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 10.2.1 BooleanOperatorsandWhileLoops . . . . . . . . . . . 163 10.2.2 AvoidingInfiniteLoops . . . . . . . . . . . . . . . . . . 163 10.2.3 Break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 10.2.4 while/else . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 10.3 ForLoops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 10.3.1 StringsasLists . . . . . . . . . . . . . . . . . . . . . . . . 167 10.3.2 LoopingOveraDictionary . . . . . . . . . . . . . . . . . 167 10.3.3 UsingIndexeswithForLoops . . . . . . . . . . . . . . . 168 10.3.4 ZippingTwoLists . . . . . . . . . . . . . . . . . . . . . . 169 10.3.5 For/ElseLoops . . . . . . . . . . . . . . . . . . . . . . . . 170 10.3.6 BreakingaFor/ElseLoop . . . . . . . . . . . . . . . . . . 172 11 AdvancedTopicsinPython 173 11.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 173 11.2 IteratingOverDataStructures . . . . . . . . . . . . . . . . . . 173 11.2.1 items() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 11.2.2 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 11.2.3 keys() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 11.2.4 values() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 11.3 ListComprehension . . . . . . . . . . . . . . . . . . . . . . . . . 177 11.3.1 ListComprehensionSyntax . . . . . . . . . . . . . . . . 177 11.3.2 ListComprehensionWithOperators . . . . . . . . . . 178 11.4 ListSlicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 11.4.1 Stride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 11.4.2 OmittingIndexArguments . . . . . . . . . . . . . . . . 179 vi CONTENTS 11.4.3 ReversingaList . . . . . . . . . . . . . . . . . . . . . . . 180 11.5 Lambdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 11.5.1 LambdaSyntax . . . . . . . . . . . . . . . . . . . . . . . . 181 11.5.2 filter() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 12 BinaryandBitwiseOperators 185 13 Classes 187 13.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 188 13.2 BasicClassConcepts . . . . . . . . . . . . . . . . . . . . . . . . . 188 13.3 CreatingaClass . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 13.3.1 __init__() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 13.3.2 Argumentswith__init__() . . . . . . . . . . . . . . . . . 191 13.4 CreatinganObject . . . . . . . . . . . . . . . . . . . . . . . . . . 192 13.4.1 AccessingAttributes . . . . . . . . . . . . . . . . . . . . 193 13.4.2 ClassScope . . . . . . . . . . . . . . . . . . . . . . . . . . 193 13.4.3 CreatingMethods . . . . . . . . . . . . . . . . . . . . . . 194 13.4.4 MultipleObjects . . . . . . . . . . . . . . . . . . . . . . . 195 13.5 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 13.5.1 InheritingaClass . . . . . . . . . . . . . . . . . . . . . . 196 13.5.2 OverridingMethodsandAttributes . . . . . . . . . . . 197 13.5.3 ReferencingSuperclassMethodsinaSubclass . . . . 197 14 FileInputandOutput 199 14.1 MinecraftExercises . . . . . . . . . . . . . . . . . . . . . . . . . 199 14.2 IntroductiontoFileI/O . . . . . . . . . . . . . . . . . . . . . . . 199 14.2.1 OpeningaFile . . . . . . . . . . . . . . . . . . . . . . . . 200 14.2.2 WritingandClosingaFile . . . . . . . . . . . . . . . . . 201 14.2.3 ReadingaFile . . . . . . . . . . . . . . . . . . . . . . . . 202 14.2.4 ReadingaLineofaFile . . . . . . . . . . . . . . . . . . . 203 14.3 TheBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 14.3.1 AutomaticallyClosingaFile . . . . . . . . . . . . . . . . 204 14.3.2 ClosedAttribute . . . . . . . . . . . . . . . . . . . . . . . 205 15 ErrorHandling 207 Appendices 209 A ChecklistofTopicsCovered 211

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.