Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему "случайное" число одно и то же? 
:(
    Опции темы
slavaentp
Дата 7.1.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.6.2008

Репутация: нет
Всего: -1



Создал проект, стандартная Windows Forms.

Сделал textbox, кнопку и два label.

Компьютер загадывает число, надо угадать, какое именно.

Когда жмёшь на кнопку - он сравнивает введённое значение с "загаданным" и пишет, верно угадано или нет.

Проблема: при каждом запуске всё время "загадывается" одно и то же число. Почему?

Вот какой Form1.cs

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        System.Random r = new Random();
        private int zagadannoe_chislo;
        private int diapazon;        
        public Form1()
        {
            diapazon = 1;

            InitializeComponent();
            Zagadat_Chislo();
        }
        private void Zagadat_Chislo()
        {            
            zagadannoe_chislo = r.Next(diapazon);
            label2.Text = "Угадайте число от 0 до " + diapazon;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(textBox1.Text) == zagadannoe_chislo)
            {
                label1.Text = Convert.ToString("Верно!");
            }
            else
            {
                label1.Text = Convert.ToString("Неверно. Число было " + zagadannoe_chislo);
            }
        }
    }
}


PM MAIL   Вверх
kemiisto
Дата 7.1.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Вопрос: сколько целых чисел лежит в диапазоне (0; 1] (или [0; 1) - таких тонксотей .NET'ого Random не знаю).
Ответ: одно. Либо 0, либо 1. По моим соображениям 1.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
slavaentp
Дата 7.1.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.6.2008

Репутация: нет
Всего: -1



kemiisto

LOL, точноsmile)))) Спасибо.

Кстати, заодно можете сказать, почему в языках программирования счёт начинается с 0? Очень неудобно, путает. И насколько я знаю, программеры тоже предпочитают сохранять счёт с нуля, не меняют его.
PM MAIL   Вверх
Dims
Дата 7.1.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Цитата(slavaentp @  7.1.2009,  21:01 Найти цитируемый пост)

Кстати, заодно можете сказать, почему в языках программирования счёт начинается с 0? Очень неудобно, путает.


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

Не во всех языках так. Иначе, например, в Бейсике, Матлабе. По-моему, в Фортране, уже не помню.
PM MAIL   Вверх
Alekz
  Дата 8.1.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 5.2.2008
Где: Запорожье, Украин а

Репутация: 1
Всего: 2



Цитата(slavaentp @ 7.1.2009,  21:01)
Кстати, заодно можете сказать, почему в языках программирования счёт начинается с 0? 

Это естественно с точки зрения железа.

Это сообщение отредактировал(а) Alekz - 8.1.2009, 12:45
PM MAIL   Вверх
Gaudi
Дата 20.1.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 18.3.2007

Репутация: нет
Всего: нет



Цитата(slavaentp @ 7.1.2009,  19:01)
Кстати, заодно можете сказать, почему в языках программирования счёт начинается с 0?

Для массивов - индексация с 0 означает, что 1-ый эл-нт находится по смещению 0 от начала массива.
Как понятнее
Код

*(p+n) = a[n]

или
Код

*(p+n) = a[n+1]

PM MAIL   Вверх
СорвиГолова
Дата 29.1.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 19.11.2008

Репутация: нет
Всего: нет



Цитата

Вопрос: сколько целых чисел лежит в диапазоне (0; 1] (или [0; 1) - таких тонксотей .NET'ого Random не знаю).
Ответ: одно. Либо 0, либо 1. По моим соображениям 1. 


Поправка - только 0

А вообще я использую перегруженную версию

Код

rnd.Next(minValue, maxValue);


Следует учитывать, что на самом деле учитывается промежуток [minvalue;maxValure),
то есть минимальное значение допустимо для результата.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.