Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/75: Рейтинг темы: голосов - 75, средняя оценка - 4.59
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85

Заполнить массив - поле для игры сапер.

02.11.2019, 16:21. Показов 14224. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите сделать Задание 1.4.32:

Буду очень благодарен.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2019, 16:21
Ответы с готовыми решениями:

Составить поле для игры в сапер
1)Пастбище представляет собой прямоугольник, разбитый на N x N клеток. В каждой клетке растет трава, имеющая свою калорийность (во всех...

Сетка для игры «Сапер»
Скажите нет ли в WPF какого то совсем простого грида у которого можно было бы просто указать количество строк и количество столбцов и они...

Сформировать массив, представляющий собой поле для игры в «Пятнашки»
Надо сформировать массив, представляющий собой поле для игры в «Пятнашки». Поле является массивом 4x4, в клетках которого располагаются...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.11.2019, 22:16
Цитата Сообщение от valick18 Посмотреть сообщение
Помогите
Поможем. Показывай что уже сделано.

Не по теме:

Впрочем, о чем это я? Если даже лень набрать задачу текстом, согласно Правил форума...

0
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
03.11.2019, 01:36  [ТС]
Код у меня уже есть, но его нужно переделать так чтобы возле звездочек(бомб) были числа отвечающие за количество бомб рядом.
Сам код:
Java
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
public class MyMinesweper {
public static void main(String[]args) {
    int m=Integer.parseInt(args[0]);
    int n=Integer.parseInt(args[1]);
    int p=Integer.parseInt(args[2]);
    int bomb=0;
    int count=-1;
    String [][]sap=new String[m][n]; 
    for(int i=0; i<m; i++) {
        for(int j=0; j<n; j++) {
            sap[i][j]=".";
    bomb=(int)(Math.random()*p);
    if(bomb==0) {
        for(int k=0; k<m; k++) 
            for(int z=0; z<n; z++) 
                sap[k][z]=".";
    }
    sap[i][bomb]="*";
    sap[bomb][j]="*";
    
    //peretasovka
    
    for(int o=0; o<sap.length; o++) {
        for(int l=0; l<sap.length; l++) {
    int peret=(int)(Math.random()*sap.length);
    int peret2=(int)(Math.random()*sap.length);
            
        String temp=sap[o][l];
        sap[o][l]=sap[peret][peret2];
        sap[peret][peret2]=temp;
        if(temp==null) 
            temp=".";
        if(sap[o][l]==null)
            sap[o][l]=".";
        if(sap[peret][peret2]==null)
            sap[peret][peret2]=".";
            }
                
        }
    count++;
    if(count==n) {
        System.out.println();
    count=0;}
    System.out.print(sap[i][j]);
    
        }
    
                }
            }
    
 
}
0
3 / 2 / 1
Регистрация: 02.11.2019
Сообщений: 7
03.11.2019, 01:54
@valik18, можешь его в теги C++ впихнуть??, тогда он будет читабельнее..
0
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
14.01.2021, 22:14  [ТС]
Спустя год спомнил про эту задачку))) И решил её. Может не совсем красиво написано, но оно работает)))
Буду рад если кто-то подскажет как можна решить другим способом или подправит мой код. Удачи!
Вот решение если кому-то будет нужно

Java
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
public class Saper {
    public static void main(String...args){
        int n = 4;
        int m = 4;
        int p = 2;
 
        boolean [][] field = fillArray(n,m,p);
 
        for(int i = 0; i < field.length; i++){
            for(int j = 0; j<field[i].length; j++){
               if(field[i][j]){
                   System.out.print("* ");
               }else{
                  System.out.print(countBomb(field,i,j)+" ");
               }
            }
            System.out.println();
        }
 
    }
 
    public static int countBomb(boolean[][] field, int i, int j){
        int countBomb = 0;
        boolean up = false,down = false, left = false, right = false,
         leftUp = false, rightUp = false, rightDown = false, leftDown = false;
 
        if(i-1>=0)
            up = field[i-1][j];
 
        if(j-1>=0)
            left = field[i][j-1];
 
        if(j+1<field[i].length)
            right = field[i][j+1];
 
        if(i+1<field.length)
            down = field[i+1][j];
 
        if(i-1>=0 && j+1<field[0].length)
            rightUp = field[i-1][j+1];
 
        if(i-1>=0 && j-1>=0)
            leftUp = field[i-1][j-1];
 
        if(i+1<field.length && j-1>=0)
            leftDown = field[i+1][j-1];
 
        if(i+1<field.length && j+1<field[0].length)
            rightDown = field[i+1][j+1];
 
 
        countBomb += right ? 1 : 0;
 
        countBomb += left ? 1 : 0;
 
        countBomb += down ? 1 : 0;
 
        countBomb += up ? 1 : 0;
 
        countBomb += leftUp ? 1 : 0;
 
        countBomb += leftDown ? 1 : 0;
 
        countBomb += rightUp ? 1 : 0;
 
        countBomb += rightDown ? 1 : 0;
 
        return countBomb;
    }
 
 
 
 public static boolean[][] fillArray(int n, int m, int p){
     boolean [][] field = new boolean[n][m];
        for(int i = 0; i <field.length; i++){
            for(int j = 0; j<field[i].length; j++){
                double rand = (Math.random()*p);
                if(rand>p/2.0){
                    field[i][j] = true;
                }else{
                    field[i][j] = false;
                }
 
            }
        }
        return field;
 }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2021, 22:14
Помогаю со студенческими работами здесь

Написать генератор карт для игры «сапёр».
Написать генератор карт для игры «сапёр». Карта размером NxM. Формат ввода Каждая строка содержит два натуральных числа разделённых...

Заполнить массив через поле
Нужна помощь,не могу разобраться Использую Borland C++ Builder 6. На форме ввожу число в поле Edit1, нужно это число засунуть в...

Доработка игры Сапёр
Привет, есть код игры сапёр, писал по учебнику &quot;КУЛЬТИН Visual C++ в задачах&quot;, переписал всё верно, проверил несколько раз. Сделал вывод...

Нужен исходник игры Сапер
Нигде не могу найти нормальный исходник игры Сапер 2002. Помогите пожалуйста.

Сформируйте массив, представляющий собой поле игры в «Крестики-нолики»
Сформируйте массив , представляющий собой поле игры в «Крестики-нолики».Поле является массивом 3х3 , в клетках которого последовательно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru