Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 17:28   #1
Alex33RU
 
Регистрация: 31.05.2010
Сообщений: 3
По умолчанию Змейка

Дали задание, сделать змейку на C#, нашел статьи и исходник на змейку, из исходника взял только сетку, помогите мне с едой для змейки пять дней пытаюсь сделать это но не выходит, должно на поле быть 15 шт съедобной еды и после того как змейка съедает игра заканчивается. В программирование щас толком не разбираюсь. Отметил красным нужную процедуру которую пытаюсь доработать
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SnakeGame
{
    public partial class MainForm : Form
    {
        #region Fields and members 
        //Поля и члены класса
        private int score;
        private Keys direction;
        private Keys arrow;
        private Point lastsegment;
        private Snake snake;
        private Bitmap OffScreen;
        private Graphics GraphBit;
        private Graphics OnScreen;
        private Point foodCoordinate;
        private List<Point>wallCoordinate=new List<Point>();
        private int time = 0;
        private int speed = 300;
        private byte levelNumber = 0;
        private int alltime = 0;
        private byte n = 0;
        private byte rNumber;
        private int next = 2500; 
        private bool isPaused = false;
        #endregion
        #region MainForm Constructor
        //Конструктор
        public MainForm()
        {
            InitializeComponent();
            direction = Keys.Left;
            arrow = direction;
            OffScreen = new Bitmap(250, 250);
            snake = new Snake();
            lastsegment = snake.Coordinate[snake.Lenght - 1];
        }
        #endregion
         //Функция прорисовки игрового поля и объектов
        private void Draw()
            {
                switch (levelNumber)
                {
                    case 0:
                        GraphBit.Clear(Color.SteelBlue);
                        break;
                    case 1:
                        GraphBit.Clear(Color.Gray);
                        break;
                    case 2:
                        GraphBit.Clear(Color.DarkMagenta);
                        break;
                    default:
                        GraphBit.Clear(Color.Gray);
                        break;
                }

                //if(GridCheckBox.Checked==true)
                GreedLine(GraphBit);
                GraphBit.FillEllipse(new SolidBrush(Color.Goldenrod),
                    (foodCoordinate.X * 10),(foodCoordinate.Y * 10),10,10);
                for (int i = 0; i < 3; ++i)
                {
                    foreach (Point p in wallCoordinate)
                    {
                        GraphBit.FillEllipse(new SolidBrush(Color.Red),
                            (p.X * 10), (p.Y * 10), 10, 10);
                    }
                }
                for (int i = 0; i < snake.Lenght; ++i)
                {

                    GraphBit.FillEllipse(new SolidBrush(Color.Green),
                     (snake.Coordinate[i].X * 10), (snake.Coordinate[i].Y * 10), 10, 10);

                }
                OnScreen.DrawImage(OffScreen,0,0);
            }
        #endregion
        #region Food logic
        //Набор функций, отвечают за появление и поведение еды
     private void FoodCheck()
        {
            for (int i = 0; i < poisonNumber; ++i){
            if(snake.Coordinate[0]==foodCoordinate)
            {
                snake.IncLength();
                snake.Coordinate[snake.Lenght-1]=lastsegment;
                score+=1;
                ScoreLabelCaption.Text = score.ToString();
                NewLevel();
                CreateFood();
            }
            }
        }

        private void CreateFood()
        {
            bool onPlace;
            do
            {
                Random md=new Random();
                foodCoordinate=new Point(md.Next(0,25),md.Next(0,25));
                onPlace=false;
                for(int i= 0;i<snake.Lenght;++i)
                {
                    if(foodCoordinate==snake.Coordinate[i])
                    {
                        onPlace=true;
                        break;
                    }
                }
                
            }
            while(onPlace==true);
        }
        #endregion
        // заканчивается процедура с едой
        //Обработка нажатия на кнопку "Начать игру"
P.S. добавляю исходник с игрой, навсякий случай. Буду признателен вашей помощи!
SnakeGame.rar
Alex33RU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
змейка spydark91 Общие вопросы Delphi 4 16.07.2011 15:12
Змейка на с++ Banner Помощь студентам 5 26.02.2011 16:42
Змейка Vi[RUS] Помощь студентам 1 20.11.2010 21:59
Змейка SAMY93 Общие вопросы Delphi 1 27.06.2010 19:58
змейка =) romiccccc Помощь студентам 0 12.05.2010 11:08