Программно-аппаратные требования
Аппаратные требования:
Необходимый объем ОЗУ 64 Мб и графическим адаптером, поддерживающим режим 800х600 и выше, глубина цвета 32 бит. Необходимое место на жестком диске 780 Кб. Клавиатура, мышь.
Программные требования:
Операционная система семейства Windows: 2000/XP (32/64) /Vista (32/64) /7 (32/64)
Порядок работы с программой
Запускаем приложение Tetris. exe (Рис.4):
Рис.4
Приложение Tetris. exe
Для того чтобы начать игру необходимо нажать Меню - Новая игра. Для изменения сложности игры необходимо зайти в Меню - Сложность. Для временной остановки игры необходимо нажать Меню - Пауза или клавишу Space. Для продолжения игры нажать Меню - Продолжить (Рис.5).
Рис.5
Строка меню
Управление фигурами осуществляется с помощью клавиш Left, Right, Up (подробнее Меню - Справка - Управление) (Рис.6).
Рис.6
Окно "Управление"
Для выхода из программы необходимо нажать Меню - Выход). Так же можно посмотреть сведения о программном продукте и разработчике (Меню - Справка - О программе) (Рис.7).
Рис.7
Окно "О программе"
Заключение
В данной курсовой работе была выполнена поставленная задача - создание программы по теме "Разработка программы для игры "Тетрис"". При помощи этой программы можно приятно провести время, совершенствовать координацию и развивать логическое мышление. Программа не занимает много места, не требовательна к установленному программному обеспечению.
|
|
Список использованной литературы
1. Г. Шилдт C#: Учебный курс. - Спб.: Питер, 2003. - 512с
2. Либерти, Д. Программирование на Си Шарп. - М.: Символ-плюс, 2005. - 684 с.
3. Ватсон К. Си Шарп/К. Ватсон. - М.: Лори, 2005. - 862 с.
4. Жарков В.А. Компьютерная графика, мультимедиа и игры на Visual C# 2005. - М.: Жарков пресс, 2005. - 812с.
5. http://www.excode.ru/art6225p1.html
Приложения
Листинг 1
3) private void Form1_Load (object sender, EventArgs e)
4) {
5) for (i = 0; i < 24; i++) // заполнение массива пустыми значениями
6) {
7) for (j = 0; j < 15; j++)
8) {
9) Tet [i, j] = false;
10) Res = true;
11) }
12) }
13) SF = false; // фигура не существует
14) textBox2. Text = "0";
15) }
16) private void timer_Tick (object sender, EventArgs e)
17) {
18) if (SF == false)
19) {
20) Random a = new Random (); // выбор фигуры
21) NumbeF = a. Next (0,6);
22) SF = true;
23) P = true; // появление фигуры на первой позиции
24) }
25) if (SF == true)
26) {
27) if (NumbeF == 0) // квадрат
28) {
29) if (P == true) // условие появления квадрата в первой позиции
30) {
31) Tet [0, 7] = true;
32) Tet [0, 8] = true;
33) Tet [1, 7] = true;
34) Tet [1, 8] = true;
35) P = false; // фигура не появляется на первой позиции
36) i = 1;
37) j = 7;
38) }
39) if (i < 23 && (Tet [i + 1, j] == false && Tet [i + 1, j + 1] == false)) // условие сдвига фигуры
40) {
41) Tet [i - 1, j] = false;
42) Tet [i - 1, j + 1] = false;
|
|
43) Tet [i + 1, j] = true;
44) Tet [i + 1, j + 1] = true;
45) i = i + 1;
46) }
47) else
48) {
49) SF = false; // фигура не существует
50) }
51) }
52) if (NumbeF == 1) // сапожок
53) {
54) if (P == true) // условие появления сапожка в первой позиции
55) {
56) Tet [0, 7] = true;
57) Tet [1, 7] = true;
58) Tet [1, 8] = true;
59) Tet [1, 9] = true;
60) P = false;
61) i = 1;
62) j = 8;
63) Razp = 0;
64) }
65) if (Razp == 0) // фигура сапожок в положение 0
66) {
67) if (i < 23 && Tet [i + 1, j - 1] == false && Tet [i + 1, j] == false && Tet [i + 1, j + 1] == false) // проверка свободного места под фигурой
68) {
69) Tet [i, j] = false;
70) Tet [i, j + 1] = false;
71) Tet [i - 1, j - 1] = false;
72) Tet [i + 1, j - 1] = true;
73) Tet [i + 1, j] = true;
74) Tet [i + 1, j + 1] = true;
75) i = i + 1;
76) }
77) else
78) {
79) SF = false;
80) }
81) }
82) if (Razp == 1) // фигура сапожок в положение 1
83) {
84) if (i < 22 && Tet [i + 2, j - 1] == false && Tet [i + 2, j] == false) // проверка свободного места под фигурой
85) {
86) Tet [i - 1, j] = false;
87) Tet [i + 1, j - 1] = false;
88) Tet [i + 2, j - 1] = true;
89) Tet [i + 2, j] = true;
90) i = i + 1;
91) }
92) else
93) {
94) SF = false;
95) }
96) }
97) if (Razp == 2) // фигура сапожок в положение 2
98) {
99) if (i < 22 && Tet [i + 1, j - 1] == false && Tet [i + 1, j] == false && Tet [i + 2, j + 1] == false) // проверка свободного места под фигурой
100) {
101) Tet [i, j] = false;
102) Tet [i, j + 1] = false;
103) Tet [i, j - 1] = false;
104) Tet [i + 1, j - 1] = true;
105) Tet [i + 1, j] = true;
106) Tet [i + 2, j + 1] = true;
107) i = i + 1;
|
|
108) }
109) else
110) {
111) SF = false;
112) }
113) }
114) if (Razp == 3) // фигура сапожок в положение 3
115) {
116) if (i < 22 && Tet [i, j + 1] == false && Tet [i + 2, j] == false) // проверка свободного места под фигурой
117) {
118) Tet [i - 1, j] = false;
119) Tet [i - 1, j + 1] = false;
120) Tet [i, j + 1] = true;
121) Tet [i + 2, j] = true;
122) i = i + 1;
123) }
124) else
125) {
126) SF = false;
127) }
128) }
129) }
Листинг 2
130) SolidBrush Brush2 = new SolidBrush (System. Drawing. Color. LightCyan); // создание кисти
131) SolidBrush Brush3 = new SolidBrush (System. Drawing. Color. Red);
132) Font font = new Font ("Times New Roman", 30, FontStyle. Bold | FontStyle. Italic); // описание стиля надписи
133) for (a = 2; a < 24; a++)
134) {
135) for (b = 0; b < 15; b++)
136) {
137) Graphics myGraphics = CreateGraphics (); // создание поверхности для рисования
138) if (Tet [a, b] == true)
139) {
140) LinearGradientBrush Brush1 = new LinearGradientBrush (new Rectangle (20 * b,20 * a, 20, 20), Color. Aqua, Color. Blue, 45);
141) Rectangle r1 = new Rectangle (20 * b,20 * (a - 1), 20, 20); // объединение заполненных ячеек в область
142) myGraphics. FillRectangle (Brush1, r1); // закрашивание заполненной области
143) }
144) if (Tet [a, b] == false)
145) {
146) Rectangle r1 = new Rectangle (20 * b,20 * (a - 1), 20, 20); // объединение незаполненных ячеек в область
147) myGraphics. FillRectangle (Brush2, r1); // закрашивание незаполненной области
148) }
149) }
150) }
Листинг 3
151) private void button2_KeyUp (object sender, KeyEventArgs e)
152) {
153) key = e. KeyCode. ToString ();
154) if (key == "Right") // проверка нажатие клавиши "Вправо"
|
|
155) {
156) timer. Enabled = false;
157) if (NumbeF == 0 && j < 13 && Tet [i - 1, j + 2] == false && Tet [i, +2] == false) // проверка свободного места справо
158) {
159) Tet [i, j + 2] = true;
160) Tet [i - 1, j + 2] = true;
161) Tet [i, j] = false;
162) Tet [i - 1, j] = false;
163) j = j + 1;
164) }
165) if (NumbeF == 1)
166) {
167) if (Razp == 0 && j < 13 && Tet [i, j + 2] == false && Tet [i - 1, j] == false) // проверка свободного места справо
168) {
169) Tet [i - 1, j] = true;
170) Tet [i, j + 2] = true;
171) Tet [i, j - 1] = false;
172) Tet [i - 1, j - 1] = false;
173) j = j + 1;
174) }
175) if (Razp == 1 && j < 14 && Tet [i - 1, j + 1] == false && Tet [i, j + 1] == false && Tet [i + 1, j + 1] == false) // проверка свободного места справо
176) {
177) Tet [i - 1, j] = false;
178) Tet [i, j] = false;
179) Tet [i + 1, j - 1] = false;
180) Tet [i - 1, j + 1] = true;
181) Tet [i, j + 1] = true;
182) Tet [i + 1, j + 1] = true;
183) j = j + 1;
184) }
185) if (Razp == 2 && j < 13 && Tet [i, j + 2] == false && Tet [i + 1, j + 2] == false) // проверка свободного места справо
186) {
187) Tet [i, j + 2] = true;
188) Tet [i + 1, j + 2] = true;
189) Tet [i, j - 1] = false;
190) Tet [i + 1, j + 1] = false;
191) j = j + 1;
192) }
193) if (Razp == 3 && j < 13 && Tet [i - 1, j + 2] == false && Tet [i, j + 1] == false && Tet [i + 1, j + 1] == false) // проверка свободного места справо
194) {
195) Tet [i - 1, j + 2] = true;
196) Tet [i, j + 1] = true;
197) Tet [i + 1, j + 1] = true;
198) Tet [i - 1, j] = false;
199) Tet [i, j] = false;
200) Tet [i + 1, j] = false;
201) j = j + 1;
202) }
203) }
204) }
205) }
Дата добавления: 2019-07-15; просмотров: 192; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!