konanomono
@konanomono (伝説の 粉)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Dart言語を使用してゲームを作ってみたい

解決したいこと

少々気になる事があったので、投稿いたします。

Dart言語でflutterを使用せずに、ゲームを作ってみようと思うのですが(想定ではマインスイーパー)

リストで二次元配列を作成する方法を探してみて、やってみたのですがリストの配列が想定では9*9を出力したかったのですが、一直線でしか表現できませんでした。

なので、エンジニアの方々のお知恵をお借りできたらと思います。

大変申し訳ありませんが、よろしくお願いいたします。

0

1Answer

一般的にサイズの決定している2次元リストは以下のように作れると思います。

// 9×9の0埋め2次元リスト
List<List<int>> cells = List.generate(9, (_) => List.generate(9, (_) => 0));

リストで二次元配列を作成する方法を探してみて、やってみたのですがリストの配列が想定では9*9を出力したかったのですが、一直線でしか表現できませんでした。

どんな方法を試しましたか?(どのウェブサイト・書籍を参考にしましたか?)

余談ですが個人的にはFlutterを使わないのであればdartで書く必要は全くないと思います。UIの作りやすさ・トライアンドエラーのしやすさから言えばHTML+JavaScriptが簡単だと思いますし、コードの書き方に依りますが2次元配列にせずとも1次元の配列でも十分に作れます。

1Like

Comments

  1. @konanomono

    Questioner

    なるほどです。
    ご回答ありがとうございます。

    下記のサイトを参考にしましたが、DartPad上のConsole上では
    二次元配列はできますが、その表示は一直線で表示されてしまうため、
    質問をいたしました。
    https://teratail.com/questions/153635

    できれば、下記のように表示を行い、その上から■などのマスに
    被せて各数字を隠したいと考えています。
    [[0, 0], [0, 0],
    [0, 0], [0, 0]]



    [■,■,
    ■,■]

    またDartを使用する面で、現在Dartの勉強を行なっており、
    そちらでDartPad上でマインスイーパーのようなゲームができたらな
    と考えているため、Dartで質問の方を書かせていただいております。
  2. DartPadに詳しくないので的外れかもしれませんが、UIを作らずコンソール上でマインスイーパを完結させるということでしょうか?
    コンソール上で完結させるとすればマウス操作もできないと思うのですが、操作方法はどのように想定されていますでしょうか?

    ちなみにリストを行ごとに改行してコンソールに表示したいのであれば
    print(cells.join("\n"));
    とすれば表示自体はできます。(for文で行ごとにprintしても同じです。)
  3. @konanomono

    Questioner

    はい、その想定でいます。
    少々回りくどいですが、操作については座標の指定をしていこうとおもっております。
  4. 軽く調べただけですが、DartPadでは'dart:io'をサポートしていないようなので、入力は実装できないと思います。
  5. @konanomono

    Questioner

    なんと…、調べていただきありがとうございます。

    マスを作って爆弾のようなものを配置して、盤面を◻️で隠すまでぐらいですねぇ…

Your answer might help someone💌