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