Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.58/26: Рейтинг темы: голосов - 26, средняя оценка - 4.58
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
1

Написать игру «Пятнашки»

31.03.2017, 16:53. Просмотров 5255. Ответов 33
Метки нет (Все метки)

Кто знает, как на С++ написать игру «Пятнашки». Программа должна содержать следующие функции:
  1. заполнение поля числами в случайном порядке;
  2. поиск позиции нуля;
  3. перестановки элементов(Left, Right, Up, Down);
  4. проверки окончания игры.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2017, 16:53
Ответы с готовыми решениями:

Подправьте игру пятнашки
Решил написать игрушку 15-ки я хочу что бы прога содержала такие функции: заполнение поля...

Есть заготовка для кода в игру пятнашки. Нужно подописывать функции (котовые после майна)
#include <stdio.h> #include<conio.h> #include <stdlib.h> #include <windows.h> #include <math.h>...

Си++ написать игру
Помогите пожалуйста написать игру на си ++,четыре в ряд!Очень нужно!!!!!

написать игру
Всем привет! Нужна срочно самая простая игра, написанная на С/С++, можно Паскаль. Сам персонаж...

Написать игру
Нужно игру написать,где есть три монстра и два игрока,у каждого игрока по 3 монстра. Эти монстры...

33
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
13.04.2017, 20:18  [ТС] 21
DevAlone, Если бы я мог сам сделать, я бы на форуме и не писал.
0
rikimaru2013
C++ 2D
2503 / 1167 / 353
Регистрация: 30.11.2013
Сообщений: 3,764
13.04.2017, 20:24 22
Цитата Сообщение от Mohan Посмотреть сообщение
Я нуб, поэтому критика приветствуется.
по коду видно, что вы не нуб и у вас есть опыт) Обманщик)
0
rangerx
1953 / 1562 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
14.04.2017, 01:32 23
Цитата Сообщение от Mohan Посмотреть сообщение
Я нуб, поэтому критика приветствуется.
1. std::vector здесь не нужен совершенно. Простой двумерный массив (с которым при необходимости можно работать как с одномерным) в данном случае использовать намного проще и удобнее.
2. Заводить отдельное "итоговое" игровое поле для определения конца игры довольно сомнительное решение. При использовании простого двумерного массива всё элементарно сводится к проверке массива на упорядоченность (что можно сделать, например, с помощью std::is_sorted).
3. Генерация: std::iota+std::shuffle, мне кажется, справились бы гараздо лучше.
4. В 21-й строке название типа можно убрать.
5. Конструкция в строках 64-66
1
Mohan
76 / 39 / 23
Регистрация: 03.02.2017
Сообщений: 104
Завершенные тесты: 2
14.04.2017, 12:15 24
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
по коду видно, что вы не нуб
Тогда скажем так - Я далеко не профессионал!
0
14.04.2017, 12:15
rikimaru2013
C++ 2D
2503 / 1167 / 353
Регистрация: 30.11.2013
Сообщений: 3,764
14.04.2017, 14:42 25
Цитата Сообщение от rangerx Посмотреть сообщение
4. В 21-й строке название типа можно убрать.
А приведите пример как вы собрались убрать название типа ?
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
14.04.2017, 15:58 26
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
А приведите пример как вы собрались убрать название типа ?
в этом вопросе какая-то ловушка кроется? имеет в виду обычную безымянную структуру вроде

C++
1
2
3
4
struct {
    unsigned x;
    unsigned y;
} zero;
0
rikimaru2013
C++ 2D
2503 / 1167 / 353
Регистрация: 30.11.2013
Сообщений: 3,764
14.04.2017, 16:03 27
Цитата Сообщение от Babysitter Посмотреть сообщение
в этом вопросе какая-то ловушка кроется?
Конечно кроется! Потеря имени структуру не очень хорошо для С++. Что мы выигрываем делая структуру безымянной ?
0
Babysitter
239 / 134 / 52
Регистрация: 23.11.2015
Сообщений: 392
Завершенные тесты: 2
14.04.2017, 16:08 28
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Что мы выигрываем делая структуру безымянной ?
не набираем лишние символы. если это название больше нигде не используется, то может и ладно.
в крайнем случае можно подкостылить через decltype(zero)
1
rangerx
1953 / 1562 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
14.04.2017, 19:05 29
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
А приведите пример как вы собрались убрать название типа ?
имя структуры, если вам так больше нравится.
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Конечно кроется! Потеря имени структуру не очень хорошо для С++.
Не знаю как там для C++, а для программиста "потерять" имя структуры в данном случае весьма удобно
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Что мы выигрываем делая структуру безымянной ?
А что теряем?
1
rikimaru2013
C++ 2D
2503 / 1167 / 353
Регистрация: 30.11.2013
Сообщений: 3,764
14.04.2017, 19:27 30
Цитата Сообщение от rangerx Посмотреть сообщение
для программиста "потерять" имя структуры в данном случае весьма удобно
Цитата Сообщение от rangerx Посмотреть сообщение
А что теряем?
Терять абстракцию координата [x,y] ? В целом ваши доводы железные и мне очень тяжело спорить с Вами. Я явно тут бессилен! Надеюсь я когда-то дойду до уничтожения сущности координаты [x,y] нет
0
Photofenix
62 / 62 / 39
Регистрация: 18.11.2016
Сообщений: 554
Завершенные тесты: 1
14.04.2017, 20:27 31
Я не до конца помню правила игры, но ради развлечения написал код
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
#include <Windows.h>
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
void set(int arr[3][3]){
    short count (0);
    for (int i(0); i!=3; i++){
        for (int j(0); j!=3; j++){
            if (count == 0){
                arr[i][j] = 0;
                count ++;
                continue;
            }
            else
            arr[i][j] = count++;
        }
    }
};
 
void coordinates (int arr[3][3], char ch, int x, int y){
     switch (ch){
     case 's':
         for (int i(0); i!=3; i++){
             for (int j(0); j!=3; j++){
                 if (i == x & y == j){
                     int temp = arr[i][j];
                     arr[i][j] = arr[i+1][j];
                     arr[i+1][j] = temp;
                 }
             }
         }
        break;
        case 'w':
         for (int i(0); i!=3; i++){
             for (int j(0); j!=3; j++){
                 if (i == x & y == j){
                     int temp = arr[i][j];
                     arr[i][j] = arr[i-1][j];
                     arr[i-1][j] = temp;
                 }
             }
         }
        break;
        case 'a':
         for (int i(0); i!=3; i++){
             for (int j(0); j!=3; j++){
                 if (i == x & y == j){
                     int temp = arr[i][j];
                     arr[i][j] = arr[i][j-1];
                     arr[i][j-1] = temp;
                 }
             }
         }
        break;
        case 'd':
         for (int i(0); i!=3; i++){
             for (int j(0); j!=3; j++){
                 if (i == x & y == j){
                     int temp = arr[i][j];
                     arr[i][j] = arr[i][j+1];
                     arr[i][j+1] = temp;
                 }
             }
         }
        break;
     }
}
 
int main(){
 
    int arr[3][3];
    set (arr);
 
    
while (true){
    short x (0), y(0);
    char ch;
 
    for (int i(0); i!=3; i++){
        for (int j(0); j!=3; j++){
 
            if (arr[i][j] == 0){
                x = i;
                y = j;
            }
            std::cout << arr[i][j] << ' ';
        }   std::cout << std::endl;
    }
 
    std::cout << "w/s/a/d: ";
    ch = getch();
 
    coordinates (arr, ch, x, y);
    system ("cls");
}
 
 
    system ("pause");
    return NULL;
}
1
rikimaru2013
C++ 2D
2503 / 1167 / 353
Регистрация: 30.11.2013
Сообщений: 3,764
14.04.2017, 20:48 32
Photofenix, главное в вашем коде сразу не нажать вверх))))))))))))))))))))))))
0
Photofenix
62 / 62 / 39
Регистрация: 18.11.2016
Сообщений: 554
Завершенные тесты: 1
14.04.2017, 20:58 33
Да - да
0
AntonyHub
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 3
16.12.2018, 00:01 34
Вот моя реализация пятнашек в динамике, кому интересно чекните
https://github.com/kremlev404/New_C_project/blob/master/**15shki.c
0
16.12.2018, 00:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2018, 00:01

Написать игру кости
Здравствуйте, стоит вот такая задача: &quot;Основное правило игры в кости — каждый игрок по очереди...

Написать игру гонки
Прошу написать игру гонки в которые играют на тетырсе!

Написать игру «Питон»
Написать игру «Питон». Игрок управляет питоном, который постоянно движется. На карте по одному...


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

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

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