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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Doberman214
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 20
#1

Заполнение массива координатами - C++

10.06.2012, 22:28. Просмотров 367. Ответов 0
Метки нет (Все метки)

Нужно заполнить массив координатами связи мостов.Когда герой наступает на кнопку изображенную на карте, найти в массиве координаты и вызвать процедуру рисования моста.

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
//#include "console.h"
 
#define MR 24
#define MC 78
 
#define MAN 'H'
#define KEY '*'
#define GND 'Ы'
enum { KCR=13, KESC=27, KUP=72, KLFT=75, KRT=77, KDN=80 };
 
//HANDLE hConsole; // for Win32
char a[MR][MC],b[MR][MC],fname[13]="map.txt";
FILE *f1,*f2;
int k,nr,nc, fig;
typedef struct{
  int ky,kx,my,mx;
  char dir;
} tlink;
tlink z[50];
 
void fcolor(char s, char b){
    textcolor(s);
    textbackground(b);
}
 
void select(char z){
        int i,j;
        gotoxy(1,1);
    for(i=0; i<nr; i++){ // reading matrix
        for (j=0; j<nc; j++) {
        if (a[i][j]=='1') {
            fcolor(3,12);
            cprintf(" ");
        }
        else if (a[i][j]==z) {
            fcolor(1,14);
            cprintf("%c", a[i][j]);
        }
        else if (a[i][j]>='H' && a[i][j]<='O') {
            fcolor(1,7);
            cprintf("%c", a[i][j]);
        }
        else {
            fcolor(1,2);
            cprintf("%c", a[i][j]);
        }
            }//-for j
            cprintf("\r\n");
    }//-for i
}//-select
 
void    draw(){
    int i,j;
    for(i=0; i<nr; i++){
        for(j=0; j<nc; j++){
            gotoxy(j+1,i+1);
            cprintf("%c", a[i][j]);
        }
    }
}
 
void most(){
 
 
}
 
 
 
int main(){
//    init_console();
    fcolor(7,0);
    int i,j,x,y,c,p;
    char s[101],dir[8],sym;
    printf("”*©« Є*авл: ");
    scanf("%s",fname);
    f1=fopen(fname,"rt");
//  f2=fopen("map.txt","wt");
    if (!f1) printf("FILE not open!!!\n");
    fflush(f1);
    k=fscanf(f1,"%i%i", &nr, &nc);
    fgets(s,100,f1); // Line feed
//  cprintf("NR = %i   NC = %i\n", nr, nc);
    if (k<2) {
        printf("ERROR input format: Field's size not found!\n");
        return 1;
    }
    if (nr>MR){
        printf("ERROR input data: Count of rows too large\n");
        return 1;
    }
    if (nc>MC){
        printf("ERROR input data: Count of columns too large\n");
        return 1;
    }
    clrscr();
    for(i=0; i<nr; i++){ // reading matrix
        fgets(s,100,f1);
        for (j=0; j<strlen(s)-1; j++) {  //  j < nc
            if (s[j]==MAN) { x=j+1; y=i+1; a[i][j]=' '; }
            else {  a[i][j]=s[j]; }
        }
    }//-for i
    fclose(f1);
 
    draw();
    gotoxy(x,y); cprintf("H");
    gotoxy(1,23);
 
    for (;;){ //--- Basic Cycle
        char z=getch();     if (!z) z=getch();
//      printf("@%X@\n",z);
        p=0;
        switch (z){
            case KESC:  return 0;
            case KLFT: // Key LEFT
                if (a[y-1][x-2]==GND || a[y-1][x-2]==KEY){
                    gotoxy(x,y); cprintf("Ы");
                      //    a[y-1][x-1]=GND;
                    x--;
                    gotoxy(x,y); cprintf("%c",MAN);
                    if (a[y-1][x-1]==KEY) {
                        gotoxy(1,23);
                        printf("Ќ*©¤Ґ* Є«оз");
                        most(x,y);
                    }
                }
                break;
            case KRT: // Key RIGHT
                 if (a[y-1][x+0]==GND || a[y-1][x-0]==KEY){
                    gotoxy(x,y); cprintf("Ы");
                    a[y-1][x-1]==GND;
                    x++;
                    gotoxy(x,y); cprintf("%c",MAN);
                    if (a[y-1][x-1]==KEY) {
                        gotoxy(1,23);
                        printf("Ќ*©¤Ґ* Є«оз");
                    }
                }
 
 
                break;
            case KUP:  // gotoxy(1,20); cprintf("Up",0x4E);break;
                    if (a[y-2][x-1]==GND || a[y-2][x-1]==KEY){
                    gotoxy(x,y); cprintf("Ы");
                    a[y-1][x-1]==GND;
                    y--;
                    gotoxy(x,y); cprintf("%c",MAN);
                    if (a[y-1][x-1]==KEY) {
                        gotoxy(1,23);
                        printf("Ќ*©¤Ґ* Є«оз");
                    }
                }
                break;
            case KDN:
                    if (a[y+0][x-1]==GND || a[y+0][x-1]==KEY){
                    gotoxy(x,y); cprintf("Ы");
                    a[y-1][x-1]=GND;
                    y++;
                    gotoxy(x,y); cprintf("%c",MAN);
                    if (a[y-1][x-1]==KEY) {
                        gotoxy(1,23);
                        printf("Ќ*©¤Ґ* Є«оз");
                    }
                }
                break;
            default: ;
        }//-switch    z
        gotoxy(1,23);
    }//-basic cycle
//   system("pause");
//   getch();
     return 0;
}
0
Вложения
Тип файла: txt map.txt (1.4 Кб, 9 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2012, 22:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение массива координатами (C++):

ввод двумерного массива,ввод размерности массива,заполнение массива случайными числами - C++
#include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;stdlib.h&quot; #include &quot;math.h&quot; void main() { setlocale(LC_ALL,&quot;rus&quot;); int...

Заполнение массива значениями из символьного массива - C++
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а...

Обработка массива точек заданных их целочисленными координатами - C++
а) удалить все точки из IV четверти б) подсчитать количество точек, лежащих на прямой y = x в) найти все наименее удалённые от начала...

Может ли пешка выполнить ход из клетки с координатами (X1, Y1) в клетку с координатами (X2, Y2)? - C++
Здрасти, я вам тут задачку принес. Напомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные...

Заполнение массива - C++
Привет народ! Очень нужна помощь срочно!(( Вот такое вот задание: 1,Составьте программу заполнения массива А(N,N) нулями и единицами в...

Заполнение массива - C++
Здравствуйте, помогите пожалуйста заполнить массив таким образом, или хотя бы подскажите алгоритм) Заранее благодарен...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2012, 22:28
Привет! Вот еще темы с ответами:

Заполнение массива - C++
Доброго времени суток всем:) Прошу немного помощи. Дали лабу на заполнение массива, а я не умею составлять формулы и не нашёл никакой...

Заполнение массива - C++
Добрый день. Объясните,пожалуйста, следующий момент. Есть кусок кода: void fill(struct member *p){ printf(&quot;\nFill your name...

Заполнение массива - C++
Даны числа от 0 до 15 (включительно), нужно записать их в одномерный массив в рандомном порядке, при этом числа не должны повторяться ...

Заполнение массива - C++
Я нахожу макс., мин. и среднее арифметическое элементов массива. Мне надо их значения записать во второй массив(новый). Как это сделать?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru