Flutter Belirli Aralık İçinde Rastgele Sayı Oluşturma

Bu yazımda, Flutterın random() fonksiyonunu kullanarak nasıl rastgele sayılar oluşturacağınızı göstereceğim. Bu fonksiyon verilen max aralıktan sayı üretmektedir. Fakat bu yazımda min ve max rasgele sayı aralığını tanımlayacağım. Yani rastgele sayı ürettiğimizde oluşturulan sayı max ve min aralık arasında olacaktır.

#1 İlk olarak material.dart ve dart: math paketini içe aktarın.

import 'package:flutter/material.dart';
import 'dart:math';

#2 void main runApp() metodunu oluşturup MyApp sınıfını çağırıyoruz.

void main() => runApp(MyApp());

#3 Daha sonra StatelessWidget oluşturuyoruz.

class MyApp extends StatelessWidget {
 
}

#4 randomNumber() isimli bir fonksiyonu oluşturuyoruz.  Daha sonra min ve max isimli 2 int tipinde değişken oluşturuyoruz ve değer alanına belirlediğimiz min ve max değerlerini yazıyoruz.

void randomNumber() {
  var random = new Random();

  int minValue = 10;
  int maxValue = 200;
  int result = min + random.nextInt(maxValue - minValue);

  print(result);
}

#5  Widget Build -> Material App -> Scaffold Widget -> Center Widget -> Column Widget, oluşturun. Bu alanda bir buton oluşturup bunun onPress işlevine oluşturduğumuz fonksiyonu ekleyeceğiz.(randomNumber())

Widget build(BuildContext context) {
  return MaterialApp(
      home: Scaffold(
          body: Center(
              child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
        Container(
            margin: const EdgeInsets.fromLTRB(20, 10, 20, 10),
            child: RaisedButton(
              onPressed: () => randomNumber(),
              child: Text(
                'Generate',
                textAlign: TextAlign.center,
                style: TextStyle(fontSize: 20),
              ),
              textColor: Colors.white,
              color: Colors.black,
              padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
            )),
      ]))));
}

#5 main.dart

import 'package:flutter/material.dart';

import 'dart:math';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  void randomNumber() {
    var random = new Random();

    int minValue = 10;

    int maxValue = 200;

    int result = min + random.nextInt(maxValue - minValue);

    print(result);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body: Center(
                child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
          Container(
              margin: const EdgeInsets.fromLTRB(20, 10, 20, 10),
              child: RaisedButton(
                onPressed: () => randomNumber(),
                child: Text(
                  'Generate',
                  textAlign: TextAlign.center,
                  style: TextStyle(fontSize: 20),
                ),
                textColor: Colors.white,
                color: Colors.black,
                padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
              )),
        ]))));
  }
}

Kod Çıktısı:

generate random number

#Bonus

Sonucu ekranda yazdırmak için;

randomNumber.dart

import 'package:flutter/material.dart';
import 'dart:math';

class RandomNumber extends StatefulWidget {
  @override
  _RandomNumberState createState() => _RandomNumberState();
}

class _RandomNumberState extends State<RandomNumber> {
  int result = 0;
  void randomNumber() {
    var random = new Random();

    int minValue = 10;
    int maxValue = 200;
    setState(() {
      result = minValue + random.nextInt(maxValue - minValue);
    });

    print(result);
  }

  @override
  Widget build(BuildContext context) {
    return Center(
        child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
          Container(
              margin: const EdgeInsets.fromLTRB(20, 10, 20, 10),
              // ignore: deprecated_member_use
              child: RaisedButton(
                onPressed: () => randomNumber(),
                child: Text(
                  'Generate',
                  style: TextStyle(fontSize: 20),
                ),
                textColor: Colors.white,
                color: Colors.black,
                padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
              )),
          Container(
            child: Text(result.toString()),
          ),
        ]));
  }
}

main.dart

import 'package:flutter/material.dart';
import 'dart:math';
import 'package:generate_random_number/randomNumber.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  void randomNumber() {
    var random = new Random();

    int minValue = 10;
    int maxValue = 200;
    int result = minValue + random.nextInt(maxValue - minValue);

    print(result);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: RandomNumber()));
  }
}

Kod Çıktısı:

flutter generate random number

Yorum Yap