Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
MrFoge
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 9
#1

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

29.10.2016, 23:49. Просмотров 355. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Игра тетрис - удаление последней строки (C#):

Удаление последней строки из файла - C#
У меня сделана таблица datagridview в нее добавляем строки с помощью текст боксов и кнопки и сохраняем это все в текстовый файл. Не могу...

Получить из строки все, кроме последней строки и переноса на последнюю строку - C#
Помогите составить регулярное выражение. Использую библиотеку System.Text.RegularExpressions.Regex. Есть строка В блокноте выглядит...

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

Поиск последней строки в Excel - C#
Здравствуйте! Имеется таблица Excel. Ищу последнюю строку:int lastRow=sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row; ...

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

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

3
Sanya_sa
Модератор
626 / 612 / 158
Регистрация: 03.02.2015
Сообщений: 3,668
Записей в блоге: 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
Модератор
626 / 612 / 158
Регистрация: 03.02.2015
Сообщений: 3,668
Записей в блоге: 8
Завершенные тесты: 3
31.10.2016, 01:13 #4
MrFoge, не смешите мои тапки.
Проект кидайте посмотрим. Просто например что такое Shape? Вы же наверное класс создали и он играет ключевуроль в вашем вопросе.
0
31.10.2016, 01:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 01:13
Привет! Вот еще темы с ответами:

Использование данных последней строки из массива - C#
Доброго времени суток. Как из полученного массива строк считать только последнюю строку? массив такого вида: 1 1 2 3 5 5 5 ...

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

Переменная в качестве последней строки диапазона в Excel - C#
Добрый день Есть код. Нужно в последнюю строку диапазона в методе Hyperlnking вместо указанного диапазона подставлять значение с...

Подсчитать количество символа 'А' в предпоследнем слове последней строки текста - C#
Дан текстовый файл литерных величин Inlet.in. Подсчитать количество символа Буква_А в предпоследнем слове последней строки тек- ста,...


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

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

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