Маpио
М
- 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
- #1
Помогите дописать тетрис в командной строке) с+

тренируюсь и что то подвис на моменте. По идеи он должен быть легкий но не тудЫ
Смотрел youtube и что то на меня кликнуло с экрана и появилось жуткое хотенье написать свой тетрис. Не знаю к чему это) Ну вот что есть - то есть!
Нужна функция которая ставит фигуры друг на друга) Можно сделать так функция если фигура добралась до '#' то все элементы стакана становятся '*' Для того что бы потом я мог написать поиск на 4 элемента который будет передавать кординаты на +1 или - 1 переменным что бы фигуры смещать вправо или влево. Эта функция должна иметь условия что бы фигуры не падали в друг дружку)) И были от друг друга полностью не зависимые!
Первая функция в коде это вот это то что и начал писать даже так ее и назвал конверсия) Ну вот что то не идет)
Возможно у вас есть другие предложения с удовольствием выслушаю)
Вот код что есть сейчас оно все работает и запускается можете скомпилить и проверить.

тренируюсь и что то подвис на моменте. По идеи он должен быть легкий но не тудЫ

Нужна функция которая ставит фигуры друг на друга) Можно сделать так функция если фигура добралась до '#' то все элементы стакана становятся '*' Для того что бы потом я мог написать поиск на 4 элемента который будет передавать кординаты на +1 или - 1 переменным что бы фигуры смещать вправо или влево. Эта функция должна иметь условия что бы фигуры не падали в друг дружку)) И были от друг друга полностью не зависимые!
Первая функция в коде это вот это то что и начал писать даже так ее и назвал конверсия) Ну вот что то не идет)
Возможно у вас есть другие предложения с удовольствием выслушаю)
Вот код что есть сейчас оно все работает и запускается можете скомпилить и проверить.
#include <iostream>
#include <windows.h>
#include <locale>
#include <time.h>
#include <conio.h>
using namespace std;
int e = 9;
int a = 10;
int b = 11;
int c = 12;
int d = 13;
int object = 1;
int iteration = 0;
int *ptrIteration = &iteration;
char array[20][20];
int x = 5000, y = 0;
int *ptrX = &x;
int i;
int *ptrI = &i;
int score = 0;
void conversionFigures(){
for(int z = 0; z < 20; z++){
for(int k = 0; k < 20; k++){
if(array[z][k]){
}
}
}
}
void cube(){ // Куб
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI + 1][a] = '#';
array[*ptrI + 1] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI + 1][a] && array[*ptrI + 1] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
}
}
}
void curveL(){ // Клюшка Левая
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI][c] = '#';
array[*ptrI + 1][a] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI][c] && array[*ptrI + 1][a] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI - 1][c] = ' ';
}
}
}
void curveR(){ // Клюшка Правая
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI][c] = '#';
array[*ptrI + 1][c] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI][c] && array[*ptrI + 1][c] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI - 1][c] = ' ';
}
}
}
void stick(){ // Палка
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI][c] = '#';
array[*ptrI][d] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI][c] && array[*ptrI][d] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI - 1][c] = ' ';
array[*ptrI - 1][d] = ' ';
}
}
}
void figureL(){ // Фигура Левая
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI + 1][e] = '#';
array[*ptrI + 1][a] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI + 1][e] && array[*ptrI + 1][a] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI][e] = ' ';
}
}
}
void figureR(){ //Фигура правая
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI + 1] = '#';
array[*ptrI + 1][c] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI + 1] && array[*ptrI + 1][c] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI][c] = ' ';
}
}
}
void Figurine(){ // Фигура с носом
for(*ptrI = 0; *ptrI < *ptrIteration; i++){
array[*ptrI][a] = '#';
array[*ptrI] = '#';
array[*ptrI][c] = '#';
array[*ptrI + 1] = '#';
if(array[*ptrI][a] && array[*ptrI] && array[*ptrI][c] && array[*ptrI + 1] == '#'){
array[*ptrI - 1][a] = ' ';
array[*ptrI - 1] = ' ';
array[*ptrI - 1][c] = ' ';
}
}
}
void figures(){
switch(object){
case 1:{
Figurine();
break;
}
case 2:{
figureR();
break;
}
case 3:{
figureL();
break;
}
case 4:{
stick();
break;
}
case 5:{
curveR();
break;
}
case 6:{
curveL();
break;
}
case 7:{
cube();
break;
}
}
}
void keyboard(){
char key=0;
if(kbhit())
{
key=getch();
switch (key)
{
case 75:{
break;
}
case 77:{
break;
}
}
}
}
void map(){
for (int z = 0; z < 20; z++){
for (int k = 0; k < 20; k++){
if((k==0||k==19||k == 19)&&(z!=0||z!=19)){
array[z][k]='*';
}
if(z==19){
array[z][k]='*';
}
}
}
}
void display(){
map();
keyboard();
figures();
for (int z = 0; z < 20; z++){
for (int k = 0; k < 20; k++){
cout << array[z][k];
}
cout << endl;
}
Sleep(*ptrX);
system("CLS");
*ptrIteration +=1; // смещение фигур вниз
if(*ptrIteration == 19){
*ptrIteration = 0;
score++;
if(object == 7){
object = 1;
}
object++;
}
}
int main(){
HWND hwnd;
char Title[1024];
GetConsoleTitle(Title, 1024);
hwnd=FindWindow(NULL, Title);
MoveWindow(hwnd,0,0,196,400,TRUE);
setlocale(LC_ALL, "RUS");
cout << endl;
cout << "Введите сложность:\nот 1 до 50" << endl;
cin >> y;
if(y <= 50){
*ptrX = *ptrX / y;
}
if(y > 50){
cout << "Не верное значение ! " << endl;
exit(0);
}
for(;{
display();
cout << "Счет: " << score << endl;
}
cin.get();
return 0;
}