Программно-аппаратные требования



 

Аппаратные требования:

Необходимый объем ОЗУ 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!