Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
MrFoge
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 9
#1

Игра тетрис - удаление последней строки

29.10.2016, 23:49. Просмотров 488. Ответов 3

Сразу говорю игра сделана в List а не в массиве!

Так вот надо как то придумать функцию, которая проверяет не заполнена ли вся строка, если да, то удалить, и чтоб верхние упали, а код у меня вот такой, правда я что то там намусолил с heightfield и widhtfield но не обращайте внимание я просто пытался...
(кстати сам тетрис работает, ну кроме этой функции)
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
 
        int speed = 15;
        void ChekDestroy()
        {
            for (int r = 0; r<heighfield;r++)
            {
                for (int i=0;i<field.Count;i++)
                {
 
                }
            }
 
        }
        public Form1()
        {
            InitializeComponent();
        }
        List<Shape> field = new List<Shape>();
        Shape movingShape = new Shape();
        int widthfield;
        int heighfield;
        
        Random rnd = new Random();
        private void DrawRectangle()
        {
            Pen myPen;
            myPen = new Pen(Color.Blue);
 
           
            this.Refresh();
            Graphics formGraphics = this.CreateGraphics();
            for (int i = 0; i < field.Count; i++)
            {
                SolidBrush myBrush = new SolidBrush(field[i].color);
                formGraphics.FillRectangle(myBrush, new Rectangle(field[i].x,field[i].y,speed, speed));
            }
            
            myPen.Dispose();
            formGraphics.Dispose();
 
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            field.Add(new Shape());
            widthfield = 3 * speed;
            heighfield = 3 * speed;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DrawRectangle();
            (sender as Button).Visible = false;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            movingShape.y += speed;
            DrawRectangle();
 
            
            if (movingShape.y > heighfield)
            { 
                Shape newShape = new Shape();
                field.Add(newShape);
                movingShape = newShape;
 
                ChekDestroy();
            }
 
            for (int i = 0; i < field.Count; i++)
            {
                if (movingShape.x == field[i].x)
            {
                    if (movingShape.y + speed == field[i].y)
                    {
                        Shape newShape = new Shape();
                        field.Add(newShape);
                        movingShape = newShape;
 
                        
                    }
                }
            }
 
        }
 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            { 
                case Keys.A:
                
                       
                    for (int i = 0; i < field.Count; i++)
                    {
                        if (field[i].y == movingShape.y)
                        {
                            if (field[i].x + speed == movingShape.x)
                            {
                                return;
                            }
                        }
                    }
                    if (movingShape.x > 0)
                    {
                        movingShape.x -= speed; DrawRectangle();
                    }
 
                    break;
 
                case Keys.D:
                    for(int i = 0; i < field.Count; i++)
                    {
                        if (field[i].y == movingShape.y)
                        {
                            if (field[i].x - speed == movingShape.x)
                            {
                                return;
                            }
                        }
                    }
                    if (movingShape.x < 15*speed)
                    {
                        movingShape.x += speed; DrawRectangle();
                    }
 
 
 
                    break;
 
                case Keys.S:
                    for(int i = 0; i < field.Count; i++)
                    {
                        if (field[i].y == movingShape.y)
                        {
                            if (field[i].y + speed == movingShape.y)
                            {
                                return;
                            }
                        }
                    }
 
                    if (movingShape.y < 15*speed)
                    {
                        movingShape.y += 2*speed; DrawRectangle();
                    }
                    break;
            }
        }
    }
}

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2016, 23:49
Ответы с готовыми решениями:

Удаление последней строки из файла
У меня сделана таблица datagridview в нее добавляем строки с помощью текст...

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

Изменение последней строки в файле
Как изменить последнюю строку в файле, не перезаписывая весь файл?

Поиск последней строки в Excel
Здравствуйте! Имеется таблица Excel. Ищу последнюю строку: int...

Поиск последней строки в Excel
Здравствуйте! Имеется таблица Excel. Ищу последнюю строку:int...

3
Sanya_sa
Модератор
686 / 676 / 295
Регистрация: 03.02.2015
Сообщений: 4,260
Записей в блоге: 8
Завершенные тесты: 3
30.10.2016, 03:16 #2
MrFoge,
Цитата Сообщение от MrFoge Посмотреть сообщение
а код у меня вот такой,
Вы его где взяли?
0
MrFoge
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 9
30.10.2016, 12:44  [ТС] #3
сам написал
0
Sanya_sa
Модератор
686 / 676 / 295
Регистрация: 03.02.2015
Сообщений: 4,260
Записей в блоге: 8
Завершенные тесты: 3
31.10.2016, 01:13 #4
MrFoge, не смешите мои тапки.
Проект кидайте посмотрим. Просто например что такое Shape? Вы же наверное класс создали и он играет ключевуроль в вашем вопросе.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 01:13

Номер строки с последней записью
Как узнать в файле номер строки с последней записью? (только не через цикл с...

Вывести элементы последней строки матрицы.
Здравствуйте. Помогите, пожалуйста. Дана матрица MxN. Вывести элементы...

Использование данных последней строки из массива
Доброго времени суток. Как из полученного массива строк считать только...


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

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

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