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

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

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

Линии в консоле нарисовать - C++

16.05.2012, 23:33. Просмотров 701. Ответов 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <windows.h>
#include <iostream.h>
 
#define Mes printf(Rus("Для управления используйте клавиши: W - вверх, A - влево, S - вниз, D - вправо.\n Для выхода из игры нажмите клавишу Q.\n\n"));
char bufRus[256];
char* Rus(const char* text){
    CharToOem(text,bufRus);
   return bufRus;
   };
int** field;
int emptyCell_x, emptyCell_y;
 
void init()
{
    int x,y, i,j;
    srand(time(NULL));
    for(i=1; i<=15;)
    {
        x=rand()%4; y=rand()%4;
        if(field[x][y] == 0) field[x][y] = i++;
    }
 
    for(i=0; i<4; i++)
        for(j=0; j<4; j++)
            if(field[j][i] == 0)
            {
                emptyCell_x=j; emptyCell_y = i; return;
            }
 
}
 
void printField()
{
    int i,j;
    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
            if(field[j][i]) printf("%3d", field[j][i]);
            else printf("  _");
        printf("\n\n");
    }
    printf("\n\n");
}
 
int notEndYet()
{
    int i,j;
    for(i=0; i<3; i++)
        for(j=0; j<4; j++)
            if(field[j][i] != 4*i+j+1) return 0;
    if(field[0][3] != 13) return 0;
 
    return 1;
 
}
int move()
{
    char c;
 
    while(1)
    {
        c = getch();
        switch(c)
        {
            case 'a':
                if(emptyCell_x==0)
                {
                    printf("");
                    break;
                }
                else
                {
                    field[emptyCell_x][emptyCell_y] = field[emptyCell_x-1][emptyCell_y];
                    field[emptyCell_x-1][emptyCell_y] = 0;
                    emptyCell_x--;
                    return 1;
                }
            case 'w':
                if(emptyCell_y==0)
                {
                    printf("");
                    break;
                }
                else
                {
                    field[emptyCell_x][emptyCell_y] = field[emptyCell_x][emptyCell_y-1];
                    field[emptyCell_x][emptyCell_y-1] = 0;
                    emptyCell_y--;
                    return 2;
                }
            case 'd':
                if(emptyCell_x==3)
                {
                    printf("");
                    break;
                }
                else
                {
                    field[emptyCell_x][emptyCell_y] = field[emptyCell_x+1][emptyCell_y];
                    field[emptyCell_x+1][emptyCell_y] = 0;
                    emptyCell_x++;
                    return 3;
                }
            case 's':
                if(emptyCell_y==3)
                {
                    printf("");
                    break;
                }
                else
                {
                    field[emptyCell_x][emptyCell_y] = field[emptyCell_x][emptyCell_y+1];
                    field[emptyCell_x][emptyCell_y+1] = 0;
                    emptyCell_y++;
                    return 4;
                }
            case 'q': exit(1);
            default: Mes
        }
    }
}
 
int main()
{
     int vb;
      while (vb!=2)
{
     printf(Rus("__________________________ ИГРА ПЯТНАШКИ ___________________________\n"));
     printf(Rus(" Игра Пятнашки.\n\n1 - Новая игра\n2 - Выход\n\n"));
     scanf("%d",&vb);
 
     if (vb==1)
     {
          system("cls");
          field = (int**)calloc(4, sizeof(int*));
      for(int i=0; i<4; i++)
 
        field[i] = (int*)calloc(4, sizeof(int));
 
      do    init(); while(notEndYet());
      Mes
      printField();
 
          while(!notEndYet())
    {
        move();
        printField();
        printf("\n\n\n\n\n\n\n");
    }
 
    printf(Rus("\nВы выиграли!\n")); getch();
        system("cls");
      }
}
}

Добавлено через 19 часов 55 минут
В общем еще такой вопрос. Хочу чтобы было что то типо игового поля. Как без курсоса наросовать линии между цифрами? А то че то ниче не получается а заново все с курсосом писать некогда. Помогите пожалуйста

Добавлено через 25 минут
Помогитеее

Добавлено через 2 часа 6 минут
народ помогитеееее

Добавлено через 2 часа 37 минут
люди хелп

Добавлено через 32 секунды
люди хелп
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2012, 23:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Линии в консоле нарисовать (C++):

Движение в консоле - C++
подскажите как реализовать движение в консоле, мне нужна игра гоночки типа тетриса!

Позиционирование в консоле - C++
Добрый вечер госопда, есть фрагмент кода: #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include...

Color в консоле - C++
Где ошибка? #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ clsscr; textbackground(GREEN); ...

Цвет текста в консоле - C++
Кто может подсказать, как в потоке cout вывести текст другим цветом. прбывал подключать &lt;conio.h&gt; textcolor(); почему то не...

Аналог меню в консоле - C++
Привет всем Обращаюсь к Вам за помощью Помогите, плиз, разобраться с задачкой. Мне надо сделать аналог менюшки в консоле - верхняя...

Размер шрифта в консоле - C++
Можно ли как то изменить размер шрифта в консоле или сам щрифт средствами С++???

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2012, 23:33
Привет! Вот еще темы с ответами:

Украинский язык в консоле - C++
Всем привет! Буду очень признателен если поможите реализовать нормальный вид сообщений в консоле на украинском языке, а не крякозяблами!:)

GCC, кириллица в консоле - C++
Есть код на языке C++. Я его компилирую в win7 через cmd с помощью команды g++. Компилятор установлен с помощью MiniGW. После компиляции...

Крестики-нолики в консоле - C++
Недавно начал изучать С + + и для небольшой практики хотел написать что-то, типа крестики-нолики. программа должна отображать игру в виде...

Украинские шрифты в консоле - C++
Тема аналог Русские шрифты в консоле Токо что делать если мне надо Укр. setlocale (LC_ALL, &quot;&quot;); решает проблему с Рус. шрифтом но вот...


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

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

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