Show all pieces and their rotations in demo mode. Need to add FLIP.
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
build/apad: main.cpp
 | 
					build/apad: main.cpp Pieces.cpp
 | 
				
			||||||
	mkdir -p build
 | 
						mkdir -p build
 | 
				
			||||||
	clang++ -g -O0 -std=c++17 -o $@ $? -lncurses
 | 
						clang++ -g -O0 -std=c++17 -o $@ $^ -lncurses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm build/apad
 | 
						rm build/apad
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										239
									
								
								Pieces.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								Pieces.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,239 @@
 | 
				
			|||||||
 | 
					#include "Pieces.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <curses.h>
 | 
				
			||||||
 | 
					#include <stdlib.h> // exit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned PieceHeight(const Piece &piece)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						switch(piece)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						case PIECE_ONE:
 | 
				
			||||||
 | 
							return 2;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_TWO:
 | 
				
			||||||
 | 
							return 4;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_THREE:
 | 
				
			||||||
 | 
							return 4;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_FOUR:
 | 
				
			||||||
 | 
							return 3;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_FIVE:
 | 
				
			||||||
 | 
							return 3;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_SIX:
 | 
				
			||||||
 | 
							return 2;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_SEVEN:
 | 
				
			||||||
 | 
							return 3;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_EIGHT:
 | 
				
			||||||
 | 
							return 3;
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						std::exit(-1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DrawPiece(const Piece &piece, int y, int x, Rotation rotation)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						attrset(COLOR_PAIR(static_cast<int>(piece) % 8));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						switch(piece)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						case PIECE_ONE:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_TWO:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 4, "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x + 2, "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_THREE:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x,     "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 6, "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_FOUR:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 4, "[]"); // same line as above
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 4, "[]"); // same line as above
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_FIVE:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x + 2, "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 4, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_SIX:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 4, "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 3, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_SEVEN:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 2, "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 2, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case PIECE_EIGHT:
 | 
				
			||||||
 | 
							switch(rotation)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
							case ROTATION_NONE:
 | 
				
			||||||
 | 
								mvaddstr(y,     x + 4, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 4, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_90:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[][][]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_180:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x,     "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x,     "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case ROTATION_270:
 | 
				
			||||||
 | 
								mvaddstr(y,     x,     "[][][]");
 | 
				
			||||||
 | 
								mvaddstr(y + 1, x + 4, "[]");
 | 
				
			||||||
 | 
								mvaddstr(y + 2, x + 4, "[]");
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							std::exit(-1);
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								Pieces.h
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Pieces.h
									
									
									
									
									
								
							@@ -3,6 +3,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum Rotation {
 | 
				
			||||||
 | 
						ROTATION_NONE,
 | 
				
			||||||
 | 
						ROTATION_90,
 | 
				
			||||||
 | 
						ROTATION_180,
 | 
				
			||||||
 | 
						ROTATION_270,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define NUM_PIECES 8
 | 
					#define NUM_PIECES 8
 | 
				
			||||||
typedef uint8_t Piece; // only need literally 8, not 8 bits, but hey.
 | 
					typedef uint8_t Piece; // only need literally 8, not 8 bits, but hey.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -20,7 +27,7 @@ typedef uint8_t Piece; // only need literally 8, not 8 bits, but hey.
 | 
				
			|||||||
 *   []
 | 
					 *   []
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PIECE_TRHEE 0x2
 | 
					#define PIECE_THREE 0x2
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 *     []
 | 
					 *     []
 | 
				
			||||||
 *     []
 | 
					 *     []
 | 
				
			||||||
@@ -62,6 +69,8 @@ typedef uint8_t Piece; // only need literally 8, not 8 bits, but hey.
 | 
				
			|||||||
 *   [][][]
 | 
					 *   [][][]
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DrawPiece(const Piece &piece, int y, int x);
 | 
					unsigned PieceHeight(const Piece &piece);
 | 
				
			||||||
 | 
					void DrawPiece(const Piece &piece, int y, int x,
 | 
				
			||||||
 | 
					               Rotation rotation = Rotation::ROTATION_NONE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										51
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								main.cpp
									
									
									
									
									
								
							@@ -3,12 +3,16 @@
 | 
				
			|||||||
#include <curses.h>
 | 
					#include <curses.h>
 | 
				
			||||||
#include <signal.h>
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <set>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <unordered_map>
 | 
					#include <unordered_map>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void finish(int sig);
 | 
					static void finish(int sig);
 | 
				
			||||||
void init_colors();
 | 
					void init_colors();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DEBUG:
 | 
				
			||||||
 | 
					void DemoPieces();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char *argv[])
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	initscr();             /* initialize the curses library */
 | 
						initscr();             /* initialize the curses library */
 | 
				
			||||||
@@ -20,6 +24,29 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
	if(has_colors())
 | 
						if(has_colors())
 | 
				
			||||||
		init_colors();
 | 
							init_colors();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(argc == 2 && std::string(argv[1]) == "-d")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							DemoPieces();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							finish(0);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// for each piece passed in, render it:
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							int y = 1;
 | 
				
			||||||
 | 
							for(auto input = 1; input < argc; ++input)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								try {
 | 
				
			||||||
 | 
									Piece piece = 0b111 & std::atoi(argv[input]);
 | 
				
			||||||
 | 
									DrawPiece(piece, y, 1);
 | 
				
			||||||
 | 
									y += PieceHeight(piece) + 1;
 | 
				
			||||||
 | 
								} catch(const std::exception &e) {
 | 
				
			||||||
 | 
									mvaddstr(y, 1, "std::atoi error");
 | 
				
			||||||
 | 
									y += 2;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int num = 0;
 | 
						int num = 0;
 | 
				
			||||||
	while(true)
 | 
						while(true)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -36,6 +63,7 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
static void finish(int sig)
 | 
					static void finish(int sig)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	endwin();
 | 
						endwin();
 | 
				
			||||||
 | 
						std::exit(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void init_colors()
 | 
					void init_colors()
 | 
				
			||||||
@@ -56,3 +84,26 @@ void init_colors()
 | 
				
			|||||||
	init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
 | 
						init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
 | 
				
			||||||
	init_pair(7, COLOR_WHITE,   COLOR_BLACK);
 | 
						init_pair(7, COLOR_WHITE,   COLOR_BLACK);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DemoPieces()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						std::set rotations = {
 | 
				
			||||||
 | 
							Rotation::ROTATION_NONE,
 | 
				
			||||||
 | 
							Rotation::ROTATION_90,
 | 
				
			||||||
 | 
							Rotation::ROTATION_180,
 | 
				
			||||||
 | 
							Rotation::ROTATION_270,
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						for(auto rotation : rotations)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							clear();
 | 
				
			||||||
 | 
							int x = 1;
 | 
				
			||||||
 | 
							for(auto i = 0; i < 8; ++i)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								Piece piece = static_cast<Piece>(i);
 | 
				
			||||||
 | 
								DrawPiece(piece, 2, x, rotation);
 | 
				
			||||||
 | 
								x += 12;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							getch();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						move(8, 2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user