Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
3 / 1 / 1
Регистрация: 29.11.2012
Сообщений: 435
1

ООП C++ Нужна идея для игры, которая для экзамена

09.07.2019, 12:42. Просмотров 3104. Ответов 19
Метки нет (Все метки)

Здравствуйте.
Есть такое задание:
Написать игру. В игре управлять каким-либо объектом, например, персонажем. Должны быть другие объекты, управляемые компьютером, и взаимодействие персонажа с ними. Игра должна быть достаточно функциональной (инвентарь, диалоги, передвижение, взаимодействия и т.д.).

Нужна идея или подсказка, какую игру в соответствии с заданием лучше написать. Потому что какую конкретно игру писать, в задании не указано. Нужна просто идея или пример другой игры, которая не замороченная и над которой долго думать не нужно. Если у вас есть идеи, то напишите.
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2019, 12:42
Ответы с готовыми решениями:

Нужна идея для 3д игры на пк?
Всем начинаюшим програмистам игр на пк обрасчаться Есть очень хорошая идея для игры на пк Идея...

Идея программы для тренировки ООП
Подскажите пожалуйста какую программу написать новичку в python, чтобы закрепить знания ООП. Так...

Нужна идея по реализации принципов ООП
Есть программа Калькулятор , написанная на языке С++,выполняющий " +,-,*,/,степень,корень и...

Идея для игры
Хочу сделать онлайн игру на подобии nebo.mobi ,zamok.mobi, mdragons.mobi.То есть нужно переходить...

19
354 / 222 / 119
Регистрация: 25.06.2019
Сообщений: 822
09.07.2019, 13:02 2
Несколько небольших игрушек
0
3 / 1 / 1
Регистрация: 29.11.2012
Сообщений: 435
09.07.2019, 13:05  [ТС] 3
Графика не нужна, только консольная игра. Или графика в консоли.

Добавлено через 1 минуту
Цитата Сообщение от Pvt Посмотреть сообщение
Несколько небольших игрушек
Хорошие идеи, но только для графики. А мы графику еще не проходили. Мне нужны идеи для консольных игр без графики или с графикой в консоли с использованием ООП.
0
354 / 222 / 119
Регистрация: 25.06.2019
Сообщений: 822
09.07.2019, 13:14 4
консольный морской бой
0
3 / 1 / 1
Регистрация: 29.11.2012
Сообщений: 435
09.07.2019, 13:15  [ТС] 5
Цитата Сообщение от Pvt Посмотреть сообщение
консольный морской бой
Уже делал. Нужно что то другое.
0
329 / 144 / 56
Регистрация: 17.10.2015
Сообщений: 580
09.07.2019, 13:21 6
Anonymous4722, игра "Жизнь" https://ru.wikipedia.org/wiki/... 1%8C%C2%BB
1
578 / 136 / 56
Регистрация: 20.08.2017
Сообщений: 244
09.07.2019, 13:22 7
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Написать игру. В игре управлять каким-либо объектом, например, персонажем. Должны быть другие объекты, управляемые компьютером, и взаимодействие персонажа с ними. Игра должна быть достаточно функциональной (инвентарь, диалоги, передвижение, взаимодействия и т.д.).
Очевидно, тебе нужно смотреть в сторону рогаликов.
0
Модератор
1594 / 1054 / 480
Регистрация: 17.07.2012
Сообщений: 5,234
09.07.2019, 20:15 8
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Мне нужны идеи для консольных игр без графики или с графикой в консоли с использованием ООП
Крестики-нолики, 2048, змейка.
1
632 / 259 / 87
Регистрация: 04.07.2014
Сообщений: 743
09.07.2019, 20:42 9
Sokoban, Lode Runner, Pac-Man

Плюс поиск: (ПК8000|УКНЦ|Spectrum) игры
0
2648 / 1824 / 547
Регистрация: 05.06.2014
Сообщений: 5,277
10.07.2019, 01:16 10
Лучший ответ Сообщение было отмечено Anonymous4722 как решение

Решение

Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Написать игру. В игре управлять каким-либо объектом, например, персонажем. Должны быть другие объекты, управляемые компьютером, и взаимодействие персонажа с ними. Игра должна быть достаточно функциональной (инвентарь, диалоги, передвижение, взаимодействия и т.д.).
Текстовый квест пишите. Выглядеть это должно примерно так:

Место: Ларек.
Описание: Вы стоите перед ларьком, где продают ягу и сиги. Рядом стоит участковый, который подозрительно на вас смотрит.
Инвентарь: Деньги (1234 рубля), семки.
Возможные действия:
1) Купить яги (123 рубля банка).
2) Попытаться отжать мобильник у прохожего (успех определяется корейским рандомом).
3) Пойти на лавочку.
4) Пойти домой.

Да, да, вот прям так, текстом. Инвентарь есть. Передвижение есть. Взаимодействие есть. Компьютер может управлять участковым, который настучит по башке за попытки отжать мобильник.
3
бах-бах и в продакшен!
1606 / 960 / 367
Регистрация: 23.09.2014
Сообщений: 3,113
Записей в блоге: 4
10.07.2019, 09:12 11
Anonymous4722,

Тут Генератор Идей Для Игр!

пример идеи для игры

Бесконечный Удар Величия
Обычный тупой такой аркадный , совмещение лучших идей из РПГ и паззла c элементами дефенса с фокусом на рыцарстве в сеттинге , где как будто живем внутри человека. Главный герой - обычный чмоловек в очёчках, который приземлился на разрушенном корабле. Мы сражаемся с древним загадочным злом. Это бессмертный забытый бог, который, руководя армией гоблинов, хочет уничтожить Землю. Рулить так - дуть в микрофон. Лучше всего выпускать под ведроид, потому что самый популярный, там и денег больше, но nintendo 3ds с модным 3д параллаксом нормуль, а потом на стим его.
0
3 / 1 / 1
Регистрация: 29.11.2012
Сообщений: 435
11.07.2019, 00:56  [ТС] 12
Цитата Сообщение от XLAT Посмотреть сообщение
Тут Генератор Идей Для Игр!
Тут какой-то хардкор игр.
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 16:22 13
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Нужна просто идея или пример другой игры, которая не замороченная и над которой долго думать не нужно. Если у вас есть идеи, то напишите.
Игра Угодай число. Компьютер загадывает число от скольки-то до скольки-то, а человек должен угадать с какой-то попытки. Компьютер может подсказывать, что загаданное число больше или меньше предложенного пользователем. Можно сделать много уровней. Например, первый уровень - число от 1 до 10 и даётся 3 попытки. Второй уровень - можно количество попыток меньше сделать, либо диапазон увеличить.

Лучше начинать с очень простых игр, чтобы результат был. Если взять более сложную, то без опыта написания более простых можно не справиться, потерять энтузиазм и мотивацию. Придётся тогда искать готовое, заказывать и не факт, что вы хорошо разберётесь в чужой работе и вас преподаватель не завалит не не поймёт, что это не вы сделали. А если сделаете вы, то это будет огромный опыт, куча сэкономленных нервный клеток и возможно денег. Плюс деньги, которые вы заработаете в будущем, благодаря полученному опыту.
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 17:09 14
Как предлагали выше "Крестики-нолики" - неплохой выбор. Она праще, чем змейка если не писать игру с компьютером, а сделать игру на двоих на одном компьютере с ходами по очереди.

Можно начать с того, чтобы вывести приветствие. У меня так получилось:

Название: Tic-Tac-Toe-Console_001.png
Просмотров: 79

Размер: 10.4 Кб

Выводить крестики и нолики в консоль можно с помощью букв "X" и "O".

Я даже ещё больше заморочился. Так могу выглядеть моменты игры в консоле:

1
Код
X|X|	
-+-+-
 |O|	
-+-+-
 | |
2
Код
X| |X
-+-+-
 |O|	
-+-+-
 | |
3
Код
X| |	
-+-+-
X|O|	
-+-+-
 | |
4
Код
X| |	
-+-+-
 |O|X
-+-+-
 | |
5
Код
X| |	
-+-+-
 |O|	
-+-+-
X| |
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 17:14 15
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Написать игру. В игре управлять каким-либо объектом, например, персонажем. Должны быть другие объекты, управляемые компьютером, и взаимодействие персонажа с ними. Игра должна быть достаточно функциональной (инвентарь, диалоги, передвижение, взаимодействия и т.д.).
Вообще-то, тут действительно нужно писать текстовый квест. По заданию же очевидно.

Добавлено через 2 минуты
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Уже делал. Нужно что то другое.
А, вы настолько продвинутый. Морской бой я ещё не писал, но есть в планах сделать по сети с шейдерной OpenGL графикой в 3D, но это после того, как напишу крестики-нолики по сети, тогда будет легче, так как применю уже полученные знания от крестиков-ноликов.
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 17:42 16
Я крестики-нолики ещё не писал и неплохо было бы написать. Вроде игра простая, но как только начинаешь продумывать следующий шаг - что дальше кодить, то не такая уж и простая в реализации, но интересная.

Выглядит неплохо:

Название: Tic-Tac-Toe-Console_002.png
Просмотров: 73

Размер: 1.4 Кб
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 19:47 17
Я начал писать консольные Крестики-нолики, так увлёкся, что написал до конца. Я сделал "защиту от дурака". Если не сложно, то попробуйте поиграть, я собрал в EXE: Tic-Tac-Toe-Console.zip. Никуда не подсматривал, сделал сам с нуля. До чего же интересно было.

Несколько скриншотов:

Название: Tic-Tac-Toe-Console_005.png
Просмотров: 67

Размер: 3.8 Кб

Название: Tic-Tac-Toe-Console_003.png
Просмотров: 68

Размер: 4.8 Кб

Название: Tic-Tac-Toe-Console_004.png
Просмотров: 69

Размер: 6.9 Кб
0
3266 / 2655 / 716
Регистрация: 25.03.2012
Сообщений: 9,574
Записей в блоге: 1
11.07.2019, 21:38 18
8Observer8, я скачал, а теперь ты запусти и оцени код Игра "Крестики - нолики"
0
3893 / 2115 / 366
Регистрация: 05.10.2013
Сообщений: 6,142
Записей в блоге: 167
11.07.2019, 22:32 19
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
8Observer8, я скачал, а теперь ты запусти и оцени код Игра "Крестики - нолики"
Можно в EXE собрать?

Вот мой код:

Program.cs

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Tic_Tac_Toe_Console
{
    class Program
    {
        static void Main(string[] args)
        {
            new Game();
        }
    }
}
Game.cs

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
using System;
 
namespace Tic_Tac_Toe_Console
{
    class Game
    {
        private char[,] _field = new char[3, 3] {
                { ' ', ' ', ' ' },
                { ' ', ' ', ' ' },
                { ' ', ' ', ' ' },
            };
 
        private bool _isXMove = true;
 
        private readonly string _coordErrorMessage = "Координаты должны быть: [0, 2]";
 
        public Game()
        {
            Draw();
 
            int row, col;
            do
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("\n Введите номер ряда: [0, 2]\n (или -1 для выхода): ");
                Console.ForegroundColor = ConsoleColor.White;
                if (!int.TryParse(Console.ReadLine(), out row))
                {
                    ShowError(_coordErrorMessage);
                    continue;
                }
                if (row == -1) break;
 
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("\n Введите номер столбца: [0, 2]\n (или -1 для выхода): ");
                Console.ForegroundColor = ConsoleColor.White;
                if (!int.TryParse(Console.ReadLine(), out col))
                {
                    ShowError(_coordErrorMessage);
                    continue;
                }
                if (col == -1) break;
 
                Update(row, col);
                Draw();
            } while (true);
 
        }
 
        private void Update(int row, int col)
        {
            if (row == -1 || col == -1)
            {
                return;
            }
 
            if (0 <= row && row <= 2 &&
                0 <= col && col <= 2)
            {
                if (_field[row, col] == ' ')
                {
                    _field[row, col] = _isXMove ? 'X' : 'O';
 
                    if (IsWinner('X'))
                    {
                        Draw();
                        EndGame("Крестики");
                    }
                    else if (IsWinner('O'))
                    {
                        Draw();
                        EndGame("Нолики");
                    }
 
                    _isXMove = !_isXMove;
                }
                else
                {
                    ShowError("По этим координатам уже сделан ход.");
                }
            }
            else
            {
                ShowError(_coordErrorMessage);
                return;
            }
        }
 
        private void Draw()
        {
            Console.Clear();
 
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("\n Крестики-Нолики\n");
            Console.ForegroundColor = ConsoleColor.Magenta;
 
            ShowField();
 
            // Устанавливаем цвет рисования белым
            Console.ForegroundColor = ConsoleColor.White;
        }
 
        private void ShowField()
        {
            Console.WriteLine(string.Format("  {0} | {1} | {2}", _field[0, 0], _field[0, 1], _field[0, 2]));
            Console.WriteLine(" ---+---+---");
            Console.WriteLine(string.Format("  {0} | {1} | {2}", _field[1, 0], _field[1, 1], _field[1, 2]));
            Console.WriteLine(" ---+---+---");
            Console.WriteLine(string.Format("  {0} | {1} | {2}", _field[2, 0], _field[2, 1], _field[2, 2]));
        }
 
        private void ShowError(string message)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("\n " + message);
            Console.WriteLine(" Нажмите любую клавишу");
 
            Console.ReadKey();
        }
 
        private bool IsWinner(char player)
        {
            return (
                // Rows
                (_field[0, 0] == player && _field[0, 1] == player && _field[0, 2] == player) ||
                (_field[1, 0] == player && _field[1, 1] == player && _field[1, 2] == player) ||
                (_field[2, 0] == player && _field[2, 1] == player && _field[2, 2] == player) ||
                // Columns
                (_field[0, 0] == player && _field[1, 0] == player && _field[2, 0] == player) ||
                (_field[0, 1] == player && _field[1, 1] == player && _field[2, 1] == player) ||
                (_field[0, 2] == player && _field[1, 2] == player && _field[2, 2] == player) ||
                // Diagonals
                (_field[0, 0] == player && _field[1, 1] == player && _field[2, 2] == player) ||
                (_field[0, 2] == player && _field[1, 1] == player && _field[2, 0] == player)
            );
        }
 
        private void ClearField()
        {
            for (int row = 0; row < 3; row++)
            {
                for (int col = 0; col < 3; col++)
                {
                    _field[row, col] = ' ';
                }
            }
        }
 
        private void EndGame(string player)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine(string.Format("\n Победили {0}!", player));
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("\n Нажмите любую клавишу для продолжения");
            Console.ReadKey();
            ClearField();
        }
    }
}
0
3 / 1 / 1
Регистрация: 29.11.2012
Сообщений: 435
11.07.2019, 22:55  [ТС] 20
Цитата Сообщение от 8Observer8 Посмотреть сообщение
А, вы настолько продвинутый. Морской бой я ещё не писал, но есть в планах сделать по сети с шейдерной OpenGL графикой в 3D, но это после того, как напишу крестики-нолики по сети, тогда будет легче, так как применю уже полученные знания от крестиков-ноликов.
Он у меня консольный, морской бой. Я еще не умею делать окна и 3д. Только консоль. Да и он у меня криво работает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2019, 22:55

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

Нужна идея для проекта
В общем, нужна идея для проекта(всего скорее open source), стаж 4.5 года знаю c++. Проект нужен...

Нужна идея для программы
Лето, скука, делать нечего. Чего бы спрограммить. На VB конечно. Если есть интересные идеи,...

Нужна идея для реализации
Подскажите что можно написать полезного, в голову ничего не лезет.

Нужна идея для программирования
Здравствуйте форумчане! Я - наверное, типичный школьник. Но проблема не простая... Вот сижу без...

Нужна идея для проекта
Проект из себя представляет Веб-сервер на Tomcat + Spring + MySQL + Hibernate. Как фронт-енд...

Нужна идея для квалифы
Здравствуйте, форумчане! :) Меня зовут Алексей, я учусь в 11 классе, в лицее информационных...


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

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

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