Ikenna Adrian Ozoemena 201157039
Dependencies: mbed
Lore/Lore.cpp@53:3fdc4486f672, 2019-05-09 (annotated)
- Committer:
- ikenna1
- Date:
- Thu May 09 14:52:52 2019 +0000
- Revision:
- 53:3fdc4486f672
- Parent:
- 51:2231e2e141b9
Final Submission
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ikenna1 | 39:7824f9080f59 | 1 | #include "Lore.h" |
ikenna1 | 51:2231e2e141b9 | 2 | // ship sprites |
ikenna1 | 41:e1fa36c0492e | 3 | const int seekerSprite[7][9] = { |
ikenna1 | 39:7824f9080f59 | 4 | {1,1,0,0,0,0,0,1,1}, |
ikenna1 | 39:7824f9080f59 | 5 | {1,0,1,0,0,0,1,0,1}, |
ikenna1 | 39:7824f9080f59 | 6 | {1,0,0,1,1,1,0,0,1}, |
ikenna1 | 39:7824f9080f59 | 7 | {0,1,0,0,0,0,0,1,0}, |
ikenna1 | 39:7824f9080f59 | 8 | {0,0,1,0,0,0,1,0,0}, |
ikenna1 | 39:7824f9080f59 | 9 | {0,0,1,1,0,1,1,0,0}, |
ikenna1 | 39:7824f9080f59 | 10 | {0,0,0,0,1,0,0,0,0}, |
ikenna1 | 39:7824f9080f59 | 11 | }; |
ikenna1 | 41:e1fa36c0492e | 12 | const int shooterSprite[10][11] = { |
ikenna1 | 39:7824f9080f59 | 13 | {0,0,1,0,0,0,0,0,1,0,0}, |
ikenna1 | 39:7824f9080f59 | 14 | {0,1,0,1,0,0,0,1,0,1,0}, |
ikenna1 | 39:7824f9080f59 | 15 | {1,0,0,1,0,1,0,1,0,0,1}, |
ikenna1 | 39:7824f9080f59 | 16 | {1,0,0,1,1,0,1,1,0,0,1}, |
ikenna1 | 39:7824f9080f59 | 17 | {0,1,0,0,0,0,0,0,0,1,0}, |
ikenna1 | 39:7824f9080f59 | 18 | {0,1,0,0,1,1,1,0,0,1,0}, |
ikenna1 | 39:7824f9080f59 | 19 | {0,0,1,0,0,1,0,0,1,0,0}, |
ikenna1 | 39:7824f9080f59 | 20 | {0,0,0,1,0,0,0,1,0,0,0}, |
ikenna1 | 39:7824f9080f59 | 21 | {0,0,0,0,1,0,1,0,0,0,0}, |
ikenna1 | 39:7824f9080f59 | 22 | {0,0,0,0,0,1,0,0,0,0,0}, |
ikenna1 | 39:7824f9080f59 | 23 | }; |
ikenna1 | 41:e1fa36c0492e | 24 | const int orionSprite[10][7] = { |
ikenna1 | 41:e1fa36c0492e | 25 | {0,0,0,1,0,0,0}, |
ikenna1 | 41:e1fa36c0492e | 26 | {0,0,1,0,1,0,0}, |
ikenna1 | 41:e1fa36c0492e | 27 | {0,1,0,0,0,1,0}, |
ikenna1 | 41:e1fa36c0492e | 28 | {1,0,0,1,0,0,1}, |
ikenna1 | 41:e1fa36c0492e | 29 | {0,1,0,0,0,1,0}, |
ikenna1 | 41:e1fa36c0492e | 30 | {0,0,1,0,1,0,0}, |
ikenna1 | 41:e1fa36c0492e | 31 | {1,0,0,1,0,0,1}, |
ikenna1 | 41:e1fa36c0492e | 32 | {1,0,1,0,1,0,1}, |
ikenna1 | 41:e1fa36c0492e | 33 | {1,1,0,0,0,1,1}, |
ikenna1 | 41:e1fa36c0492e | 34 | {1,0,0,0,0,0,1}, |
ikenna1 | 41:e1fa36c0492e | 35 | |
ikenna1 | 41:e1fa36c0492e | 36 | }; |
ikenna1 | 44:a6a361bea806 | 37 | const int seekerSpriteLarge[14][17] = { |
ikenna1 | 44:a6a361bea806 | 38 | {1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1}, |
ikenna1 | 44:a6a361bea806 | 39 | {1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1}, |
ikenna1 | 44:a6a361bea806 | 40 | {1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1}, |
ikenna1 | 44:a6a361bea806 | 41 | {1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1}, |
ikenna1 | 44:a6a361bea806 | 42 | {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, |
ikenna1 | 44:a6a361bea806 | 43 | {0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0}, |
ikenna1 | 44:a6a361bea806 | 44 | {0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0}, |
ikenna1 | 44:a6a361bea806 | 45 | {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 46 | {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 47 | {0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 48 | {0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 49 | {0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 50 | {0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 51 | {0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0}, |
ikenna1 | 44:a6a361bea806 | 52 | |
ikenna1 | 44:a6a361bea806 | 53 | |
ikenna1 | 44:a6a361bea806 | 54 | }; |
ikenna1 | 39:7824f9080f59 | 55 | |
ikenna1 | 39:7824f9080f59 | 56 | // Constructor |
ikenna1 | 39:7824f9080f59 | 57 | Lore::Lore() |
ikenna1 | 39:7824f9080f59 | 58 | { |
ikenna1 | 39:7824f9080f59 | 59 | |
ikenna1 | 39:7824f9080f59 | 60 | } |
ikenna1 | 39:7824f9080f59 | 61 | // Destructor |
ikenna1 | 39:7824f9080f59 | 62 | Lore::~Lore() |
ikenna1 | 39:7824f9080f59 | 63 | { |
ikenna1 | 39:7824f9080f59 | 64 | |
ikenna1 | 39:7824f9080f59 | 65 | } |
ikenna1 | 53:3fdc4486f672 | 66 | void Lore::help(N5110 &lcd) |
ikenna1 | 53:3fdc4486f672 | 67 | { |
ikenna1 | 53:3fdc4486f672 | 68 | // display help |
ikenna1 | 53:3fdc4486f672 | 69 | lcd.clear(); |
ikenna1 | 53:3fdc4486f672 | 70 | lcd.refresh(); |
ikenna1 | 53:3fdc4486f672 | 71 | ships1(lcd); |
ikenna1 | 53:3fdc4486f672 | 72 | lcd.refresh(); |
ikenna1 | 53:3fdc4486f672 | 73 | } |
ikenna1 | 41:e1fa36c0492e | 74 | void Lore::display(N5110 &lcd,int rand) |
ikenna1 | 39:7824f9080f59 | 75 | { |
ikenna1 | 51:2231e2e141b9 | 76 | // set the output to be a random number between 0 and 6 |
ikenna1 | 45:fe5fc85a5c73 | 77 | int random = rand%6; |
ikenna1 | 39:7824f9080f59 | 78 | lcd.clear(); |
ikenna1 | 39:7824f9080f59 | 79 | lcd.refresh(); |
ikenna1 | 51:2231e2e141b9 | 80 | // Display a random tip |
ikenna1 | 41:e1fa36c0492e | 81 | switch (random) { |
ikenna1 | 41:e1fa36c0492e | 82 | case 0: |
ikenna1 | 41:e1fa36c0492e | 83 | shooter(lcd); |
ikenna1 | 41:e1fa36c0492e | 84 | break; |
ikenna1 | 41:e1fa36c0492e | 85 | case 1: |
ikenna1 | 41:e1fa36c0492e | 86 | seeker(lcd); |
ikenna1 | 41:e1fa36c0492e | 87 | break; |
ikenna1 | 41:e1fa36c0492e | 88 | case 2: |
ikenna1 | 41:e1fa36c0492e | 89 | kestrel(lcd); |
ikenna1 | 41:e1fa36c0492e | 90 | break; |
ikenna1 | 41:e1fa36c0492e | 91 | case 3: |
ikenna1 | 41:e1fa36c0492e | 92 | orion(lcd); |
ikenna1 | 41:e1fa36c0492e | 93 | break; |
ikenna1 | 41:e1fa36c0492e | 94 | case 4: |
ikenna1 | 41:e1fa36c0492e | 95 | imperion(lcd); |
ikenna1 | 41:e1fa36c0492e | 96 | break; |
ikenna1 | 41:e1fa36c0492e | 97 | case 5: |
ikenna1 | 41:e1fa36c0492e | 98 | menu1(lcd); |
ikenna1 | 41:e1fa36c0492e | 99 | break; |
ikenna1 | 41:e1fa36c0492e | 100 | } |
ikenna1 | 39:7824f9080f59 | 101 | lcd.refresh(); |
ikenna1 | 53:3fdc4486f672 | 102 | wait(3); |
ikenna1 | 41:e1fa36c0492e | 103 | |
ikenna1 | 39:7824f9080f59 | 104 | } |
ikenna1 | 39:7824f9080f59 | 105 | |
ikenna1 | 41:e1fa36c0492e | 106 | void Lore::seeker(N5110 &lcd) |
ikenna1 | 39:7824f9080f59 | 107 | { |
ikenna1 | 44:a6a361bea806 | 108 | lcd.drawSprite(33,5,14,17,(int *)seekerSpriteLarge); |
ikenna1 | 39:7824f9080f59 | 109 | lcd.printString(" Seekers ",2,3); |
ikenna1 | 39:7824f9080f59 | 110 | lcd.printString(" explode ",2,4); |
ikenna1 | 39:7824f9080f59 | 111 | lcd.printString(" on impact ",2,5); |
ikenna1 | 39:7824f9080f59 | 112 | } |
ikenna1 | 39:7824f9080f59 | 113 | void Lore::shooter(N5110 &lcd) |
ikenna1 | 39:7824f9080f59 | 114 | { |
ikenna1 | 41:e1fa36c0492e | 115 | lcd.drawSprite(16,2,10,11,(int *)shooterSprite); |
ikenna1 | 41:e1fa36c0492e | 116 | lcd.drawSprite(38,5,10,11,(int *)shooterSprite); |
ikenna1 | 44:a6a361bea806 | 117 | lcd.drawSprite(59,2,10,11,(int *)shooterSprite); |
ikenna1 | 41:e1fa36c0492e | 118 | lcd.printString("Shooters will",2,2); |
ikenna1 | 41:e1fa36c0492e | 119 | lcd.printString(" allign next ",2,3); |
ikenna1 | 41:e1fa36c0492e | 120 | lcd.printString("to you before",2,4); |
ikenna1 | 41:e1fa36c0492e | 121 | lcd.printString(" they fire",2,5); |
ikenna1 | 41:e1fa36c0492e | 122 | } |
ikenna1 | 41:e1fa36c0492e | 123 | void Lore::kestrel(N5110 &lcd) |
ikenna1 | 41:e1fa36c0492e | 124 | { |
ikenna1 | 41:e1fa36c0492e | 125 | lcd.printString("the kestrel's",2,0); |
ikenna1 | 41:e1fa36c0492e | 126 | lcd.printString("fire rate ",2,1); |
ikenna1 | 41:e1fa36c0492e | 127 | lcd.printString("increases the",2,2); |
ikenna1 | 44:a6a361bea806 | 128 | lcd.printString(" closer you",2,3); |
ikenna1 | 44:a6a361bea806 | 129 | lcd.printString("are to danger",2,4); |
ikenna1 | 41:e1fa36c0492e | 130 | } |
ikenna1 | 41:e1fa36c0492e | 131 | void Lore::imperion(N5110 &lcd) |
ikenna1 | 41:e1fa36c0492e | 132 | { |
ikenna1 | 41:e1fa36c0492e | 133 | lcd.printString("the imperion ",2,0); |
ikenna1 | 41:e1fa36c0492e | 134 | lcd.printString(" excels in ",2,1); |
ikenna1 | 41:e1fa36c0492e | 135 | lcd.printString("damage output ",2,2); |
ikenna1 | 41:e1fa36c0492e | 136 | lcd.printString(" but is ",2,3); |
ikenna1 | 41:e1fa36c0492e | 137 | lcd.printString(" immobile ",2,4); |
ikenna1 | 41:e1fa36c0492e | 138 | lcd.printString("during firing ",2,5); |
ikenna1 | 39:7824f9080f59 | 139 | } |
ikenna1 | 41:e1fa36c0492e | 140 | void Lore::orion(N5110 &lcd) |
ikenna1 | 40:90c7a893d513 | 141 | { |
ikenna1 | 41:e1fa36c0492e | 142 | lcd.drawSprite(70,34,10,7,(int *)orionSprite); |
ikenna1 | 41:e1fa36c0492e | 143 | lcd.drawLine(70 + 2,34 + 2,45,30,FILL_BLACK); |
ikenna1 | 41:e1fa36c0492e | 144 | lcd.drawLine(70 + 2,34 + 2,55,48,FILL_BLACK); |
ikenna1 | 41:e1fa36c0492e | 145 | lcd.printString("the orion is",2,0); |
ikenna1 | 41:e1fa36c0492e | 146 | lcd.printString("the only ship",2,1); |
ikenna1 | 41:e1fa36c0492e | 147 | lcd.printString("capable of ",2,2); |
ikenna1 | 41:e1fa36c0492e | 148 | lcd.printString("harming",2,3); |
ikenna1 | 41:e1fa36c0492e | 149 | lcd.printString("escaping ",2,4); |
ikenna1 | 41:e1fa36c0492e | 150 | lcd.printString("enemies ",2,5); |
ikenna1 | 41:e1fa36c0492e | 151 | } |
ikenna1 | 41:e1fa36c0492e | 152 | void Lore::menu1(N5110 &lcd) |
ikenna1 | 41:e1fa36c0492e | 153 | { |
ikenna1 | 41:e1fa36c0492e | 154 | lcd.printString(" you can ",2,0); |
ikenna1 | 41:e1fa36c0492e | 155 | lcd.printString(" switch ships ",2,1); |
ikenna1 | 41:e1fa36c0492e | 156 | lcd.printString(" in the menu ",2,2); |
ikenna1 | 41:e1fa36c0492e | 157 | lcd.printString("some are better",2,3); |
ikenna1 | 41:e1fa36c0492e | 158 | lcd.printString(" for certain ",2,4); |
ikenna1 | 41:e1fa36c0492e | 159 | lcd.printString(" tasks. ",2,5); |
ikenna1 | 41:e1fa36c0492e | 160 | } |
ikenna1 | 53:3fdc4486f672 | 161 | |
ikenna1 | 53:3fdc4486f672 | 162 | void Lore::ships1(N5110 &lcd) |
ikenna1 | 53:3fdc4486f672 | 163 | { |
ikenna1 | 53:3fdc4486f672 | 164 | lcd.printString("You have a",2,0); |
ikenna1 | 53:3fdc4486f672 | 165 | lcd.printString("choice of ",2,1); |
ikenna1 | 53:3fdc4486f672 | 166 | lcd.printString("three ships,",2,2); |
ikenna1 | 53:3fdc4486f672 | 167 | lcd.printString(" press a to ",2,3); |
ikenna1 | 53:3fdc4486f672 | 168 | lcd.printString("fire weapons ",2,4); |
ikenna1 | 53:3fdc4486f672 | 169 | } |
ikenna1 | 53:3fdc4486f672 | 170 | |
ikenna1 | 41:e1fa36c0492e | 171 | void Lore::intro(N5110 &lcd) |
ikenna1 | 41:e1fa36c0492e | 172 | { |
ikenna1 | 41:e1fa36c0492e | 173 | lcd.clear(); |
ikenna1 | 41:e1fa36c0492e | 174 | lcd.refresh(); |
ikenna1 | 40:90c7a893d513 | 175 | lcd.printString("You're tasked",2,0); |
ikenna1 | 40:90c7a893d513 | 176 | lcd.printString(" with holding",2,1); |
ikenna1 | 40:90c7a893d513 | 177 | lcd.printString(" the line ",2,2); |
ikenna1 | 40:90c7a893d513 | 178 | lcd.printString(" from an ",2,3); |
ikenna1 | 40:90c7a893d513 | 179 | lcd.printString("invading army ",2,4); |
ikenna1 | 41:e1fa36c0492e | 180 | lcd.refresh(); |
ikenna1 | 41:e1fa36c0492e | 181 | wait(2); |
ikenna1 | 41:e1fa36c0492e | 182 | lcd.clear(); |
ikenna1 | 41:e1fa36c0492e | 183 | lcd.refresh(); |
ikenna1 | 40:90c7a893d513 | 184 | lcd.printString(" as an ",2,0); |
ikenna1 | 40:90c7a893d513 | 185 | lcd.printString(" expendable ",2,1); |
ikenna1 | 40:90c7a893d513 | 186 | lcd.printString(" asset, ",2,2); |
ikenna1 | 40:90c7a893d513 | 187 | lcd.printString(" you are not ",2,3); |
ikenna1 | 40:90c7a893d513 | 188 | lcd.printString(" expected to",2,4); |
ikenna1 | 40:90c7a893d513 | 189 | lcd.printString(" survive ",2,5); |
ikenna1 | 41:e1fa36c0492e | 190 | lcd.refresh(); |
ikenna1 | 41:e1fa36c0492e | 191 | wait(1); |
ikenna1 | 40:90c7a893d513 | 192 | } |