Загрузка данных


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

Шаг 1: Создание проекта

1. Откройте Android Studio.
2. Нажмите File (в верхнем левом углу) -> New -> New Project.
3. В окне выбора шаблона выберите Empty Views Activity (или просто Empty Activity, как написано в методичке) и нажмите Next.
4. Настройте проект:
   · Name: Guessing The Number (или Угадай число)
   · Language: Java
   · Minimum SDK: оставьте как есть (например, API 14 или выше).
5. Нажмите Finish и дождитесь окончания загрузки проекта (Gradle sync).

После загрузки у вас будет два основных файла:

· activity_main.xml (находится в app/src/main/res/layout/)
· MainActivity.java (находится в app/src/main/java/com/example/guessnumber/)

---

Шаг 2: Настройка интерфейса (activity_main.xml)

Откройте файл activity_main.xml. Вам нужно переключиться в режим Code (вкладка справа сверху), чтобы видеть XML-код.

Удалите всё, что там есть, и вставьте следующий код (полностью скопирован с фото):

```xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <RelativeLayout
        android:layout_width="409dp"
        android:layout_height="729dp"
        android:background="#F3A68E"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginStart="77dp"
            android:layout_marginLeft="77dp"
            android:layout_marginTop="47dp"
            android:background="#FF9100"
            android:text="GUESS THE NUMBER"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="391dp"
            android:layout_height="68dp"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginStart="21dp"
            android:layout_marginLeft="21dp"
            android:layout_marginTop="147dp"
            android:text="I am thinking a number between 1 to 100. Can you guess what it is ?"
            android:textSize="24sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

        <EditText
            android:id="@+id/editId"
            android:layout_width="348dp"
            android:layout_height="67dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginTop="271dp"
            android:layout_marginEnd="30dp"
            android:layout_marginRight="30dp"
            android:ems="10"
            android:gravity="center"
            android:hint="ENTER"
            android:inputType="numberDecimal" />

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_marginEnd="152dp"
            android:layout_marginRight="152dp"
            android:layout_marginBottom="266dp"
            android:onClick="clickFunction"
            android:text="GUESS"
            android:textSize="30sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

    </RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
```

---

Шаг 3: Написание логики игры (MainActivity.java)

Откройте файл MainActivity.java. Полностью удалите код, который там есть по умолчанию, и вставьте следующий код (собранный из фото 4 и 5 без комментариев):

```java
package com.example.guessnumber;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    int result;
    static int getRandomNumber(int max, int min)
    {
        return (int)((Math.random()
                * (max - min)) + min);
    }

    public void makeToast(String str)
    {
        Toast.makeText(
                MainActivity.this,
                str,
                Toast.LENGTH_SHORT)
                .show();
    }
    public void clickFunction(View view)
    {
        int userGuessing;
        EditText variable
                = (EditText)findViewById(
                R.id.editId);
        userGuessing
                = Integer.parseInt(
                variable
                        .getText()
                        .toString());
        if (userGuessing < result) {

            makeToast("Think of Higher Number, Try Again");
        }
        else if (userGuessing > result) {
            makeToast("Think of Lower Number, Try Again");
        }
        else {
            makeToast(
                    "Congratulations,"
                            +" You Got the Number");
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int min = 1;
        int max = 100;
        result = getRandomNumber(min, max);
    }
}
```

---

Шаг 4: Запуск и проверка

1. В верхней панели Android Studio выберите ваше виртуальное устройство (эмулятор) или подключите телефон.
2. Нажмите зеленую кнопку Run (треугольник ▶).
3. Приложение запустится. Введите число от 1 до 100 в поле, нажмите кнопку "GUESS".
4. Внизу экрана (Toast) появятся подсказки: "Think of Higher Number..." (если ваше число меньше загаданного), "Think of Lower Number..." (если больше) или "Congratulations..." (если угадали).

Примечание: В коде из методички используется getRandomNumber(int max, int min), но в onCreate он вызывается как getRandomNumber(min, max). Из-за этого числа 1 и 100 могут поменяться местами (загадается число от 100 до 1, что даст отрицательные значения). Я написал код точь-в-точь как на фото. Если при тестировании игра будет выдавать странные числа (например, -50), просто поменяйте в самом низу кода getRandomNumber(min, max) на getRandomNumber(max, min).