Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
2 / 2 / 0
Регистрация: 12.04.2010
Сообщений: 4

Игровая программа "Отгадай картинку"

12.04.2010, 21:33. Показов 4492. Ответов 12

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста вот задание
«Игровая программа “Отгадай картинку”»
Описание правил игры:
На форме расположена картинка, закрытая 12-ю элементами. Игрок должен отгадать, что изображено на картинке. Свои ответы игрок заносит в тестовое поле и нажимает кнопку Проверить (или нажимает Enter). Ответы игрока заносятся в список, при этом если игрок ничего не набрал, а кнопку Проверить нажал, в список заносятся звездочки. После каждой попытки (если она была неудачная), один из элементов пропадает, таким образом, открывая часть загаданной картинки.
Если игрок отгадал, вся картинка открывается, выдается приветственное сообщение, после чего загружается следующая картинка и сразу же открывается первый элемент.
Если игрок так и не отгадал, вся картинка открывается и выдается сообщение с правильным ответом.
Всего может быть загадано 5 картинок.
Ведется подсчет баллов. Всего игрок имеет возможность сделать 60 попыток (по 12 на каждую картинку). При каждой неудачной попытке количество баллов уменьшается.
На «3»:
1. Реализовать основной ход игры:
• по щелчку на кнопке Старт загружается большая картинка, запоминается соответствующее слово и один из элементов становится невидимым, после чего кнопка Старт блокируется
• по щелчку на кнопке Проверить слово из текстового поля заносится в список, при этом, если пользователь ничего не ввел, в список заносятся звездочки
• если игрок угадал, выдается приветственное сообщение и все элементы открываются
• если игрок не угадал, становится невидимым очередной элемент.
2. Организовать подсчет баллов: при каждой неудачной попытке количество баллов уменьшается на 1.
На «4»:
1. При проверке слова, введенного игроком, не должен учитываться регистр букв и пробелы до и после слова.
2. Организовать последовательную загрузку 5 картинок. После работы с 5-й картинкой игра заканчивается, о чем выдается сообщение, а кнопка Старт становится доступной.
3. По кнопке Старт результаты игры аннулируются.
4. Вместо кнопки Проверить игрок может нажимать клавишу Enter.
На «5»:
1. Загружаемые 5 картинок должны следовать в случайном порядке и не повторяться.
2. Номера открываемых элементов должны быть случайными и не повторяться.
*Дополнительное задание:
• Используйте 10 больших картинок, из которых в игре участвует только 5, выбранных случайным образом.
неполучается сделать вот это :запоминается соответствующее слово
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2010, 21:33
Ответы с готовыми решениями:

Игровая программа “Memory”
В общем, на форме расположено изображение, закрытое 16-ю элементами. По щелчку игрока элемент переворачивается и открывает маленькую...

Отгадай картинку
Помогите пожалуйста вот задание «Игровая программа “Отгадай картинку”» Описание правил игры: На форме расположена картинка, закрытая...

Игровая программа
У меня есть две Form(Form1,Form2) на каждой из них расположен Edit1, он привязан к сохранению в txt.документе, но они постоянно перекрывают...

12
26 / 25 / 2
Регистрация: 26.02.2010
Сообщений: 96
13.04.2010, 00:08
спрашивай, поможем
2
2 / 2 / 0
Регистрация: 12.04.2010
Сообщений: 4
13.04.2010, 08:21  [ТС]
Цитата Сообщение от wenom95 Посмотреть сообщение
неполучается сделать вот это :запоминается соответствующее слово
Вот,вот это
1
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
13.04.2010, 12:28
Используй List<>:
C#
1
List<string> spisok=new List<string>();
добавление
C#
1
spisok.Add("твое слово");
2
2 / 2 / 0
Регистрация: 12.04.2010
Сообщений: 4
13.04.2010, 15:23  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List<string> spisok = new List<string>();
                spisok.Add("Обама");
                if (textBox1.Text = )
                {
                    MessageBox.Show("Правильно");
                    panel1.Visible = false;
                    panel2.Visible = false;
                    panel6.Visible = false;
                    panel7.Visible = false;
                    panel15.Visible = false;
                    panel9.Visible = false;
                    panel11.Visible = false;
                    panel16.Visible = false;
                    panel12.Visible = false;
                    panel13.Visible = false;
                    panel14.Visible = false;
                    pictureBox1.Image = Properties.Resources.img2;
                    panel4.Visible = false;
                }
                else
                { panel11.Visible = false;
                }
Скажи как подкаректировать а то что-то я не ахти догнал)))
1
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
13.04.2010, 15:37
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
List<string> spisok = new List<string>();
spisok.Add("Обама");
while(textBox1.Text !=spisok[0] )
{
MessageBox.Show("Неправильно");
}
panel1.Visible = false;
panel2.Visible = false;
panel6.Visible = false;
panel7.Visible = false;
panel15.Visible = false;
panel9.Visible = false;
panel11.Visible = false;
panel16.Visible = false;
panel12.Visible = false;
panel13.Visible = false;
panel14.Visible = false;
panel4.Visible = false;
panel11.Visible = false;
pictureBox1.Image = Properties.Resources.img2;
Я бы сделал. зациклил процесс угадывания картинки, пока введенное слово не совпадет с загаданным в списке. после выхода из цикла, открываем все оставшиеся панели и отображаем картинку.
Чтобы в цикле удалять по одной панели, необходимо все твои панели положить в массив и по очереди их убирать с поля, выставляя Visible=false;
В общем, покопай в этом направлении.
2
1 / 1 / 0
Регистрация: 14.04.2010
Сообщений: 3
14.04.2010, 08:15
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Otgadai.Properties;
 
namespace Otgadai
{
    public partial class Form1 : Form
    {
 
 
 
        Random myrnd= new Random();
        int ochki, number1, number2;
        string slovo, picName;
        
        
 
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void Otkrytiepic()
        {
            switch (number1)
            {
                case 1:
                    pic1.Visible = false;
                    break;
 
                case 2:
                    pic2.Visible = false;
                    break;
 
                case 3:
                    pic3.Visible = false;
                    break;
 
                case 4:
                    pic4.Visible = false;
                    break;
 
                case 5:
                    pic5.Visible = false;
                    break;
 
                case 6:
                    pic6.Visible = false;
                    break;
 
                case 7:
                    pic7.Visible = false;
                    break;
 
                case 8:
                    pic8.Visible = false;
                    break;
 
                case 9:
                    pic9.Visible = false;
                    break;
 
                case 10:
                    pic10.Visible = false;
                    break;
 
                case 11:
                    pic11.Visible = false;
                    break;
 
                case 12:
                    pic12.Visible = false;
                    break;
            }
        }
 
 
 
        private void SledushayaKart()
        {
            txtIgra.Text = "";
            lstMy.Items.Clear();
            lstIgra.Items.Clear();
            pic1.Visible = true;
            pic2.Visible = true;
            pic3.Visible = true;
            pic4.Visible = true;
            pic5.Visible = true;
            pic6.Visible = true;
            pic7.Visible = true;
            pic8.Visible = true;
            pic9.Visible = true;
            pic10.Visible = true;
            pic11.Visible = true;
            pic12.Visible = true;
            if (lstZadanie.Items.Count == 5)
            {
                MessageBox.Show("Конец игры");
                btnStart.Enabled = true;
                btnIgra.Enabled = false;
                txtIgra.Enabled = false;
            }
            else
            {
                do
                {
                    number2 = myrnd.Next(0, 5);
                }
                while (lstZadanie.Items.Contains(number2));
                lstZadanie.Items.Add(number2);
                slovo = lstSlovo.Items[number2].ToString();
                picName = "img" + ((number2 + 1)).ToString();
                object obj2 = Resources.ResourceManager.GetObject(picName);
                pnlIgra.BackgroundImage = (Bitmap)obj2;
                number1 = myrnd.Next(1, 13);
                lstIgra.Items.Clear();
                lstIgra.Items.Add(number1);
                Otkrytiepic();
                
            }
        }
 
 
 
 
 
        private void btnStart_Click(object sender, EventArgs e)
        {
 
 number2 = myrnd.Next(0, 5);
    picName = "img" + ((number2 + 1)).ToString();
    object obj2 = Resources.ResourceManager.GetObject(picName);
    pnlIgra.BackgroundImage = (Bitmap) obj2;
    slovo = lstSlovo.Items[number2].ToString();
    lstMy.Items.Clear();
    txtIgra.Text = "";
    lstZadanie.Items.Clear();
    lstZadanie.Items.Add(number2);
    number1 = myrnd.Next(1, 13);
    lstIgra.Items.Clear();
    lstIgra.Items.Add(number1);
    Otkrytiepic();
    
    ochki = 0;
    lblBall.Text = "";
    btnStart.Enabled = false;
    btnIgra.Enabled = true;
    txtIgra.Enabled = true;
    }
 
        private void btnIgra_Click(object sender, EventArgs e)
        {
        if (txtIgra.Text == "")
    {
        lstMy.Items.Add("****");
    }
    else
    {
        lstMy.Items.Add(txtIgra.Text);
    }
    ochki++;
    lblBall.Text = (60 - ochki).ToString();
    if (txtIgra.Text.Trim().ToLower() == slovo)
    {
        pic1.Visible = false;
        pic2.Visible = false;
        pic3.Visible = false;
        pic4.Visible = false;
        pic5.Visible = false;
        pic6.Visible = false;
        pic7.Visible = false;
        pic8.Visible = false;
        pic9.Visible = false;
        pic10.Visible = false;
        pic11.Visible = false;
        pic12.Visible = false;
        MessageBox.Show("Правильно");
        SledushayaKart();
    }
    else
    {
        MessageBox.Show("Пока неправильно");
        do
        {
            number1 = myrnd.Next(1, 13);
        }
        while (lstIgra.Items.Contains(number1));
        lstIgra.Items.Add(number1);
        Otkrytiepic();
        txtIgra.Text = "";
        txtIgra.Focus();
    }
    if (lstIgra.Items.Count == 12)
    {
        pic1.Visible = false;
        pic2.Visible = false;
        pic3.Visible = false;
        pic4.Visible = false;
        pic5.Visible = false;
        pic6.Visible = false;
        pic7.Visible = false;
        pic8.Visible = false;
        pic9.Visible = false;
        pic10.Visible = false;
        pic11.Visible = false;
        pic12.Visible = false;
        MessageBox.Show("Ответ: " + slovo);
        SledushayaKart();
    }
 
 
        }
 
 
       
    }
 
            }
у меня такой код, могу скинуть программу
1)как можно укоротить код, вот например, где-то зациклить
2)как реализовать дополнительное задание
3)При проверке слова, введенного игроком, не должен учитываться регистр букв и пробелы до и после слова
1
92 / 79 / 9
Регистрация: 10.03.2010
Сообщений: 172
14.04.2010, 10:41
Набросал код по твоему заданию
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
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace ugadai
{
    public partial class Form1 : Form
    {
        Panel[] pic;
        PictureBox Quest;
        string Answer;
        public Form1()
        {
            InitializeComponent();
            Create();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Start();
            button1.Enabled = false;
        }
        private void Start()
        {
            for (int i = 0; i < 9; i++)
            {
                pic[i].Visible = true;
            }
            Quest.Load("obama.jpg");
            Answer = "Обама";
            Otkrytiepic();
        }
        private void Create()
        {
            Quest = new PictureBox();
            Quest.Location = new Point(50, 50);
            Quest.Size = new Size(210, 210);
            Quest.SizeMode = PictureBoxSizeMode.StretchImage;
            Quest.Parent = this;
            pic = new Panel[9];
            int k = 0;
            for (int i = 0; i < 9; i++)
            {
                pic[i] = new Panel();
                pic[i].Visible = true;
                pic[i].Location = new Point((Quest.Width / 3) * k, (Quest.Height / 3) * (i / 3));
                pic[i].Size = new Size(Quest.Width / 3, Quest.Height / 3);
                pic[i].BackColor = Color.AliceBlue;
                pic[i].Parent = Quest;
                if (k == 2) k = 0;
                else k++;
            }
        }
        private void Otkrytiepic()
        {
            Random rand = new Random();
            int OpenPicID;
            do
            {
                OpenPicID = rand.Next(8);
            } while (pic[OpenPicID].Visible == false);
            pic[OpenPicID].Visible = false;
        }
 
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter && !button1.Enabled)
            {
                string InputText = textBox1.Text;            
                if (InputText.Length != 0)
                    listBox1.Items.Add(InputText);
                else
                    listBox1.Items.Add("*****");
 
                if (InputText.ToLower().Trim() != Answer.ToLower().Trim())
                {
                    MessageBox.Show("Пока неправильно");
                    Otkrytiepic();
                }
                else
                {
                    MessageBox.Show("Верно!");
                    button1.Enabled = true;
                }
            }
        }
    }
}
На форме должна быть 1 кнопка button1, один listBox1 и один textBox1
2
24 / 23 / 5
Регистрация: 14.04.2010
Сообщений: 41
14.04.2010, 13:12
Цитата Сообщение от wenom95 Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List<string> spisok = new List<string>();
                spisok.Add("Обама");
                if (textBox1.Text = )
                {
                    MessageBox.Show("Правильно");
                    panel1.Visible = false;
                    panel2.Visible = false;
                    panel6.Visible = false;
                    panel7.Visible = false;
                    panel15.Visible = false;
                    panel9.Visible = false;
                    panel11.Visible = false;
                    panel16.Visible = false;
                    panel12.Visible = false;
                    panel13.Visible = false;
                    panel14.Visible = false;
                    pictureBox1.Image = Properties.Resources.img2;
                    panel4.Visible = false;
                }
                else
                { panel11.Visible = false;
                }
Скажи как подкаректировать а то что-то я не ахти догнал)))
А вот этот длинный код панелей вроде можно укоротить. Например:
Где-нибудь вначале программы создаем лист из панелей

C#
1
2
3
4
5
List<Panel> PanelList = new List<Panel>();
PanelList.Add(Panel1);
PanelList.Add(Panel2);
...
PanelList.Add(Panel10);
И так как это ссылочный тип, то если изменить элемент в листе, то и сам элемент на форме изменится.
Теперь в дальнейшем можно работать через массив, что удобнее:

C#
1
for (int i = 0; i < 10; i++) PanelList[i].Visible = false;
Поправьте, если неправ. Я новичек))
2
92 / 79 / 9
Регистрация: 10.03.2010
Сообщений: 172
14.04.2010, 13:50
Цитата Сообщение от AstroNom Посмотреть сообщение
А вот этот длинный код панелей вроде можно укоротить. Например:
Где-нибудь вначале программы создаем лист из панелей

C#
1
2
3
4
5
List<Panel> PanelList = new List<Panel>();
PanelList.Add(Panel1);
PanelList.Add(Panel2);
...
PanelList.Add(Panel10);
И так как это ссылочный тип, то если изменить элемент в листе, то и сам элемент на форме изменится.
Теперь в дальнейшем можно работать через массив, что удобнее:

C#
1
for (int i = 0; i < 10; i++) PanelList[i].Visible = false;
Поправьте, если неправ. Я новичек))
C#
1
2
3
4
5
6
Panel[] pic = new Panel[9];
            for (int i = 0; i < 9; i++)
            {
                pic[i] = new Panel();
                pic[i].Visible = true;
            }
И работай с pic как хочешь
2
1 / 1 / 0
Регистрация: 14.04.2010
Сообщений: 3
14.04.2010, 16:23
регистр букв не учитывается?
и добавлена возможность выбирать из 10 картинок?
и если так напишите, пожалуйста комментарии, чтоб я разобрался

http://narod.ru/disk/19716546000/Otgadai.rar.html
это программа по моему коду, примерно так выглядит
0
2 / 2 / 0
Регистрация: 12.04.2010
Сообщений: 4
14.04.2010, 18:42  [ТС]
Corsik, оотправь плизз на мыло я посмотрю ок всем ва ребята спасибо всё помогло но сталкнулся с ошибкой там одной потом разрулю)

Добавлено через 2 минуты
аа вот мыло dronya95@mail.ru

Добавлено через 1 час 39 минут
Спасибо
Corsik, То что нужно аты сам учился или кудато ходишь?
0
1 / 1 / 0
Регистрация: 14.04.2010
Сообщений: 3
19.04.2010, 18:11
Цитата Сообщение от Floating Посмотреть сообщение
Набросал код по твоему заданию

На форме должна быть 1 кнопка button1, один listBox1 и один textBox1
откомментируй плиз код, там много непонятного, а в этом соль
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2010, 18:11
Помогаю со студенческими работами здесь

Подпрограммы. Игровая программа.
Составить игровую программу для двух игроков. К началу игры в коробке имеется некоторое коллличество горошин. Каждый игрок поочередно...

Игровая программа ''ТИР''
В общем смысл такой:фон,на фоне нарисованный дом в котором 4 окошка,в окошке рандомно появляются изображения(цели) на которые за...

Игровая программа (Циклы) С++
Первый игрок вводит целое число от 1 до 100, после чего второй должен отгадать его, вводя свои варианты. На каждую попытку программа должна...

Игровая программа, простенькая стрелялка
Всем доброго времени суток. Взываю к помощи,ибо ни как не могу справится с курсовой( которую нам дали после месяца обучения) Суть...

Игровая программа ипподром"
Добрый день, помогите пожалуйста: Необходимо создать игру &quot;Ипподром&quot;. Я сделал в консоле что мог, не могу заставить своих...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru