Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 11

Занесение случайных чисел в массив и вычисление их суммы

29.11.2012, 04:31. Показов 1415. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, я в C# полный новичок, нужна ваша помощ, взялся написать игру Блек Джек, хотелось бы узнать каким образом можно заносить в массив случайно сгенерированые числа от 1-11 и в массиве производить их сумирование. По идеи у меня должно быть 2 массива: карты игрока и карты диллера. Вот кусок из кода я создал класс Player в нем метод который генерирует числа, как мне внести их в массив и узнать их сумму.
C#
1
2
3
4
5
6
7
8
9
10
11
12
class Player 
{
    public string PlayerName;
    public int PlayerRandomCard()
    {
    Random PlayerCard = new Random();
    return PlayerCard.Next(1,11); 
    }
 
 
 
}
Заранее блогодарен!
P.S. Сори за ошыбки я с Украины.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2012, 04:31
Ответы с готовыми решениями:

Вычисление суммы 5 случайных чисел
Помогите пожалуйста сделайте это от начала до конца,заранее спасибо Вычисление суммы 5 случайных чисел 1. Разработайте форму, на...

Вычисление суммы N случайных чисел из диапазона
люди помогите пожалуйста!!! Вычисление суммы N случайных чисел из диапазона от 0 до 1.

Двумерный массив случайных чисел с выводом суммы отдельной строки
Не могу сообразить, как посчитать количество отрицательных элементов и сумму положительных в первой строке. Подскажите, пожалуйста ...

8
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
29.11.2012, 05:11
C#
1
2
3
4
5
6
7
8
9
            List<byte> dealerCards = new List<byte>(52);
            List<byte> playerCards = new List<byte>();
            Random random = new Random();
            int sum = 0;
            for (byte i = 0; i < dealerCards.Capacity; i++)
            {
                dealerCards.Add((byte)random.Next(1, 11));
                sum += dealerCards[i];
            }
Прежде, чем что-нибудь писать, нужно что-нибудь почитать.
Переменные в C# принято называть, используя lowerCamelCase, т.е. не PlayerCard, a playerCard.
1
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 11
29.11.2012, 21:13  [ТС]
Спасибо!
0
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
29.11.2012, 21:18
1nSert_c0in,

Не по теме:

можно было просто на кнопку нажать. :)

1
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 11
30.11.2012, 15:15  [ТС]
Помогите ещё раз пожалуйста. В алгоритме занесения случайных чисел я розобрался, но как теперь переделать ево так что бы он возвращал по одному случайно сгенерированому значению для диллера и для плеера (ведь изза цыкла for, коллекция полностю наполняеться и в итоге получаеться сумма из всех елементов сразу ) и сделать так что б ето условие выполнялось до тех пор пока playerCards<=21||dealerCard<=21. Вот еще кусок кода
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
static void Main(string[] args)
        {
             string selectMode;
             Player x = new Player();
             Dealer main = new Dealer();
             
                        
             Console.WriteLine("***************************");
             Console.WriteLine("***************************");
             Console.WriteLine(@"      ♣WELLCOME TO♣");
             Console.WriteLine(@"     ** BlackJack **      ");
             Console.WriteLine("***************************");
             Console.WriteLine("***************************");
             Console.WriteLine();
             Console.WriteLine();
             Console.WriteLine();
             Console.WriteLine("To Select Single Player Press 'S'. ");
             Console.WriteLine("To Select Multiplayer Mode 'M'. ");
             loop2:
             selectMode = Console.ReadLine();
             
             
                 switch (selectMode)
                 {
                     case "s": Console.WriteLine("Wellcome To Single Player Mode."); goto loop;
                     case "m": Console.WriteLine("Wellcome To Multiplayer Mode."); break;
                     default : Console.WriteLine("Pleace Read The Instructions Attentively."); goto loop2;
                 }
 
             loop:
                 Console.WriteLine("Pleace Enter Player Name: ");
                 x.PlayerName = Console.ReadLine();
                 Console.WriteLine("Your Player Name:" + x.PlayerName);
                 Console.WriteLine();
 
            
                  List<byte> dealerCards = new List<byte>(11);
                  List<byte> playerCards = new List<byte>(11);
            Random random = new Random();
       
            int sum = 0;
                                  
            for (byte i = 0; i < 1; i++)
            {
                dealerCards.Add((byte)random.Next(1, 11));
                sum += dealerCards[i];
            }
             int sum2 = 0;
             for (byte j =0;j < 1; j++)
             {
               playerCards.Add((byte) random.Next(1,11));
                 sum2+=playerCards[j];
             }
             
                 
                 Console.WriteLine("You'r Card Number Is: "+sum2 );
                 Console.WriteLine("Dealer Card Number Is: "+sum);
                 Console.ReadLine();
              
            
             }
                          
          }
      }
    
 
 
class Player 
{
    public string PlayerName;
   
 
 
}
Если кто знает подскажыте новичку. Зарание спасибо!
0
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
30.11.2012, 16:34
У вас и так массив заполняется по одному, вам нужно просто сумму выводить на экран не после цикла, а во время его выполнения.
Но если вы хотите управлять порцессом, то мне кажется что циклы тут не очень подходят.

Добавлено через 12 минут
Хотя в принципе можно, воспользовавшись операторами управления циклом.
1
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 11
30.11.2012, 17:22  [ТС]
Да мне надо управлять всем етим дело, надо чтоб на консоль выкидывало по 2 карты (диллера и игрока), до тех пор пока значение одной из карт не достигнет 21 или максимально наближенным к 21 (у сумма карт больше тот и выиграл). Если циклы не подходят чем можно заменить?? Помогите пожалуйста очень надо в строки не успеваю. Заранее благодарен!
0
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
30.11.2012, 18:31
1nSert_c0in, если честно, не особо вчитывался, но если бы я надумал делать карточную игру, я бы, наверное, сделал список List<T> cardBatch (колода карт), затем брал бы рандомное число card = random.Next(cardBatch.Count), и выдирал бы из списка эту карту cardBatch.RemoveAt(card).
1
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
30.11.2012, 18:43
Ну во первых вам нужно все это сделать в одном цикле.
Т.е. примерно так:
Судя по всему на каждом шаге вам нужно проверять кучу условий, кто так сказать ближе подошел к победе дилер или игрок, так как я не особо смотрел в ваш код приведу гипотетический пример.

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
 for (byte i = 0; i < 1; i++)
            {
                dealerCards.Add((byte)random.Next(1, 11));
                playerCards.Add((byte) random.Next(1,11));
                dealerSum += dealerCards[i];
                playerSum += playerCards[i];
 
              // И где то тут условие которое вы проверяете.
             // Если оно выполнилось => break; и выводим результат в консоль
             // типа так
              if(playerSum==21 && dealerSum!=21 || dealerSum>21 && playerSum<21)
             {
                     break;
                     Console.WriteLine("plaer win!")
             }
              if(dealerSum==21 && playerSum!=21 || playerSum>21 && dealerSum<21)
             {
                     break;
                     Console.WriteLine("dealer win!")
             }
              if(dealerSum == playerSum && dealerSum==21)
             {
                     break;
                     Console.WriteLine("Imposible!!! Play again?")
             }
 
            }
Примерно так.
Если у вас цикл ограничен каким то числом, например у каждого всего может быть только 2 карты, то после цикла смотрите кто ближе всего подошел к 21му, т.е. опять условием.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2012, 18:43
Помогаю со студенческими работами здесь

С помощью генератора случайных чисел создать и вывести на экран массив случайных действительных чисел
Задача №1: С помощью генератора случайных чисел создать и вывести на экран массив А 10x10 случайных действительных чисел в диапазоне от 2...

Вычисление суммы квадратов четных чисел и суммы кубов нечетных чисел
Написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N. Проверку числа на четность осуществить с помощью...

Найти суммы двух случайных чисел. a) целых чисел из диапазона от 50 до 100 b) вещественных чисел от 3х с половиной до 8
помогите решить Найти суммы двух случайных чисел. a) целых чисел из диапазона от 50 до 100 b) вещественных чисел от 3х с половиной...

Сформировать массив из случайных чисел, в которых ровно две единицы, стоящие на случайных позициях
Здравствуйте, как можно сгенерировать массив из случайных чисел, в которых ровно две единицы, стоящие на случайных позициях. Вот мои...

Сформулировать массив из случайных чисел,в котором ровно две единицы,стоящие на случайных позициях
Сформулировать массив из случайных чисел,в котором ровно две единицы,стоящие на случайных позициях.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru