質問編集履歴

2

ソースコードを途中まで載せました

2019/10/21 07:52

投稿

kihara-shinken
kihara-shinken

スコア6

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  ソースコード http://www13.plala.or.jp/kymats/program/SPACE_TETRIS/SPACE_TETRIS.cpp
42
42
 
43
- #include<windows.h>
43
+ ```#include<windows.h>
44
44
 
45
45
  #include<time.h>
46
46
 
@@ -232,6 +232,10 @@
232
232
 
233
233
 
234
234
 
235
+ コード
236
+
237
+ ```
238
+
235
239
 
236
240
 
237
241
  以下長いので省略させていただきます。全様は文字数オーバーしてしまいますので、リンクを参照しっただければ幸いです。申し訳ございません。

1

ソースコードを一部載せました

2019/10/21 07:52

投稿

kihara-shinken
kihara-shinken

スコア6

test CHANGED
File without changes
test CHANGED
@@ -40,8 +40,6 @@
40
40
 
41
41
  ソースコード http://www13.plala.or.jp/kymats/program/SPACE_TETRIS/SPACE_TETRIS.cpp
42
42
 
43
-
44
-
45
43
  #include<windows.h>
46
44
 
47
45
  #include<time.h>
@@ -58,7 +56,185 @@
58
56
 
59
57
  #define ERR -1
60
58
 
59
+
60
+
61
+ // ピースの横と縦のマス数
62
+
63
+ #define PIECE_WIDTH 4
64
+
65
+ #define PIECE_HEIGHT 4
66
+
67
+
68
+
69
+ /* フィールドの横と縦のマス数 */
70
+
71
+ #define FIELD_WIDTH 14
72
+
73
+ #define FIELD_HEIGHT 24
74
+
75
+
76
+
77
+ // マスのピクセル数
78
+
79
+ #define CELL_WIDTH 20
80
+
81
+ #define CELL_HEIGHT 20
82
+
83
+
84
+
85
+ /* MovePiece 関数の引数 */
86
+
87
+ #define PIECE_LEFT 2
88
+
89
+ #define PIECE_RIGHT 4
90
+
91
+ #define PIECE_DOWN 8
92
+
93
+
94
+
95
+ BYTE field[FIELD_WIDTH][FIELD_HEIGHT]={0}; /* ゲームフィールド */
96
+
97
+ DWORD fColor[FIELD_WIDTH][FIELD_HEIGHT]={0}; // ゲームフィールドの色
98
+
99
+
100
+
101
+ BYTE piece[PIECE_WIDTH][PIECE_HEIGHT]={0}; /* 現在移動中のブロック */
102
+
103
+ DWORD pColor[PIECE_WIDTH][PIECE_HEIGHT]={0}; // 現在移動中のブロックの色
104
+
105
+ POINT location={0,0}; /* 現在移動中のブロックの位置 */
106
+
107
+
108
+
109
+ BYTE next[PIECE_WIDTH][PIECE_HEIGHT]={0}; // 次のブロック
110
+
111
+ DWORD nColor[PIECE_WIDTH][PIECE_HEIGHT]={0}; // 次のブロックの色
112
+
113
+
114
+
115
+ DWORD score=0; // 獲得点数
116
+
117
+ DWORD playTime=0; // プレイ時間
118
+
119
+ BOOL GameOver=FALSE; // TRUE となるのはゲームオーバーからリプレイするまで
120
+
121
+
122
+
123
+ #define MUTEX_NAME "MutexObject of SPACE TETRIS" // ミューテックスオブジェクトの名前
124
+
125
+
126
+
127
+ #define WM_MUTEX WM_APP // メインスレッドにミューテックスの所有権取得を要求するメッセージ
128
+
129
+
130
+
131
+ /* piece[][] 内のブロックの最上部の位置を返す */
132
+
133
+ int GetPieceTop(void)
134
+
135
+ {
136
+
137
+ for(int y=0;y<PIECE_HEIGHT;y++){
138
+
139
+ for(int x=0;x<PIECE_WIDTH;x++){
140
+
61
- 以下長いので省略させていただきます。
141
+ if(piece[x][y]){
142
+
143
+ return y;
144
+
145
+ }
146
+
147
+ }
148
+
149
+ }
150
+
151
+ return ERR;
152
+
153
+ }
154
+
155
+
156
+
157
+ /* piece[][] 内のブロックの最下部の位置を返す */
158
+
159
+ int GetPieceBottom(void)
160
+
161
+ {
162
+
163
+ for(int y=PIECE_HEIGHT-1;y>=0;y--){
164
+
165
+ for(int x=0;x<PIECE_WIDTH;x++){
166
+
167
+ if(piece[x][y]){
168
+
169
+ return y;
170
+
171
+ }
172
+
173
+ }
174
+
175
+ }
176
+
177
+ return ERR;
178
+
179
+ }
180
+
181
+
182
+
183
+ /* piece[][] 内のブロックの左側の位置を返す */
184
+
185
+ int GetPieceLeft(void)
186
+
187
+ {
188
+
189
+ for(int x=0;x<PIECE_WIDTH;x++){
190
+
191
+ for(int y=0;y<PIECE_HEIGHT;y++){
192
+
193
+ if(piece[x][y]){
194
+
195
+ return x;
196
+
197
+ }
198
+
199
+ }
200
+
201
+ }
202
+
203
+ return ERR;
204
+
205
+ }
206
+
207
+
208
+
209
+ /* piece[][] 内のブロックの右側の位置を返す */
210
+
211
+ int GetPieceRight(void)
212
+
213
+ {
214
+
215
+ for(int x=PIECE_WIDTH-1;x>=0;x--){
216
+
217
+ for(int y=0;y<PIECE_HEIGHT;y++){
218
+
219
+ if(piece[x][y]){
220
+
221
+ return x;
222
+
223
+ }
224
+
225
+ }
226
+
227
+ }
228
+
229
+ return ERR;
230
+
231
+ }
232
+
233
+
234
+
235
+
236
+
237
+ 以下長いので省略させていただきます。全様は文字数オーバーしてしまいますので、リンクを参照しっただければ幸いです。申し訳ございません。
62
238
 
63
239
 
64
240