Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
1

Написать программу, имитирующую кошку

15.11.2019, 18:41. Показов 4789. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать программу, которая будет имитировать кошку. Ей нужно задать имя, но только один раз. Можно кормить, а можно наказывать, что увеличивает или уменьшает её здоровье. Также нужно сделать, чтобы отображался окрас кошки (зелёный, жёлтый, красный), зависящий от здоровья. Окрас должен быть реализован, как вычисляемое свойство. Как это сделать? На лекции говорили что-то про enum, но я не допёр. enum, свойство...
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HomeCat
{
    enum Color
    {
        Green, Yellow, Red
    }
    class Cat
    {
        private string _name;
        private int _health;
        private Color _catColor;
 
        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                if(!string.IsNullOrWhiteSpace(value))
                {
                    _name = value;
                }
                else
                {
                    throw new ArgumentNullException(nameof(_name), "Имя не может быть пустым, попробуйте снова");
                }
            }
        }
        public int Health
        {
            get
            {
                return _health;
            }
            set
            {
                if(value > 0 || value <= 100)
                {
                    _health = value;
                }
            }
        }
        public Color CatColor
        {
            get
            {
                return _catColor;
            }
            set
            {
 
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int act;
 
            Cat n = new Cat();
            Cat h = new Cat();
            Color c = new Color();
 
            Console.Write("Введите имя вашего питомца:");
            n.Name = Console.ReadLine();
            Console.WriteLine();
 
            h.Health = 10;
 
            for( ; h.Health != 0; )
            {
                Console.WriteLine("Вы хотите покормить питомца или наказать?");
                Console.WriteLine("Введите \"1\" и нажмите Enter, чтобы покормить, или \"2\" и нажмите Enter, чтобы наказать");
 
                act = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine();
 
                if(act == 1)
                {
                    h.Health++;
 
                    if (h.Health > 10)
                    {
                        h.Health = 10;
                    }
 
                    Console.WriteLine("Здоровье кошки увеличилось, теперь оно равно {0}\n", h.Health);
                }
                if(act == 2)
                {
                    h.Health--;
                    Console.WriteLine("Здоровье кошки уменьшилось, теперь оно равно {0}\n", h.Health);
                }
                if(h.Health == 0)
                {
                    Console.WriteLine();
                    Console.WriteLine("Кошка умерла, вы слишком жестоко обращались со своим питомцем\n");
                    break;
                }
            }
 
            Console.WriteLine("Нажмите любую клавишу, чтобы закончить программу");
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2019, 18:41
Ответы с готовыми решениями:

Создать программу, имитирующую работу с базой данных
Задача 1. Создать программу, имитирующую работу с базой данных по предложенной предметной области...

Как переделать программу имитирующую падающие снежинки, чтобы они падали на рабочем столе ?
Есть программа падающих снежинок, как сделать, чтобы они падали на рабочем столе(не убирая снимок...

Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе файла
Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе...

Написать программу, имитирующую калейдоскоп
1) Написать программу, имитирующую калейдоскоп. Экран условно делится вертикальной чертой на две...

10
343 / 305 / 135
Регистрация: 14.03.2015
Сообщений: 1,140
Записей в блоге: 1
15.11.2019, 20:28 2
Цитата Сообщение от 4ndrey9 Посмотреть сообщение
Окрас должен быть реализован, как вычисляемое свойство. Как это сделать?
C#
1
2
public Color Color 
    => Health > 50 ? Color.Green : Color.Yellow;
Например так
1
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
16.11.2019, 08:13  [ТС] 3
Но тут же только зелёный и жёлтый цвет. Да и разве свойства это не get и set?
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,643
16.11.2019, 08:19 4
Цитата Сообщение от 4ndrey9 Посмотреть сообщение
Да и разве свойства это не get и set?
Нет, иначе были бы полностью бесполезны.
0
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
16.11.2019, 08:30  [ТС] 5
Так, а мне надо, чтобы ещё красную окраску показывало. Тут только два цвета.
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,643
16.11.2019, 08:39 6
4ndrey9, оператор IF использовать умеете?
0
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
16.11.2019, 08:50  [ТС] 7
Умею. Только вы думаете, что от этого сообщения я понял, куда его девать? У меня в задании написано:"Изменение окраса кошки - вычисляемое свойство". Набираю в интернете, что это, выдаёт запрос на форме, где пишут, что это значение поля, вычисляемое в геттере. Мне при этом всём ещё же надо что ли написать что-то по типу:"Цвет кошки:" - а это уже строка, при этом у нас на лекциях сказали, что использовать Console вне метода Main не стоит. И я вот ничего понять не могу.
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,643
16.11.2019, 09:01 8
4ndrey9, вам выше пример привели вычисляемого свойства. В этом свойстве используется синтаксический сахар "expression body", который заменяет геттер.

Всё, что вам нужно вам выше показали. Осталось заменить выражение своим, вычисляющим три возможных цвета. Благо, что пользоваться оператором IF вы умеете.
0
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
16.11.2019, 11:53  [ТС] 9
C#
1
2
3
4
1
2
public Color Color 
    => Health > 50 ? Color.Green : Color.Yellow;
Так. Ну и куда я должен оператор этот if вставить? Я уже перепробовал кучу разных вариантов. Даже один не могу сделать. Как мне его вообще с этим примером использовать? Куда не вставлю, везде какая-то синтаксическая ошибка. То if тут нельзя вставлять, то нужно ",", то нужно ";", причём я вообще не понимаю, зачем это надо. Я не понимаю, как именно его записать. По сайтам шарился, ничего подобного не нашёл. Там вообще что-то вроде
C#
1
public decimal TotalPrice => BasePrice + Taxes;
0
343 / 305 / 135
Регистрация: 14.03.2015
Сообщений: 1,140
Записей в блоге: 1
16.11.2019, 11:58 10
Лучший ответ Сообщение было отмечено 4ndrey9 как решение

Решение

4ndrey9,
C#
1
2
3
4
5
6
7
8
9
10
public Color Color 
{
    get 
    {
        if (Health > 50) { return Color.Green; }
        else if (Health > 30) { return Color.Yellow; }
        else if (Health == 0) { return Color.Red; }
        return Color.Black;
    }
}
По аналогии с первой ссылкой из гугла, где лежат все ответы на ваши вопросы
1
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 8
16.11.2019, 12:02  [ТС] 11
Блин, спасибо. Я не знаю почему, но так уже пробовал писать, почему-то get красным подчёркивало. Да и вопрос задал:"А разве свойства - это не get и set?" - мне ответили, что нет, иначе они были бы бесполезны. Может что-то я напутал, но я попросту выбросил get из головы.
0
16.11.2019, 12:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2019, 12:02
Помогаю со студенческими работами здесь

Задумал написать программу имитирующую эффект матрицы
1 я проблема с которой столкнулся Я могу сделать это в консоли,но окно консоли имеет ограниченный...

Написать программу, имитирующую снегопад на экране монитора
Помогите, пожалуйста, наткнулся на такую задачу: Написать программу, имитирующую снегопад на...

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru