Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MinerEngine/MinerEngine.cpp@13:3299ab0ff2f0, 2020-05-10 (annotated)
- Committer:
- ZhongYufan
- Date:
- Sun May 10 06:43:16 2020 +0000
- Revision:
- 13:3299ab0ff2f0
- Parent:
- 12:07a9f2140d9b
- Child:
- 14:3731b0791970
tunnel function added
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| ZhongYufan | 1:9c7bb3db32bc | 1 | #include "MinerEngine.h" | 
| ZhongYufan | 1:9c7bb3db32bc | 2 | |
| ZhongYufan | 1:9c7bb3db32bc | 3 | |
| ZhongYufan | 1:9c7bb3db32bc | 4 | MinerEngine::MinerEngine() | 
| ZhongYufan | 1:9c7bb3db32bc | 5 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 6 | |
| ZhongYufan | 1:9c7bb3db32bc | 7 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 8 | |
| ZhongYufan | 1:9c7bb3db32bc | 9 | MinerEngine::~MinerEngine() | 
| ZhongYufan | 1:9c7bb3db32bc | 10 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 11 | |
| ZhongYufan | 1:9c7bb3db32bc | 12 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 13 | |
| ZhongYufan | 1:9c7bb3db32bc | 14 | int sprite[48][84] = { | 
| ZhongYufan | 1:9c7bb3db32bc | 15 | // *10 *20 *30 *40 *50 *60 *70 *80 | 
| ZhongYufan | 1:9c7bb3db32bc | 16 | /*1 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 17 | /*2 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 18 | /*3 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 19 | /*4 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 20 | /*5 */ {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 21 | /*6 */ {1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 22 | /*7 */ {1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 23 | /*8 */ {1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 24 | /*9 */ {1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 25 | /*10 */ {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 26 | /*11 */ {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 27 | /*12 */ {1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 28 | /*13 */ {1,1,1,1,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 29 | /*14 */ {1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 30 | /*15 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 31 | /*16 */ {1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 32 | /*17 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 33 | /*18 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 34 | /*19 */ {1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 35 | /*20 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 36 | /*21 */ {1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 37 | /*22 */ {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 38 | /*23 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 39 | /*24 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 40 | /*25 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 41 | /*26 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 42 | /*27 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 43 | /*28 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,0,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 44 | /*29 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,0,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 45 | /*30 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 46 | /*31 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 47 | /*32 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 48 | /*33 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 49 | /*34 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 50 | /*35 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 51 | /*36 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 52 | /*37 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 53 | /*38 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 54 | /*39 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 55 | /*40 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 56 | /*41 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 57 | /*42 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 58 | /*43 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 59 | /*44 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 60 | /*45 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 61 | /*46 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 62 | /*47 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 63 | /*48 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, | 
| ZhongYufan | 1:9c7bb3db32bc | 64 | }; | 
| ZhongYufan | 1:9c7bb3db32bc | 65 | |
| ZhongYufan | 1:9c7bb3db32bc | 66 | int arrow[8][8] = { | 
| ZhongYufan | 1:9c7bb3db32bc | 67 | {0,0,0,0,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 68 | {0,0,0,0,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 69 | {0,0,0,1,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 70 | {0,0,1,0,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 71 | {0,1,1,1,1,1,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 72 | {0,0,1,0,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 73 | {0,0,0,1,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 74 | {0,0,0,0,0,0,0,0}, | 
| ZhongYufan | 1:9c7bb3db32bc | 75 | }; | 
| ZhongYufan | 1:9c7bb3db32bc | 76 | |
| ZhongYufan | 13:3299ab0ff2f0 | 77 | int man_state1[10][7] = { | 
| ZhongYufan | 13:3299ab0ff2f0 | 78 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 79 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 80 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 81 | {1,0,0,1,0,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 82 | {1,1,1,1,1,1,1}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 83 | {0,0,0,1,0,0,1}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 84 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 85 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 86 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 87 | {0,0,0,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 88 | }; | 
| ZhongYufan | 13:3299ab0ff2f0 | 89 | |
| ZhongYufan | 13:3299ab0ff2f0 | 90 | int man_state2[10][7] = { | 
| ZhongYufan | 13:3299ab0ff2f0 | 91 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 92 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 93 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 94 | {0,0,0,1,0,0,1}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 95 | {1,1,1,1,1,1,1}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 96 | {1,0,0,1,0,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 97 | {0,0,1,1,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 98 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 99 | {0,0,1,0,1,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 100 | {0,0,1,0,0,0,0}, | 
| ZhongYufan | 13:3299ab0ff2f0 | 101 | }; | 
| ZhongYufan | 13:3299ab0ff2f0 | 102 | |
| ZhongYufan | 1:9c7bb3db32bc | 103 | void MinerEngine::init(int winch_width,int winch_height,int gold_num,int monster_speed) | 
| ZhongYufan | 1:9c7bb3db32bc | 104 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 105 | // initialise the game parameters | 
| ZhongYufan | 1:9c7bb3db32bc | 106 | _winch_width = winch_width; | 
| ZhongYufan | 1:9c7bb3db32bc | 107 | _winch_height = winch_height; | 
| ZhongYufan | 1:9c7bb3db32bc | 108 | _gold_num = gold_num; | 
| ZhongYufan | 1:9c7bb3db32bc | 109 | _monster_speed = monster_speed; | 
| ZhongYufan | 1:9c7bb3db32bc | 110 | |
| ZhongYufan | 1:9c7bb3db32bc | 111 | _winch.init(_winch_height,_winch_width); | 
| ZhongYufan | 1:9c7bb3db32bc | 112 | _monster.init(_monster_speed); | 
| ZhongYufan | 1:9c7bb3db32bc | 113 | _claw.init(_winch_width); | 
| ZhongYufan | 1:9c7bb3db32bc | 114 | _gold.init(_gold_num); | 
| ZhongYufan | 1:9c7bb3db32bc | 115 | _s = 1; | 
| ZhongYufan | 12:07a9f2140d9b | 116 | //_s = 1; | 
| ZhongYufan | 1:9c7bb3db32bc | 117 | _state = 0; | 
| ZhongYufan | 12:07a9f2140d9b | 118 | _claw_speed = 1; | 
| ZhongYufan | 2:fe0dbd155c4b | 119 | _catching = 0;//是否正在抓取,x轴锁定 | 
| ZhongYufan | 2:fe0dbd155c4b | 120 | _claw_get = 0;//是否已经碰到金子 | 
| ZhongYufan | 7:5bb5cde8951a | 121 | _monster_collision=0;//是否撞到怪物 | 
| ZhongYufan | 2:fe0dbd155c4b | 122 | _now_score = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 123 | _h = 37; | 
| ZhongYufan | 12:07a9f2140d9b | 124 | |
| ZhongYufan | 10:51870f8e2e1a | 125 | for (int i=0;i<9;i++) { | 
| ZhongYufan | 10:51870f8e2e1a | 126 | _gold_reached_num[i] = 0; | 
| ZhongYufan | 10:51870f8e2e1a | 127 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 128 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 129 | |
| ZhongYufan | 12:07a9f2140d9b | 130 | void MinerEngine::init_unchanged_parameter() { | 
| ZhongYufan | 12:07a9f2140d9b | 131 | _highest_score = 0; | 
| ZhongYufan | 12:07a9f2140d9b | 132 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 133 | |
| ZhongYufan | 1:9c7bb3db32bc | 134 | /////////////// | 
| ZhongYufan | 7:5bb5cde8951a | 135 | void MinerEngine::state_switch(Gamepad &pad, N5110 &lcd) | 
| ZhongYufan | 1:9c7bb3db32bc | 136 | { | 
| ZhongYufan | 7:5bb5cde8951a | 137 | |
| ZhongYufan | 1:9c7bb3db32bc | 138 | while(1){ | 
| ZhongYufan | 1:9c7bb3db32bc | 139 | switch(_state) { | 
| ZhongYufan | 1:9c7bb3db32bc | 140 | case 0: | 
| ZhongYufan | 1:9c7bb3db32bc | 141 | menu(pad,lcd) ; | 
| ZhongYufan | 1:9c7bb3db32bc | 142 | break; | 
| ZhongYufan | 1:9c7bb3db32bc | 143 | case 1: | 
| ZhongYufan | 1:9c7bb3db32bc | 144 | instruction(pad,lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 145 | break; | 
| ZhongYufan | 1:9c7bb3db32bc | 146 | case 2: | 
| ZhongYufan | 1:9c7bb3db32bc | 147 | options(pad,lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 148 | break; | 
| ZhongYufan | 1:9c7bb3db32bc | 149 | case 3: | 
| ZhongYufan | 1:9c7bb3db32bc | 150 | game_run(pad,lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 151 | break; | 
| ZhongYufan | 1:9c7bb3db32bc | 152 | case 4: | 
| ZhongYufan | 1:9c7bb3db32bc | 153 | game_over(pad,lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 154 | break; | 
| ZhongYufan | 1:9c7bb3db32bc | 155 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 156 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 157 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 158 | |
| ZhongYufan | 1:9c7bb3db32bc | 159 | int MinerEngine::get_select(Gamepad &pad) { | 
| ZhongYufan | 1:9c7bb3db32bc | 160 | if ( pad.check_event(Gamepad::Y_PRESSED) == true && _s >0) { | 
| ZhongYufan | 1:9c7bb3db32bc | 161 | _s--; | 
| ZhongYufan | 1:9c7bb3db32bc | 162 | }else if ( pad.check_event(Gamepad::A_PRESSED) == true && _s < 2) { | 
| ZhongYufan | 1:9c7bb3db32bc | 163 | _s++; | 
| ZhongYufan | 1:9c7bb3db32bc | 164 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 165 | return _s; | 
| ZhongYufan | 1:9c7bb3db32bc | 166 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 167 | |
| ZhongYufan | 7:5bb5cde8951a | 168 | void MinerEngine::instruction(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 10:51870f8e2e1a | 169 | lcd.clear(); | 
| ZhongYufan | 12:07a9f2140d9b | 170 | lcd.printString("Joystick is",0,0); | 
| ZhongYufan | 12:07a9f2140d9b | 171 | lcd.printString("used to",0,1); | 
| ZhongYufan | 12:07a9f2140d9b | 172 | lcd.printString("control the",0,2); | 
| ZhongYufan | 12:07a9f2140d9b | 173 | lcd.printString("left & right",0,3); | 
| ZhongYufan | 12:07a9f2140d9b | 174 | lcd.printString("of the winch",0,4); | 
| ZhongYufan | 12:07a9f2140d9b | 175 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 176 | wait(5.0); | 
| ZhongYufan | 12:07a9f2140d9b | 177 | lcd.clear(); | 
| ZhongYufan | 12:07a9f2140d9b | 178 | lcd.printString("Press button",0,0); | 
| ZhongYufan | 12:07a9f2140d9b | 179 | lcd.printString(" A to put",0,1); | 
| ZhongYufan | 12:07a9f2140d9b | 180 | lcd.printString("the claw down",0,2); | 
| ZhongYufan | 12:07a9f2140d9b | 181 | lcd.printString("to catch &",0,3); | 
| ZhongYufan | 12:07a9f2140d9b | 182 | lcd.printString("lift the gold",0,4); | 
| ZhongYufan | 10:51870f8e2e1a | 183 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 184 | wait(5.0); | 
| ZhongYufan | 12:07a9f2140d9b | 185 | lcd.clear(); | 
| ZhongYufan | 12:07a9f2140d9b | 186 | lcd.printString("The most ",0,0); | 
| ZhongYufan | 12:07a9f2140d9b | 187 | lcd.printString("vital thing",0,1); | 
| ZhongYufan | 12:07a9f2140d9b | 188 | lcd.printString("is to try",0,2); | 
| ZhongYufan | 12:07a9f2140d9b | 189 | lcd.printString("to avoid the",0,3); | 
| ZhongYufan | 12:07a9f2140d9b | 190 | lcd.printString("moving monster",0,4); | 
| ZhongYufan | 12:07a9f2140d9b | 191 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 192 | wait(5.0); | 
| ZhongYufan | 12:07a9f2140d9b | 193 | lcd.clear(); | 
| ZhongYufan | 12:07a9f2140d9b | 194 | lcd.printString("The 'c' means",0,0); | 
| ZhongYufan | 12:07a9f2140d9b | 195 | lcd.printString("current score",0,1); | 
| ZhongYufan | 12:07a9f2140d9b | 196 | lcd.printString("and 'h' means",0,2); | 
| ZhongYufan | 12:07a9f2140d9b | 197 | lcd.printString("highest score",0,3); | 
| ZhongYufan | 12:07a9f2140d9b | 198 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 199 | wait(5.0); | 
| ZhongYufan | 12:07a9f2140d9b | 200 | _state = 0; | 
| ZhongYufan | 12:07a9f2140d9b | 201 | |
| ZhongYufan | 7:5bb5cde8951a | 202 | } | 
| ZhongYufan | 7:5bb5cde8951a | 203 | |
| ZhongYufan | 1:9c7bb3db32bc | 204 | void MinerEngine::menu(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 1:9c7bb3db32bc | 205 | |
| ZhongYufan | 1:9c7bb3db32bc | 206 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { | 
| ZhongYufan | 1:9c7bb3db32bc | 207 | lcd.clear(); | 
| ZhongYufan | 1:9c7bb3db32bc | 208 | _s = get_select(pad); // get the selection | 
| ZhongYufan | 1:9c7bb3db32bc | 209 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); | 
| ZhongYufan | 1:9c7bb3db32bc | 210 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); | 
| ZhongYufan | 1:9c7bb3db32bc | 211 | lcd.printString(" Press Y or A",2,1); // print the instruction | 
| ZhongYufan | 12:07a9f2140d9b | 212 | lcd.printString(" Intro",2,2); | 
| ZhongYufan | 12:07a9f2140d9b | 213 | lcd.printString(" Start Game",2,3); | 
| ZhongYufan | 12:07a9f2140d9b | 214 | lcd.printString(" Options",2,4); | 
| ZhongYufan | 1:9c7bb3db32bc | 215 | if ( _s == 1 ) { | 
| ZhongYufan | 12:07a9f2140d9b | 216 | lcd.drawSprite(70,24,8,8,(int *)arrow); | 
| ZhongYufan | 1:9c7bb3db32bc | 217 | }else if ( _s == 2) { | 
| ZhongYufan | 12:07a9f2140d9b | 218 | lcd.drawSprite(70,32,8,8,(int *)arrow); | 
| ZhongYufan | 1:9c7bb3db32bc | 219 | }else if( _s == 0) { | 
| ZhongYufan | 12:07a9f2140d9b | 220 | lcd.drawSprite(70,16,8,8,(int *)arrow); | 
| ZhongYufan | 1:9c7bb3db32bc | 221 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 222 | lcd.refresh(); | 
| ZhongYufan | 7:5bb5cde8951a | 223 | } | 
| ZhongYufan | 7:5bb5cde8951a | 224 | |
| ZhongYufan | 7:5bb5cde8951a | 225 | |
| ZhongYufan | 7:5bb5cde8951a | 226 | if ( _s == 0) { // select the game | 
| ZhongYufan | 1:9c7bb3db32bc | 227 | //select(pad,lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 228 | _state = 1; | 
| ZhongYufan | 7:5bb5cde8951a | 229 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 230 | else if ( _s == 1){ | 
| ZhongYufan | 7:5bb5cde8951a | 231 | _state = 3; | 
| ZhongYufan | 7:5bb5cde8951a | 232 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 233 | else if (_s == 2){ | 
| ZhongYufan | 1:9c7bb3db32bc | 234 | _state = 2; | 
| ZhongYufan | 7:5bb5cde8951a | 235 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 236 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 237 | |
| ZhongYufan | 1:9c7bb3db32bc | 238 | void MinerEngine::options(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 1:9c7bb3db32bc | 239 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { | 
| ZhongYufan | 1:9c7bb3db32bc | 240 | lcd.clear(); | 
| ZhongYufan | 1:9c7bb3db32bc | 241 | int _s = get_select(pad); | 
| ZhongYufan | 1:9c7bb3db32bc | 242 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); | 
| ZhongYufan | 1:9c7bb3db32bc | 243 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); | 
| ZhongYufan | 1:9c7bb3db32bc | 244 | lcd.printString(" Press Y or A",2,1); | 
| ZhongYufan | 1:9c7bb3db32bc | 245 | lcd.printString(" Easy",4,2); | 
| ZhongYufan | 1:9c7bb3db32bc | 246 | lcd.printString(" Normal",4,3); | 
| ZhongYufan | 1:9c7bb3db32bc | 247 | lcd.printString(" Hard",4,4); | 
| ZhongYufan | 1:9c7bb3db32bc | 248 | if ( _s == 0) { | 
| ZhongYufan | 12:07a9f2140d9b | 249 | lcd.drawSprite(60,15,8,8,(int *)arrow); | 
| ZhongYufan | 12:07a9f2140d9b | 250 | _monster.set_speed(1); | 
| ZhongYufan | 1:9c7bb3db32bc | 251 | }else if ( _s == 1 ) { | 
| ZhongYufan | 12:07a9f2140d9b | 252 | lcd.drawSprite(60,24,8,8,(int *)arrow); | 
| ZhongYufan | 12:07a9f2140d9b | 253 | _monster.set_speed(1.5); | 
| ZhongYufan | 1:9c7bb3db32bc | 254 | }else if ( _s == 2) { | 
| ZhongYufan | 12:07a9f2140d9b | 255 | lcd.drawSprite(60,32,8,8,(int *)arrow); | 
| ZhongYufan | 12:07a9f2140d9b | 256 | _monster.set_speed(2); | 
| ZhongYufan | 1:9c7bb3db32bc | 257 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 258 | lcd.refresh(); | 
| ZhongYufan | 1:9c7bb3db32bc | 259 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 260 | _state = 0; | 
| ZhongYufan | 1:9c7bb3db32bc | 261 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 262 | |
| ZhongYufan | 7:5bb5cde8951a | 263 | void MinerEngine::game_run(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 264 | // while(_h>24) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 265 | tunnel(lcd); | 
| ZhongYufan | 13:3299ab0ff2f0 | 266 | //} | 
| ZhongYufan | 13:3299ab0ff2f0 | 267 | |
| ZhongYufan | 12:07a9f2140d9b | 268 | int fps=12; | 
| ZhongYufan | 8:c5969685cf02 | 269 | _monster_collision=0; | 
| ZhongYufan | 8:c5969685cf02 | 270 | while(_monster_collision==0) { | 
| ZhongYufan | 8:c5969685cf02 | 271 | lcd.clear(); | 
| ZhongYufan | 7:5bb5cde8951a | 272 | read_input(pad); | 
| ZhongYufan | 1:9c7bb3db32bc | 273 | update(pad); | 
| ZhongYufan | 1:9c7bb3db32bc | 274 | draw(lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 275 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 276 | wait(1.0f/fps); | 
| ZhongYufan | 7:5bb5cde8951a | 277 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 278 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 279 | ///////////// | 
| ZhongYufan | 2:fe0dbd155c4b | 280 | ///////////// | 
| ZhongYufan | 2:fe0dbd155c4b | 281 | |
| ZhongYufan | 2:fe0dbd155c4b | 282 | void MinerEngine::check_gold_collision(Gamepad &pad)//只检查金子Y<=13 | 
| ZhongYufan | 1:9c7bb3db32bc | 283 | { | 
| ZhongYufan | 2:fe0dbd155c4b | 284 | for (int i=0;i<9;i++) { | 
| ZhongYufan | 10:51870f8e2e1a | 285 | |
| ZhongYufan | 10:51870f8e2e1a | 286 | if (_gold_reached_num[i]==0) { | 
| ZhongYufan | 10:51870f8e2e1a | 287 | Vector2D gold_pos = _gold.get_pos(i); | 
| ZhongYufan | 2:fe0dbd155c4b | 288 | |
| ZhongYufan | 12:07a9f2140d9b | 289 | if (gold_pos.y <= 17) { | 
| ZhongYufan | 10:51870f8e2e1a | 290 | _claw_get=0; | 
| ZhongYufan | 10:51870f8e2e1a | 291 | _now_score++; | 
| ZhongYufan | 12:07a9f2140d9b | 292 | _catching = 0; | 
| ZhongYufan | 10:51870f8e2e1a | 293 | _claw.add_now_score(); | 
| ZhongYufan | 10:51870f8e2e1a | 294 | _gold_reached_num[i] = 1; | 
| ZhongYufan | 10:51870f8e2e1a | 295 | //pad.tone(1500.0,0.5); | 
| ZhongYufan | 10:51870f8e2e1a | 296 | pad.leds_on(); | 
| ZhongYufan | 10:51870f8e2e1a | 297 | wait(0.5); | 
| ZhongYufan | 10:51870f8e2e1a | 298 | pad.leds_off(); | 
| ZhongYufan | 10:51870f8e2e1a | 299 | } | 
| ZhongYufan | 10:51870f8e2e1a | 300 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 301 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 302 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 303 | |
| ZhongYufan | 7:5bb5cde8951a | 304 | void MinerEngine::print_scores(N5110 &lcd) { | 
| ZhongYufan | 7:5bb5cde8951a | 305 | |
| ZhongYufan | 1:9c7bb3db32bc | 306 | // get scores from winchs | 
| ZhongYufan | 2:fe0dbd155c4b | 307 | int highest_score = _winch.get_highest_score(); | 
| ZhongYufan | 2:fe0dbd155c4b | 308 | |
| ZhongYufan | 2:fe0dbd155c4b | 309 | // print to LCD | 
| ZhongYufan | 1:9c7bb3db32bc | 310 | char buffer1[14]; | 
| ZhongYufan | 2:fe0dbd155c4b | 311 | sprintf(buffer1,"%2d",_now_score); | 
| ZhongYufan | 8:c5969685cf02 | 312 | lcd.printString(buffer1,1,0); // font is 8 wide, so leave 4 pixel gape from middle assuming two digits | 
| ZhongYufan | 12:07a9f2140d9b | 313 | lcd.printString("c",WIDTH/2-18,0); | 
| ZhongYufan | 12:07a9f2140d9b | 314 | lcd.printString("h",WIDTH/2+18,0); | 
| ZhongYufan | 11:9da147cd7c18 | 315 | if (_now_score>_highest_score) { | 
| ZhongYufan | 12:07a9f2140d9b | 316 | _highest_score = _now_score; | 
| ZhongYufan | 11:9da147cd7c18 | 317 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 318 | char buffer2[14]; | 
| ZhongYufan | 2:fe0dbd155c4b | 319 | sprintf(buffer2,"%2d",_highest_score); | 
| ZhongYufan | 8:c5969685cf02 | 320 | lcd.printString(buffer2,WIDTH-13,0); | 
| ZhongYufan | 1:9c7bb3db32bc | 321 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 322 | |
| ZhongYufan | 1:9c7bb3db32bc | 323 | void MinerEngine::read_input(Gamepad &pad) | 
| ZhongYufan | 1:9c7bb3db32bc | 324 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 325 | _d = pad.get_direction(); | 
| ZhongYufan | 1:9c7bb3db32bc | 326 | _mag = pad.get_mag(); | 
| ZhongYufan | 8:c5969685cf02 | 327 | if (pad.check_event(Gamepad::A_PRESSED) == true){ | 
| ZhongYufan | 8:c5969685cf02 | 328 | _catching=1; | 
| ZhongYufan | 12:07a9f2140d9b | 329 | _claw.set_velocity(_claw_speed); | 
| ZhongYufan | 8:c5969685cf02 | 330 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 331 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 332 | |
| ZhongYufan | 1:9c7bb3db32bc | 333 | void MinerEngine::draw(N5110 &lcd) | 
| ZhongYufan | 1:9c7bb3db32bc | 334 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 335 | // draw the elements in the LCD buffer | 
| ZhongYufan | 1:9c7bb3db32bc | 336 | // pitch | 
| ZhongYufan | 8:c5969685cf02 | 337 | |
| ZhongYufan | 1:9c7bb3db32bc | 338 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); | 
| ZhongYufan | 1:9c7bb3db32bc | 339 | //horizontal line | 
| ZhongYufan | 1:9c7bb3db32bc | 340 | lcd.drawLine(0,13,WIDTH,13,1); | 
| ZhongYufan | 8:c5969685cf02 | 341 | lcd.drawLine(0,0,WIDTH,0,0); | 
| ZhongYufan | 1:9c7bb3db32bc | 342 | print_scores(lcd); | 
| ZhongYufan | 8:c5969685cf02 | 343 | |
| ZhongYufan | 1:9c7bb3db32bc | 344 | _winch.draw(lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 345 | _claw.draw(lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 346 | _gold.draw(lcd); | 
| ZhongYufan | 1:9c7bb3db32bc | 347 | _monster.draw(lcd); | 
| ZhongYufan | 8:c5969685cf02 | 348 | |
| ZhongYufan | 8:c5969685cf02 | 349 | |
| ZhongYufan | 7:5bb5cde8951a | 350 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 351 | |
| ZhongYufan | 1:9c7bb3db32bc | 352 | void MinerEngine::update(Gamepad &pad) | 
| ZhongYufan | 1:9c7bb3db32bc | 353 | { | 
| ZhongYufan | 9:9a30f26fed81 | 354 | if (_catching==0) { | 
| ZhongYufan | 8:c5969685cf02 | 355 | _winch.update(_d,_mag); | 
| ZhongYufan | 9:9a30f26fed81 | 356 | } | 
| ZhongYufan | 8:c5969685cf02 | 357 | Vector2D winch_pos = _winch.get_pos(); | 
| ZhongYufan | 8:c5969685cf02 | 358 | _claw.update(_d,_mag,winch_pos); | 
| ZhongYufan | 12:07a9f2140d9b | 359 | // wait(0.05); | 
| ZhongYufan | 8:c5969685cf02 | 360 | |
| ZhongYufan | 1:9c7bb3db32bc | 361 | _monster.update(); | 
| ZhongYufan | 12:07a9f2140d9b | 362 | // wait(0.05); | 
| ZhongYufan | 1:9c7bb3db32bc | 363 | _gold.update(); | 
| ZhongYufan | 8:c5969685cf02 | 364 | |
| ZhongYufan | 1:9c7bb3db32bc | 365 | check_monster_collision(pad); | 
| ZhongYufan | 7:5bb5cde8951a | 366 | check_claw_collision(pad); | 
| ZhongYufan | 1:9c7bb3db32bc | 367 | check_gold_collision(pad); | 
| ZhongYufan | 7:5bb5cde8951a | 368 | check_gold_reload(); | 
| ZhongYufan | 1:9c7bb3db32bc | 369 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 370 | |
| ZhongYufan | 1:9c7bb3db32bc | 371 | void MinerEngine::check_monster_collision(Gamepad &pad) | 
| ZhongYufan | 1:9c7bb3db32bc | 372 | { | 
| ZhongYufan | 1:9c7bb3db32bc | 373 | // read current claw attributes | 
| ZhongYufan | 1:9c7bb3db32bc | 374 | Vector2D claw_pos = _claw.get_pos(); | 
| ZhongYufan | 6:3381131afe50 | 375 | int monster_x = _monster.get_pos(); | 
| ZhongYufan | 12:07a9f2140d9b | 376 | float monster_speed = _monster.get_speed(); | 
| ZhongYufan | 12:07a9f2140d9b | 377 | if ((monster_x-claw_pos.x)<=0 | 
| ZhongYufan | 12:07a9f2140d9b | 378 | && (monster_x-claw_pos.x)>(-2) | 
| ZhongYufan | 12:07a9f2140d9b | 379 | && claw_pos.y>=22) { | 
| ZhongYufan | 6:3381131afe50 | 380 | _monster_collision=1; | 
| ZhongYufan | 12:07a9f2140d9b | 381 | // audio feedback | 
| ZhongYufan | 12:07a9f2140d9b | 382 | pad.tone(1500.0,0.3); | 
| ZhongYufan | 12:07a9f2140d9b | 383 | pad.leds_on(); | 
| ZhongYufan | 12:07a9f2140d9b | 384 | wait(0.3); | 
| ZhongYufan | 12:07a9f2140d9b | 385 | pad.leds_off(); | 
| ZhongYufan | 12:07a9f2140d9b | 386 | wait(0.2); | 
| ZhongYufan | 12:07a9f2140d9b | 387 | pad.tone(1500.0,1.0); | 
| ZhongYufan | 12:07a9f2140d9b | 388 | pad.leds_on(); | 
| ZhongYufan | 12:07a9f2140d9b | 389 | wait(1.0); | 
| ZhongYufan | 12:07a9f2140d9b | 390 | pad.leds_off(); | 
| ZhongYufan | 12:07a9f2140d9b | 391 | wait(0.5); | 
| ZhongYufan | 7:5bb5cde8951a | 392 | _state=4; | 
| ZhongYufan | 6:3381131afe50 | 393 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 394 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 395 | |
| ZhongYufan | 2:fe0dbd155c4b | 396 | void MinerEngine::check_claw_collision(Gamepad &pad) | 
| ZhongYufan | 1:9c7bb3db32bc | 397 | { | 
| ZhongYufan | 8:c5969685cf02 | 398 | Vector2D claw_pos = _claw.get_pos();// read current claw attributes | 
| ZhongYufan | 4:71d01af424c1 | 399 | |
| ZhongYufan | 4:71d01af424c1 | 400 | for (int i=0;i<9;i++) { | 
| ZhongYufan | 10:51870f8e2e1a | 401 | if (_gold_reached_num[i]==0) { | 
| ZhongYufan | 4:71d01af424c1 | 402 | Vector2D gold_pos = _gold.get_pos(i); | 
| ZhongYufan | 10:51870f8e2e1a | 403 | if (claw_pos.x-gold_pos.x<5&& | 
| ZhongYufan | 10:51870f8e2e1a | 404 | claw_pos.x-gold_pos.x>-5&& | 
| ZhongYufan | 4:71d01af424c1 | 405 | (claw_pos.y+3)-gold_pos.y>-2) { | 
| ZhongYufan | 4:71d01af424c1 | 406 | _claw_get=1; | 
| ZhongYufan | 4:71d01af424c1 | 407 | _gold.gold_caught(i); | 
| ZhongYufan | 8:c5969685cf02 | 408 | pad.tone(1000.0,0.1); }// audio feedback | 
| ZhongYufan | 10:51870f8e2e1a | 409 | } | 
| ZhongYufan | 4:71d01af424c1 | 410 | } | 
| ZhongYufan | 8:c5969685cf02 | 411 | if (claw_pos.y>HEIGHT-4||_claw_get==1) { | 
| ZhongYufan | 10:51870f8e2e1a | 412 | //_claw_get=0; | 
| ZhongYufan | 12:07a9f2140d9b | 413 | _claw.set_velocity(-(_claw_speed)); | 
| ZhongYufan | 10:51870f8e2e1a | 414 | pad.tone(1500.0,0.1); | 
| ZhongYufan | 12:07a9f2140d9b | 415 | //pad.leds_on(); | 
| ZhongYufan | 12:07a9f2140d9b | 416 | //wait(0.2); | 
| ZhongYufan | 12:07a9f2140d9b | 417 | //pad.leds_off(); | 
| ZhongYufan | 2:fe0dbd155c4b | 418 | } | 
| ZhongYufan | 2:fe0dbd155c4b | 419 | |
| ZhongYufan | 2:fe0dbd155c4b | 420 | if (claw_pos.y<=14) { | 
| ZhongYufan | 8:c5969685cf02 | 421 | _claw.set_velocity(0.0); | 
| ZhongYufan | 12:07a9f2140d9b | 422 | _catching=0; | 
| ZhongYufan | 2:fe0dbd155c4b | 423 | } | 
| ZhongYufan | 2:fe0dbd155c4b | 424 | } | 
| ZhongYufan | 1:9c7bb3db32bc | 425 | |
| ZhongYufan | 8:c5969685cf02 | 426 | |
| ZhongYufan | 1:9c7bb3db32bc | 427 | ///////////////////////////////////////////////////// | 
| ZhongYufan | 1:9c7bb3db32bc | 428 | void MinerEngine::welcome(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 1:9c7bb3db32bc | 429 | |
| ZhongYufan | 1:9c7bb3db32bc | 430 | |
| ZhongYufan | 1:9c7bb3db32bc | 431 | lcd.drawSprite(0,0,48,84,(int *)sprite); | 
| ZhongYufan | 1:9c7bb3db32bc | 432 | lcd.drawRect(4,31,25,9, FILL_WHITE); | 
| ZhongYufan | 1:9c7bb3db32bc | 433 | lcd.drawRect(4,39,31,10, FILL_WHITE); | 
| ZhongYufan | 1:9c7bb3db32bc | 434 | lcd.printString("GOLD",5,4); | 
| ZhongYufan | 1:9c7bb3db32bc | 435 | lcd.printString("MINER",5,5); | 
| ZhongYufan | 1:9c7bb3db32bc | 436 | lcd.drawLine(0,47,84,47,1); | 
| ZhongYufan | 1:9c7bb3db32bc | 437 | lcd.refresh(); | 
| ZhongYufan | 1:9c7bb3db32bc | 438 | |
| ZhongYufan | 12:07a9f2140d9b | 439 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { | 
| ZhongYufan | 12:07a9f2140d9b | 440 | play_music(pad); | 
| ZhongYufan | 13:3299ab0ff2f0 | 441 | /* | 
| ZhongYufan | 13:3299ab0ff2f0 | 442 | int i = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 443 | int n = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 444 | int z = 1; | 
| ZhongYufan | 13:3299ab0ff2f0 | 445 | int j = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 446 | int h = 37; | 
| ZhongYufan | 13:3299ab0ff2f0 | 447 | ///////// | 
| ZhongYufan | 13:3299ab0ff2f0 | 448 | |
| ZhongYufan | 13:3299ab0ff2f0 | 449 | while(1) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 450 | lcd.clear(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 451 | lcd.drawLine(41,24,18,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 452 | lcd.drawLine(42,24,19,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 453 | |
| ZhongYufan | 13:3299ab0ff2f0 | 454 | lcd.drawLine(43,24,66,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 455 | lcd.drawLine(42,24,65,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 456 | |
| ZhongYufan | 13:3299ab0ff2f0 | 457 | |
| ZhongYufan | 13:3299ab0ff2f0 | 458 | lcd.drawCircle(42,24,2+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 459 | lcd.drawCircle(42,24,12+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 460 | lcd.drawCircle(42,24,22+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 461 | lcd.drawCircle(42,24,32+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 462 | |
| ZhongYufan | 13:3299ab0ff2f0 | 463 | |
| ZhongYufan | 13:3299ab0ff2f0 | 464 | for(int k=0;k<23;k++) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 465 | lcd.drawLine(42-k,25+k,42+k,25+k,0); | 
| ZhongYufan | 13:3299ab0ff2f0 | 466 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 467 | |
| ZhongYufan | 13:3299ab0ff2f0 | 468 | lcd.drawLine(38-n,24+n,46+n,24+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 469 | lcd.drawLine(38-n,25+n,46+n,25+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 470 | |
| ZhongYufan | 13:3299ab0ff2f0 | 471 | lcd.drawLine(30-n,32+n,54+n,32+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 472 | lcd.drawLine(30-n,33+n,54+n,33+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 473 | |
| ZhongYufan | 13:3299ab0ff2f0 | 474 | lcd.drawLine(22-n,40+n,62+n,40+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 475 | lcd.drawLine(22-n,41+n,62+n,41+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 476 | |
| ZhongYufan | 13:3299ab0ff2f0 | 477 | j++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 478 | if (j==5) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 479 | j=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 480 | |
| ZhongYufan | 13:3299ab0ff2f0 | 481 | if (h>24) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 482 | h--; | 
| ZhongYufan | 13:3299ab0ff2f0 | 483 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 484 | else { | 
| ZhongYufan | 13:3299ab0ff2f0 | 485 | h=24; | 
| ZhongYufan | 13:3299ab0ff2f0 | 486 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 487 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 488 | |
| ZhongYufan | 13:3299ab0ff2f0 | 489 | if(z==1) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 490 | lcd.drawSprite(39,h,10,7,(int *)man_state2); | 
| ZhongYufan | 13:3299ab0ff2f0 | 491 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 492 | |
| ZhongYufan | 13:3299ab0ff2f0 | 493 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 494 | if(z==-1) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 495 | lcd.drawSprite(39,h,10,7,(int *)man_state1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 496 | |
| ZhongYufan | 13:3299ab0ff2f0 | 497 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 498 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 499 | |
| ZhongYufan | 13:3299ab0ff2f0 | 500 | i++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 501 | n++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 502 | z=-z; | 
| ZhongYufan | 13:3299ab0ff2f0 | 503 | if (i==10) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 504 | i=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 505 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 506 | if (n==8) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 507 | n=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 508 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 509 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 510 | wait(0.1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 511 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 512 | /////// | 
| ZhongYufan | 13:3299ab0ff2f0 | 513 | */ | 
| ZhongYufan | 12:07a9f2140d9b | 514 | } | 
| ZhongYufan | 12:07a9f2140d9b | 515 | screen_rollup(pad,lcd); | 
| ZhongYufan | 12:07a9f2140d9b | 516 | loading(pad,lcd); | 
| ZhongYufan | 2:fe0dbd155c4b | 517 | } | 
| ZhongYufan | 2:fe0dbd155c4b | 518 | |
| ZhongYufan | 5:58932f73fc35 | 519 | void MinerEngine::game_over(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 11:9da147cd7c18 | 520 | lcd.clear(); | 
| ZhongYufan | 12:07a9f2140d9b | 521 | if ( pad.check_event(Gamepad::START_PRESSED) == false | 
| ZhongYufan | 5:58932f73fc35 | 522 | && pad.check_event(Gamepad::JOY_PRESSED) == false | 
| ZhongYufan | 5:58932f73fc35 | 523 | && pad.check_event(Gamepad::BACK_PRESSED) == false) | 
| ZhongYufan | 5:58932f73fc35 | 524 | { | 
| ZhongYufan | 5:58932f73fc35 | 525 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); | 
| ZhongYufan | 5:58932f73fc35 | 526 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); | 
| ZhongYufan | 12:07a9f2140d9b | 527 | lcd.printString("!!Game Over!!",2,1); | 
| ZhongYufan | 12:07a9f2140d9b | 528 | lcd.printString("[back][start]",2,3); | 
| ZhongYufan | 12:07a9f2140d9b | 529 | lcd.printString(" menu restart",2,4); | 
| ZhongYufan | 11:9da147cd7c18 | 530 | lcd.refresh(); | 
| ZhongYufan | 12:07a9f2140d9b | 531 | play_music(pad); | 
| ZhongYufan | 5:58932f73fc35 | 532 | } | 
| ZhongYufan | 5:58932f73fc35 | 533 | |
| ZhongYufan | 5:58932f73fc35 | 534 | if (pad.check_event(Gamepad::START_PRESSED) == true | 
| ZhongYufan | 5:58932f73fc35 | 535 | ||pad.check_event(Gamepad::JOY_PRESSED) == true) { | 
| ZhongYufan | 12:07a9f2140d9b | 536 | init(12,6,9,1); | 
| ZhongYufan | 7:5bb5cde8951a | 537 | _state=3; | 
| ZhongYufan | 12:07a9f2140d9b | 538 | |
| ZhongYufan | 5:58932f73fc35 | 539 | } | 
| ZhongYufan | 5:58932f73fc35 | 540 | |
| ZhongYufan | 5:58932f73fc35 | 541 | if (pad.check_event(Gamepad::BACK_PRESSED) == true) { | 
| ZhongYufan | 12:07a9f2140d9b | 542 | init(12,6,9,1);; | 
| ZhongYufan | 7:5bb5cde8951a | 543 | _state=0; | 
| ZhongYufan | 12:07a9f2140d9b | 544 | |
| ZhongYufan | 5:58932f73fc35 | 545 | } | 
| ZhongYufan | 5:58932f73fc35 | 546 | } | 
| ZhongYufan | 5:58932f73fc35 | 547 | |
| ZhongYufan | 2:fe0dbd155c4b | 548 | void MinerEngine::play_music(Gamepad &pad) { | 
| ZhongYufan | 1:9c7bb3db32bc | 549 | pad.tone(370,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 550 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 551 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 552 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 553 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 554 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 555 | pad.tone(554,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 556 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 557 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 558 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 559 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 560 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 561 | pad.tone(493,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 562 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 563 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 564 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 565 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 566 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 567 | pad.tone(554,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 568 | wait(0.2); | 
| ZhongYufan | 1:9c7bb3db32bc | 569 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 570 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 571 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 572 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 573 | pad.tone(659,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 574 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 575 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 576 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 577 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 578 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 579 | pad.tone(554,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 580 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 581 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 582 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 583 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 584 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 585 | pad.tone(493,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 586 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 587 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 588 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 589 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 590 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 591 | pad.tone(554,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 592 | wait(0.35); | 
| ZhongYufan | 1:9c7bb3db32bc | 593 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 594 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 595 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 596 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 597 | pad.tone(554,0.15); | 
| ZhongYufan | 1:9c7bb3db32bc | 598 | wait(0.2); | 
| ZhongYufan | 1:9c7bb3db32bc | 599 | pad.leds_on(); | 
| ZhongYufan | 1:9c7bb3db32bc | 600 | wait(0.02); | 
| ZhongYufan | 1:9c7bb3db32bc | 601 | pad.leds_off(); | 
| ZhongYufan | 1:9c7bb3db32bc | 602 | wait(0.02); | 
| ZhongYufan | 2:fe0dbd155c4b | 603 | } | 
| ZhongYufan | 3:f894534ca2d1 | 604 | |
| ZhongYufan | 3:f894534ca2d1 | 605 | void MinerEngine::screen_rollup(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 3:f894534ca2d1 | 606 | |
| ZhongYufan | 3:f894534ca2d1 | 607 | lcd.clear(); | 
| ZhongYufan | 3:f894534ca2d1 | 608 | for (int i=0;i<47;i++) { | 
| ZhongYufan | 3:f894534ca2d1 | 609 | for(int m=0;m<47;m++) { | 
| ZhongYufan | 3:f894534ca2d1 | 610 | for (int n=0;n<84;n++) { | 
| ZhongYufan | 3:f894534ca2d1 | 611 | sprite[m][n]= sprite[m+1][n]; | 
| ZhongYufan | 3:f894534ca2d1 | 612 | sprite[47][n]= 0; | 
| ZhongYufan | 3:f894534ca2d1 | 613 | } | 
| ZhongYufan | 3:f894534ca2d1 | 614 | } | 
| ZhongYufan | 3:f894534ca2d1 | 615 | lcd.drawSprite(0,0,48,84,(int *)sprite); | 
| ZhongYufan | 3:f894534ca2d1 | 616 | lcd.refresh(); | 
| ZhongYufan | 3:f894534ca2d1 | 617 | wait(0.1); | 
| ZhongYufan | 3:f894534ca2d1 | 618 | } | 
| ZhongYufan | 3:f894534ca2d1 | 619 | } | 
| ZhongYufan | 3:f894534ca2d1 | 620 | |
| ZhongYufan | 3:f894534ca2d1 | 621 | void MinerEngine::loading(Gamepad &pad, N5110 &lcd) { | 
| ZhongYufan | 3:f894534ca2d1 | 622 | |
| ZhongYufan | 3:f894534ca2d1 | 623 | lcd.printString("Loading....",12,0); | 
| ZhongYufan | 3:f894534ca2d1 | 624 | lcd.drawRect(20,12,50,10,FILL_TRANSPARENT); | 
| ZhongYufan | 3:f894534ca2d1 | 625 | |
| ZhongYufan | 3:f894534ca2d1 | 626 | for (int i=0;i<50;i++) { | 
| ZhongYufan | 3:f894534ca2d1 | 627 | lcd.drawRect(20,12,i,10,FILL_BLACK); | 
| ZhongYufan | 3:f894534ca2d1 | 628 | lcd.refresh(); | 
| ZhongYufan | 3:f894534ca2d1 | 629 | wait(0.05); | 
| ZhongYufan | 3:f894534ca2d1 | 630 | } | 
| ZhongYufan | 3:f894534ca2d1 | 631 | lcd.printString("Complete!",20,4); | 
| ZhongYufan | 3:f894534ca2d1 | 632 | lcd.refresh(); | 
| ZhongYufan | 3:f894534ca2d1 | 633 | wait(0.8); | 
| ZhongYufan | 3:f894534ca2d1 | 634 | lcd.clear(); | 
| ZhongYufan | 3:f894534ca2d1 | 635 | } | 
| ZhongYufan | 7:5bb5cde8951a | 636 | void MinerEngine::check_gold_reload() { | 
| ZhongYufan | 8:c5969685cf02 | 637 | int gold_left = _gold.get_left_num(); | 
| ZhongYufan | 8:c5969685cf02 | 638 | if (gold_left<1) { | 
| ZhongYufan | 4:71d01af424c1 | 639 | _gold.init(9); | 
| ZhongYufan | 10:51870f8e2e1a | 640 | for (int i=0;i<9;i++) { | 
| ZhongYufan | 10:51870f8e2e1a | 641 | _gold_reached_num[i] = 0; | 
| ZhongYufan | 4:71d01af424c1 | 642 | } | 
| ZhongYufan | 10:51870f8e2e1a | 643 | } | 
| ZhongYufan | 4:71d01af424c1 | 644 | } | 
| ZhongYufan | 7:5bb5cde8951a | 645 | |
| ZhongYufan | 13:3299ab0ff2f0 | 646 | void MinerEngine::tunnel(N5110 &lcd) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 647 | int i = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 648 | int n = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 649 | int z = 1; | 
| ZhongYufan | 13:3299ab0ff2f0 | 650 | int j = 0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 651 | |
| ZhongYufan | 13:3299ab0ff2f0 | 652 | ///////// | 
| ZhongYufan | 13:3299ab0ff2f0 | 653 | |
| ZhongYufan | 13:3299ab0ff2f0 | 654 | while(_h>24) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 655 | lcd.clear(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 656 | lcd.drawLine(41,24,18,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 657 | lcd.drawLine(42,24,19,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 658 | |
| ZhongYufan | 13:3299ab0ff2f0 | 659 | lcd.drawLine(43,24,66,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 660 | lcd.drawLine(42,24,65,47,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 661 | |
| ZhongYufan | 13:3299ab0ff2f0 | 662 | |
| ZhongYufan | 13:3299ab0ff2f0 | 663 | lcd.drawCircle(42,24,2+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 664 | lcd.drawCircle(42,24,12+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 665 | lcd.drawCircle(42,24,22+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 666 | lcd.drawCircle(42,24,32+i,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 667 | |
| ZhongYufan | 13:3299ab0ff2f0 | 668 | |
| ZhongYufan | 13:3299ab0ff2f0 | 669 | for(int k=0;k<23;k++) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 670 | lcd.drawLine(42-k,25+k,42+k,25+k,0); | 
| ZhongYufan | 13:3299ab0ff2f0 | 671 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 672 | |
| ZhongYufan | 13:3299ab0ff2f0 | 673 | lcd.drawLine(38-n,24+n,46+n,24+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 674 | lcd.drawLine(38-n,25+n,46+n,25+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 675 | |
| ZhongYufan | 13:3299ab0ff2f0 | 676 | lcd.drawLine(30-n,32+n,54+n,32+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 677 | lcd.drawLine(30-n,33+n,54+n,33+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 678 | |
| ZhongYufan | 13:3299ab0ff2f0 | 679 | lcd.drawLine(22-n,40+n,62+n,40+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 680 | lcd.drawLine(22-n,41+n,62+n,41+n,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 681 | |
| ZhongYufan | 13:3299ab0ff2f0 | 682 | j++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 683 | if (j==5) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 684 | j=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 685 | |
| ZhongYufan | 13:3299ab0ff2f0 | 686 | if (_h>24) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 687 | _h--; | 
| ZhongYufan | 13:3299ab0ff2f0 | 688 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 689 | else { | 
| ZhongYufan | 13:3299ab0ff2f0 | 690 | _h=24; | 
| ZhongYufan | 13:3299ab0ff2f0 | 691 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 692 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 693 | |
| ZhongYufan | 13:3299ab0ff2f0 | 694 | if(z==1) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 695 | lcd.drawSprite(39,_h,10,7,(int *)man_state2); | 
| ZhongYufan | 13:3299ab0ff2f0 | 696 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 697 | |
| ZhongYufan | 13:3299ab0ff2f0 | 698 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 699 | if(z==-1) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 700 | lcd.drawSprite(39,_h,10,7,(int *)man_state1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 701 | |
| ZhongYufan | 13:3299ab0ff2f0 | 702 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 703 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 704 | |
| ZhongYufan | 13:3299ab0ff2f0 | 705 | i++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 706 | n++; | 
| ZhongYufan | 13:3299ab0ff2f0 | 707 | z=-z; | 
| ZhongYufan | 13:3299ab0ff2f0 | 708 | if (i==10) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 709 | i=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 710 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 711 | if (n==8) { | 
| ZhongYufan | 13:3299ab0ff2f0 | 712 | n=0; | 
| ZhongYufan | 13:3299ab0ff2f0 | 713 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 714 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 715 | wait(0.1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 716 | |
| ZhongYufan | 13:3299ab0ff2f0 | 717 | } | 
| ZhongYufan | 13:3299ab0ff2f0 | 718 | lcd.clear(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 719 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 720 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); | 
| ZhongYufan | 13:3299ab0ff2f0 | 721 | lcd.printString(" WE ARE",2,1); | 
| ZhongYufan | 13:3299ab0ff2f0 | 722 | lcd.printString(" IN THE",2,2); | 
| ZhongYufan | 13:3299ab0ff2f0 | 723 | lcd.printString(" MINE!!!",2,3); | 
| ZhongYufan | 13:3299ab0ff2f0 | 724 | lcd.refresh(); | 
| ZhongYufan | 13:3299ab0ff2f0 | 725 | wait(2); | 
| ZhongYufan | 13:3299ab0ff2f0 | 726 | } |