Курсы по программированию

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Демо игры / Камень ножницы бумага

  • На этом уроке мы напишем игровую программу
    по мотивам детской игры на руках - «Камень-Ножницы-Бумага».

    Задание:
    Написать игру и победить компьютер.
  • Дата отправки отчёта: 10 февраля 2018 г.
  • Задание выполнено: за 13 дней 16 час. 45 мин.
  • Чему научился: Научился внимательно смотреть урок. И пользоваться отладчиков для поиска ошибок. Но здесь надо видео об этом а его нет. Если есть такое видео, как пользоваться отладчиком - исправьте меня и киньте ссылку я посмотрю.
    То видео, которое видел я, то было для С++ и для продвинутого. А у меня уровень начинающий.
    Ну и как всегда хочу сказать спасибо Евгению Витольдовичу за тщательно проработанный материал.
    У меня получилось так, что делал я программу, делал вместе с Евгением Витольдовичем. Делал, делал и запустил. И получилось нажимаю на камень и у компьютера выпали ножницы. И так я победил. И затем начал всё время нажимать на камень и получилось у меня вот так вот 31 победа против 2-х поражений.
    Я понял, что эта лажа и мне уже было неинтересно.
    И чудо!
    Тут в конце Евгений Витольдович и говорит:
    В: добавлю – когда мы щёлкаем мышкой мы должны посмотреть, какой у нас режим. Если у нас режим game, то мы отправляем на проверку результат. В ином случае мы должны просто начать игру.
            private void user_pictureBox_kam_MouseClick(object sender, MouseEventArgs e)
            {
                if (mode == "game")
                    check_result();
                else
                    start_game();
            }
    И получается, что я вписал этот код (хотя я чётко ещё не понимал, что произойдёт). И уже у меня не получилось выиграть 31 раз против 2. А получилось так, как на скриншоте 1-2.
    СПАСИБО!
  • Что было сложным: Самое сложное было найти ошибку. Это смешно, но только с 7-го раза это у меня получилось. Всё я пересмотрел. И нашёл. А ВСЁ ПОТОМУ, ЧТО НЕТ ВИДЕО  - КАК ПОЛЬЗОВАТЬСЯ ОТЛАДЧИКОМ НАЧИНАЮЩЕМУ! ЕВГЕНИЙ ВИТОЛЬДОВИЧ! СНЯТЬ ВИДЕО ОБ ЭТОМ - ЭТО ДЛЯ ВАС КАК УЧИТЕЛЯ ЗАДАЧА  №1. ХОТИТЕ ВЫ ЭТОГО ИЛИ НЕТ.
    Лично я умею пользоваться дебагером для HTML/CSS, но там он встроен в браузер и имеею другие функции. Здесь же я включаю отладчик и непонятно, что там он открывает я не могу найти даже те окна, где показываются ошибки. Вообщем такое видео мне необходимо.
  • Оценка видео-уроку:
Отчёт от 16503 за Демо игры / Камень ножницы бумага


Отчёт от 16503 за Демо игры / Камень ножницы бумага




Оцени работу

 
Сохранить страницу:

16503. --
Serpimolot
Serpimolot
ответить
# Демо игры / Камень ножницы бумага / 2018-02-03 19:53

ПОМОГИТЕ!


459. --
Сергей Сергеевич
Сергей Сергеевич
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-03 22:27

private void panel_kam_MouseEnter(object sender, EventArgs e)
{
      show_user_figure((((Panel)sender).Tag).ToString());
}

у тебя название события не правильное, поэтому он не может найти , исправь название panel_kam_MouseEnter на user_panel_kam_MouseEnter


16503. --
Serpimolot
Serpimolot
ответить
→  Сергей Сергеевич  # Демо игры / Камень ножницы бумага / 2018-02-04 06:14

Сделал только что так, как ты мне написал. Не помогло. Всё равно выдаёт ошибку.


459. --
Сергей Сергеевич
Сергей Сергеевич
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-04 09:20

Пришли скриншот кода.


459. --
Сергей Сергеевич
Сергей Сергеевич
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-04 09:41

Или тут в сообщении пришли весь код.


16503. --
Serpimolot
Serpimolot
ответить
# Демо игры / Камень ножницы бумага / 2018-02-05 11:17

Походу неглядя мой отчёт проверяют. Красавцы. Уже я 9 баллов набрал.


16503. --
Serpimolot
Serpimolot
ответить
# Демо игры / Камень ножницы бумага / 2018-02-05 11:19

using System;
using System.Windows.Forms;

namespace KNB4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void show_user_figure(string figure)
        {
            pictureBox_kam.Visible = figure == "kam";
            pictureBox_noz.Visible = figure == "noz";
            pictureBox_bum.Visible = figure == "bum";
        }
       
        private void user_panel_kam_MouseEnter(object sender, EventArgs e)
        {
            show_user_figure((((Panel)sender).Tag).ToString());
        }
    }
}


16503. --
Serpimolot
Serpimolot
ответить
# Демо игры / Камень ножницы бумага / 2018-02-05 11:19

namespace KNB4
{
    partial class Form1
    {
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Код, автоматически созданный конструктором форм Windows

        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            this.user_panel_kam = new System.Windows.Forms.Panel();
            this.user_panel_noz = new System.Windows.Forms.Panel();
            this.user_panel_bum = new System.Windows.Forms.Panel();
            this.panel4 = new System.Windows.Forms.Panel();
            this.pictureBox_kam = new System.Windows.Forms.PictureBox();
            this.pictureBox_noz = new System.Windows.Forms.PictureBox();
            this.pictureBox_bum = new System.Windows.Forms.PictureBox();
            this.user_panel_kam.SuspendLayout();
            this.user_panel_noz.SuspendLayout();
            this.user_panel_bum.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_kam)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_noz)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_bum)).BeginInit();
            this.SuspendLayout();
            //
            // user_panel_kam
            //
            this.user_panel_kam.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.user_panel_kam.Controls.Add(this.pictureBox_kam);
            this.user_panel_kam.Location = new System.Drawing.Point(12, 12);
            this.user_panel_kam.Name = "user_panel_kam";
            this.user_panel_kam.Size = new System.Drawing.Size(120, 120);
            this.user_panel_kam.TabIndex = 0;
            this.user_panel_kam.Tag = "kam";
            this.user_panel_kam.MouseEnter;
            //
            // user_panel_noz
            //
            this.user_panel_noz.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.user_panel_noz.Controls.Add(this.pictureBox_noz);
            this.user_panel_noz.Location = new System.Drawing.Point(148, 12);
            this.user_panel_noz.Name = "user_panel_noz";
            this.user_panel_noz.Size = new System.Drawing.Size(120, 120);
            this.user_panel_noz.TabIndex = 0;
            this.user_panel_noz.Tag = "noz";
            this.user_panel_kam_MouseEnter;
            //
            // user_panel_bum
            //
            this.user_panel_bum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.user_panel_bum.Controls.Add(this.pictureBox_bum);
            this.user_panel_bum.Location = new System.Drawing.Point(283, 12);
            this.user_panel_bum.Name = "user_panel_bum";
            this.user_panel_bum.Size = new System.Drawing.Size(120, 120);
            this.user_panel_bum.TabIndex = 0;
            this.user_panel_bum.Tag = "bum";
            this.user_panel_kam_MouseEnter;
            //
            // panel4
            //
            this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.panel4.Location = new System.Drawing.Point(475, 12);
            this.panel4.Name = "panel4";
            this.panel4.Size = new System.Drawing.Size(120, 120);
            this.panel4.TabIndex = 0;
            //
            // pictureBox_kam
            //
            this.pictureBox_kam.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_kam.Image")));
            this.pictureBox_kam.Location = new System.Drawing.Point(0, 0);
            this.pictureBox_kam.Name = "pictureBox_kam";
            this.pictureBox_kam.Size = new System.Drawing.Size(120, 120);
            this.pictureBox_kam.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            this.pictureBox_kam.TabIndex = 1;
            this.pictureBox_kam.TabStop = false;
            this.pictureBox_kam.Visible = false;
            //
            // pictureBox_noz
            //
            this.pictureBox_noz.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_noz.Image")));
            this.pictureBox_noz.Location = new System.Drawing.Point(0, 0);
            this.pictureBox_noz.Name = "pictureBox_noz";
            this.pictureBox_noz.Size = new System.Drawing.Size(120, 120);
            this.pictureBox_noz.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            this.pictureBox_noz.TabIndex = 1;
            this.pictureBox_noz.TabStop = false;
            this.pictureBox_noz.Visible = false;
            //
            // pictureBox_bum
            //
            this.pictureBox_bum.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_bum.Image")));
            this.pictureBox_bum.Location = new System.Drawing.Point(0, 0);
            this.pictureBox_bum.Name = "pictureBox_bum";
            this.pictureBox_bum.Size = new System.Drawing.Size(120, 120);
            this.pictureBox_bum.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
            this.pictureBox_bum.TabIndex = 1;
            this.pictureBox_bum.TabStop = false;
            this.pictureBox_bum.Visible = false;
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(684, 402);
            this.Controls.Add(this.panel4);
            this.Controls.Add(this.user_panel_bum);
            this.Controls.Add(this.user_panel_noz);
            this.Controls.Add(this.user_panel_kam);
            this.Name = "Form1";
            this.Text = "Камень - Ножницы - Бумага";
            this.user_panel_kam.ResumeLayout(false);
            this.user_panel_noz.ResumeLayout(false);
            this.user_panel_bum.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_kam)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_noz)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox_bum)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Panel user_panel_kam;
        private System.Windows.Forms.Panel user_panel_noz;
        private System.Windows.Forms.Panel user_panel_bum;
        private System.Windows.Forms.Panel panel4;
        private System.Windows.Forms.PictureBox pictureBox_kam;
        private System.Windows.Forms.PictureBox pictureBox_noz;
        private System.Windows.Forms.PictureBox pictureBox_bum;
    }
}


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-05 11:56

Ты консольные задачи решаешь?


459. --
Сергей Сергеевич
Сергей Сергеевич
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-05 14:33

Ты присылаешь один и тот же код, ты даже его не изменил как я тебе написал, если не получается, то переходи на другой урок, а этот оставь, а проще удалить проект и заново не торопясь выполнить его и делать все как автор говорит и тогда не будет ошибок, я тоже иногда тороплюсь и получаю ошибку, мы здесь учимся не только писать код быстро, но и находить ошибки и сразу исправлять.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-05 14:55

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


9913. --
vip
vip
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-10 12:42

Да поддерживаю. Неплохо было бы с отладкой подробно. Как отслеживать переменные события и прочее


16503. --
Serpimolot
Serpimolot
ответить
→  Иван Воронин  # Демо игры / Камень ножницы бумага / 2018-02-10 12:51

Последовал твоему совету. И вот, закончил.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-10 16:13

По поводу отладчика, почти в каждом курсе Евгегений витольдович пользуется им и подробно показывает это деяние, конкретного урока именно по дебагеру я тут пока не встречал, но, к примеру, курс по шифрованию на C#, там точно есть уроки, где демонстрируется, как пользоваться дебагером. Ещё в каких то курсах тоже демонстрировалось это, в любом случае, выполняя каждый день уроки, доберёшься до того момента, когда ты увидишь этот момент и будешь смеяться ещё сильнее, чем когда 7 раз переписывал урок. Удачи.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Serpimolot  # Демо игры / Камень ножницы бумага / 2018-02-10 16:13

И ещё, дебагер нужен тогда, когда уже не понятно, в чём причина бага, в основном дебагер отлично работает в самой голове программиста.


  • Отчёт оценивали:
    6452Кирилл Шмойлов+1   9913vip+1   10494Алексей В.+1   459Сергей Сергеевич+1   1710Степан+1   3922Александр+1   17093jin+1   11582Родион+1   16533Андрей Шевченко+1   692Андрій+1   8707Володимир+1   7308AZANIR+1   16989Денис Корнеев+1   Посетитель+1   8877gorynych+1   Посетитель+1   27919support-private-34@inboxkitten.com0  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Использование тэгов! События мышки , картинки и панели
Трудности: Непонятно с тегами, в видео сказано что было обьяснение раньше, но видимо это в старой версии было((



Научился: Закрепил навыки по Scroll и Timer, научился пользоваться инструментами Panel & PictureBox, а также научился писать более сложные функции. Кроме того, вспомнил математику.
Трудности: Сложно было понять функцию подсчёта очков и показа картинок.
Спасибо за урок! Благодаря Вам я лишний раз убедился в том, что программирование и математика очень дружат между собой:) P.S. я немного исправил функцию comp_speed, с точки зрения математики :)