Форум программистов, компьютерный форум CyberForum.ru

Игра пятнашки при нажатии ''4'' неправильно работает - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шахматная доска, найти ошибки в коде http://www.cyberforum.ru/cpp-beginners/thread1156667.html
Здравствуйте, нужно вывести шахматную доску, у меня куча ошибок и я не могу никак сделать // Шахматная доска #include <graphics.h> #include <stdio.h> #include <conio.h> #define PATHTODRIVER "c: WborlandcWbgiW" // шахматная доска void doska() int xO = 100, // координаты левого верхнего угла доски уО = 100; int x,у; // координаты левого верхнего угла клетки
C++ В прямоугольной матрице определить количество столбцов, которые содержат только числа одного знака В прямоугольной матрице определить количество столбцов,которые содержат только числа одного знака(положительные или отрицательные) и не содержат нулевых элементов http://www.cyberforum.ru/cpp-beginners/thread1156666.html
C++ Преобразования типов. Определить тип переменной
Всем привет Недавно начал изучать язык C++ по книжке "Объектно-ориентированное программирование в C++" и там есть тема (Преобразование типов) вот пример из этой темы: #include <iostream> using namespace std; int main() {
Посчитать сумму четных элементов двумерной матрицы C++
Посчитать сумму четных элементов двумерной матрицы МхN сформировать матрицу из случайных чисел и вывести на экран
C++ Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец http://www.cyberforum.ru/cpp-beginners/thread1156648.html
Составить программу, которая превращает массивы А и В следующим образом: для каждого из них все отрицательные элементы одномерного массива переместить на начало массива, а все положительные - в конец массива с сохранением порядка следования. Инициализацию, вывод элементов массива, их обработку организовать в отдельных функциях.
C++ В отдельной функции организовать подсчет суммы элементов матрицы, удовлетворяющих условию Составить программу, в которой сформировать прямоугольную таблицу С с n × m целых чисел в динамической памяти, в отдельной функции организовать подсчет суммы элементов, удовлетворяющих условию -4<c<=5 подробнее

Показать сообщение отдельно
proech
10 / 10 / 2
Регистрация: 10.07.2013
Сообщений: 150
25.04.2014, 00:36  [ТС]     Игра пятнашки при нажатии ''4'' неправильно работает
уже можно стрелочками правда ещё не доделал что -бы числа рандомно выводились
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#include <cstdio>
#include <conio.h>
#include <Windows.h>
#include <stdlib.h>
int main(){
    /////////////////резервируем память
    
    int ** MainArg =new int*[4];
    for (int i = 0;i<4;i++)
    MainArg[i]=new int[4];
    ////////////заполняем массив значениями
    
    int *SubMas = new int[16];
    SubMas[0]=0;
    int i;
    for ( i = 0;i<16;i++){
   SubMas[i] = i;       
        }
        
        i=1;
        while(i<16){
            int a = 0+rand() %15;
            if(SubMas[a] = 0){
                SubMas[a]=i;
                ++i;
            }
            i++;
            }
int Number = 1;
for (int i = 0;i<4;i++){
    for (int j = 0;j<4;j++){
        
        if( Number<16){
        
        MainArg[i][j]=Number++;}
        else {
        MainArg[i][j]=0; Number++;}
}
}
 
                         for (int i = 0;i<4;i++)
{
    
    for (int j = 0;j<4;j++){
        
        if(MainArg[i][j]!=0){
        
        printf(" %3d ",MainArg[i][j]);
    }else {
        printf("     ");
    }
        
    }
    printf("\n");
    }
    
    
    while(true){
        char k = getch();
    
        //влево
        if(k==75){
            
            for (int i =0;i<4;i++){
                for (int j = 0;j<4;j++){
                    if(i>=0)
                    if(MainArg[i][j]==0){ 
                    if(j<3){
                        int A = MainArg[i][j];
                        MainArg[i][j]=MainArg[i][j+1];
                        MainArg[i][j+1]=A;
                    
                        break;
                    }
                }
                    
                    
                    
                }
                
            }
            
            
            
        }
        //вправо
        if(k==77){
            for (int i =0;i<4;i++){
                
                for (int  j = 0;j<4;j++){
                    if(j>0)
                    if(MainArg[i][j]==0){
                        int A = MainArg[i][j];
                        MainArg[i][j]=MainArg[i][j-1];
                        MainArg[i][j-1]=A;
                        break;
                    }
                    
                    
                }
            }
            
            
            
        }
        
        //вниз
        if(k==80){
            
            for (int i = 0;i<4;i++){
                
                for (int j = 0;j<4;j++){
                    if(i>0)
                    if(MainArg[i][j] == 0){
                        int A = MainArg[i][j];
                        MainArg[i][j] = MainArg[i-1][j];
                        MainArg[i-1][j]=A;
                        break;
                        
                        
                    }
                    
                }
            }
            
            
            
            
            
        }
        //вверх
        if(k==72){
            int b = 1;
            for (int i = 0;i<4;i++){
            for (int j = 0;j<4;j++){
                if(i<3){
                if(b<2){
                
                        if(MainArg[i][j]==0){
                        int A = MainArg[i][j];
                        MainArg[i][j] = MainArg[i+1][j];
                        MainArg[i+1][j] = A;
                        b++;
                            break;break;
                    }
                    
                
            }
                }
                    
                    
                }
            }
            
            
        }
        
        COORD C = {0,0};
        SetConsoleCursorPosition(GetStdHandle((DWORD)-11),C);
                                 for (int i = 0;i<4;i++)
{
    
    for (int j = 0;j<4;j++){
        
        if(MainArg[i][j]!=0){
        
        printf(" %3d ",MainArg[i][j]);
    }else {
        printf("     ");
    }
        
    }
    printf("\n");
    }
    
        
        
        
        
        
        
}
 
for (int i = 0;i<4;i++)
delete[]MainArg[i];
delete[]MainArg;
return EXIT_SUCCESS;
}
Добавлено через 17 минут
как наполнить массив неповторяющимися случайными значениями ?
 
Текущее время: 05:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru