Java棋盘游戏

2024-06-24

基本上,我正在用 java 创建一个棋盘游戏,并设法使用数组创建单元格,使其看起来像 10x10 网格。现在我已经对它们进行了编号,它们从左到右从上到下(如图所示)
我正在创建一个类似于蛇和梯子游戏的游戏,但有自己的特色。

问题是:如何创建类似于蛇梯板的锯齿板?

That's how it currently looks: enter image description here

下面的代码是创建数组、打印数组并对其进行编号所需的代码。


名为游戏的对象:

private Cell[][] cell =  new Cell[10][10];

public Game(String nameIt)
{
     super(nameIt);
     JPanel x = new JPanel(); 

 x.setLayout(new GridLayout(10, 10, 2, 2)); 
 for (int r = 0; ir< 10; r++) 
  for (int c= 0; c < 10; c++) 

  x.add(cell[r][c] = new Cell(r, c, this));

}

名为单元格的对象:

private int row;
private int col;
private int cellNum;
static int count = 0;


public Cell(int row, int column, Game guy) 
{

    this.ro = row;
    this.col = column;
    this.parent = guy;

    count = count+1;
    cellNum = count;

    setBorder(new LineBorder(Color.BLUE, 1));   // Set cell's border
}

protected void paintComponent(Graphics p) 
{
    super.paintComponent(p);

    p.drawString(String.valueOf(" " + cellNo), 24, 24);

}

好吧,我不会为您编写确切的代码,但我将向您展示如何使用常规二维数组执行此操作的示例。我现在只有一个 C++ 编译器可用,但它应该足够清楚了:

所以基本上你需要循环遍历行从结束到开始。这就是为什么第一个外循环要从 9 到 0。这将从底行开始并在顶行结束,从而反转。

for (int i = 9; i >= 0; i--) {

    // now the trick to making a "zig-zag" is to alternate between two ways
    // of printing out each row. if i is even, you print out from right to left

    if (i % 2)
        for (int j = 9; j >= 0; j--)
            cout << numbers[i][j] << "\t";

    // and if i is odd, you print it out from left to right
    else
        for (int j = 0; j < 10; j++)
            cout << numbers[i][j] << "\t";

    cout << endl;

}

Result: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java棋盘游戏 的相关文章

  • n 个素数之和 java,困惑

    我读过几篇关于这方面的文章 我什至在一次考试中这样做过 但是是在 vb net 中 它工作得很好 但是当我尝试执行我的程序时 Eclipse 只是不停地运行 否则它会给我错误的答案 这是我的第四次尝试 我需要将前 n 个素数相加 因此我检查
  • Amazon SQS 旧配置文件格式警告

    我正在将消息发布到 Amazon SQS 队列 启动时 我在日志中收到以下警告 http nio 9090 exec 2 BasicProfileConfigLoader The legacy profile format requires
  • 填充表格数据的打印输出

    我知道这可能非常简单 但我在一个文件中有一些数据 例如 Artichoke Green Globe Imperial Star Violetto 24 deep Beans Lima Bush Baby Bush Lima Fordhook
  • 如何指向预分配内存上的 2D/3D 空间

    我对用于嵌入式使用的代码进行了内存优化 它工作得很好 但这样做的结果是我在函数中间得到了大量的 1D 2D 和 3D malloc 和 frees 从而减慢了执行时间 出于多种原因 我决定改变我的做法 我想在执行开始时使用单个 malloc
  • 正则表达式忽略引号之间的文本

    我有一个正则表达式 它是 s 这用于分割字符串 但我不想让它分开 如果它在引号中 我不会使用 split 而是使用 Pattern 和 Matcher A demo import java util regex Matcher import
  • Java 似乎找不到我的本机库

    我正在尝试从我的 jar 中运行我的程序 名为 PViz jar 该 jar 位于一个目录中 其中包含所有依赖的 jar 以及它们所依赖的 so 文件 我使用的是 Mac OS X 当我运行此命令时 java cp PViz jar pvi
  • java中应用程序的CPU核心数和线程数之间有什么关系?

    我是java新手多线程编程 我想到的问题是 根据我的数量 我可以运行多少个线程CPU核心数 如果我运行的线程超过CPU核心数机器运行应用程序会产生开销吗 例如 当我们有一台服务器计算机 其中有一个运行 2 个线程 主线程 开发人员线程 的服
  • JTable 使用行号?

    我正在创建一个程序 其工作原理如下Microsoft Excel 在JAVA中 我的问题是如何将行号放在每行旁边JTable 我已经看到它在其他 Java 程序中工作 我只是不知道如何将它包含在我的程序中 谷歌给了我这个网站 http ti
  • 信用卡号应该存储为字符串还是整数?

    是啊 只是想想而已 我应该将在我的网站上输入的信用卡号存储为字符串还是整数 我的意思是 它们由数字组成 这让我认为它是一个整数 但我不对它们进行数学运算 所以也许字符串更合适 编辑 所以我必须在加密之前存储在某个时刻输入的数字 我可能应该更
  • 用 Maven 解决 jar 地狱问题?

    我正在使用两个 jars A 和 B B 是一个库 A 的类使用库 B 中的一些旧类 现在 当我将这两个 jars 包含在我的项目类路径中时 这给我带来了一个问题 因为它们的名称相同两个班级 但其中一个班级比另一个班级年长 并且行为方式不同
  • Java 将字符串拆分为单词逗号和句号

    我一直在使用myString split s 得到每个单词 但现在我想把逗号和句号也分开 例如 妈妈总是说生活就像一盒巧克力 你永远不知道会得到什么 to Mama always said life was like a box of ch
  • 升级到 Gradle 2.0 后:在根项目上找不到属性“Compile”

    为了避免在构建 Java 源代码时出现有关特殊字符的警告 我将此行放在我的gradle build在升级到 Gradle 2 0 之前运行良好 tasks withType Compile options encoding UTF 8 升级
  • 将变量从一个 jsp 发送到另一个 jsp

    我有一个 JSP 文件jsp 1 jsp和另一个 JSP 文件jsp 2 jsp 我已经包括了jsp 2 jsp in jsp 1 jsp using 现在我需要某个元素上的单击事件 在该事件中 我想将字符串变量传输到包含的 jsp 中 假
  • 如何从 PHP 中的两个不同数组获取公共值

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有两个带有一些用户 ID 的数组 array1 array 5 26 38 42 array2 array 15 36 38 42 我需
  • Java错误:不是一个语句,我不知道为什么?

    我真的不确定是什么导致发生这个编译时错误 我一直在试图弄清楚 但似乎找不到问题所在 ClassTable java 253 error not a statement class c class classes nextElement Cl
  • Hibernate 过滤器仅在从数据库加载数据后应用吗?

    我在网上发现了一些相互矛盾的信息 有谁知道Hibernate过滤器是否影响生成的sql 或者只是过滤从数据库读取的数据 休眠过滤器影响 where 子句生成的 SQL The Hibernate 过滤器简介 http java dzone
  • 如何在类图中对自定义异常关联进行建模?

    Reading here http www jguru com faq view jsp EID 62790 似乎使用泛化来建模自定义异常类很常见 它没有提到的是我如何对与可能引发自定义异常的类的关联进行建模 请注意 我并不是在问如何在引发
  • 远程数据库的“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障”

    我尝试连接到远程 MySQL 数据库 但失败并收到此错误 com mysql jdbc exceptions jdbc4 CommunicationsException Communications link failure 困惑的是 当我
  • Gradle 将多个依赖项提取到不同的目录

    我正在尝试将多个依赖项提取到不同的目录中 我尝试了以下方法 configurations cppDependencies dependencies cppDependencies com group artifact1 1 0 cppDep
  • Guava Splitter/Joiners 每次使用时都应该创建吗?

    Guava 包含用于拆分和连接字符串的实用程序 但它需要实例化 Splitter Joiner 对象才能执行此操作 这些是小对象 通常仅包含要分割 合并的字符 维护对这些对象的引用以便重用它们是一个好主意 还是在需要它们时创建它们并让它们被

随机推荐

  • plt.style.use('./deeplearning.mplstyle') 不起作用

    我正在尝试运行 Coursera 中机器学习专业的可选实验室 并且我坚持使用一些库和函数 我无法安装 plt style use deeplearning mplstyle 我收到错误消息 ModuleNotFoundError Trace
  • Java AES 加盐加密

    好吧 事实证明我在加密 解密方面很糟糕 我只是不明白 我怎样才能让Java加密String message1 hello world with String salt mySalt 使用AES加密 加密后我该如何解密 如果您有时间提供最基本
  • 复制两个 Excel 实例之间的范围

    我正在运行两个单独的 Excel 实例 并且尝试将数据从一个工作簿中的范围复制到另一个工作簿中 我有这个代码 Sub CopyValues Dim xlApp As Excel Application Set xlApp GetObject
  • 根据 Angular 2 中的 DOM 状态实例化嵌入组件

    常见菜单使用案例 menu menu
  • 在 pandas 数据框中搜索字符串列表并将每个搜索字符串添加到新列

    我有一个带有文本列 描述 的数据框 我有一个搜索字符串列表 search FR 001 FR 002 FR 003 FR 004 我想使用搜索列表中的字符串搜索数据框 我用了 df loc df Description str contai
  • 深层链接不适用于 Android

    我正在跟进创建指向应用程序内容的深层链接 https developer android com training app links deep linking html在 Android 开发人员文档中创建指向 Android 应用程序中
  • 如何增加pyqt4中QTableWidget中标题标签的行高和行项目的字体大小

    在这里我想增加标题标签的行高和单元格项目的字体大小 在我的代码中我使用self table setRowHeight 方法 但它不起作用 所以请告诉我他们有什么方法可以增加标题标签的行高和单元格项目的字体大小 下面给出的是我的代码 impo
  • 检查 url 是否为 Mercurial 存储库(如 git ls-remote)

    如何检查 URL 是否指向 Mercurial 存储库 对于 git 我会使用git ls remote url并检查返回值 hg 有类似的东西吗 您可以使用hg identify为此 它可以针对远程存储库运行 如果给定的路径不是存储库 M
  • 在数据库中插入具有相同组合框的 2 个函数的字段。仅保存第一个函数的数据

    我有一个用 tkinter 制作的数据库管理器 我在其中插入和保存数据 它工作正常 一切正确 它正确保存一切 我尝试添加新插入 这就是我遇到问题的地方 但是 我无法从同一组合框添加新的字段插入 即同一组合框插入 2 个内容 我用2个不同的c
  • python:这是从字典中删除元素的错误方法吗?

    我用这种方法从字典中删除 emelment d ele data d ele None 我认为通过这个我可以删除原始元素上的引用 以便可以释放删除的数据 而不存在内存泄漏 这是正确的方法吗 您可以使用以下命令从字典中删除元素del gt g
  • 是否可以使用 JavaScript focus() 函数将焦点集中在

    是否可以专注于一个 div 使用JavaScriptfocus 功能 我有一个 div tag div You have 3 tries left div 我正在努力关注以上内容 div using document getElementB
  • 按正确的列(即 TemplateField)对 gridView 进行排序

    我在 gridView 中排序列时遇到问题 我只想选择列中名称等于 完成 的那些行 我的 gridView 由一些 BoundField 和 TamplateFields 组成 当我想按正确的 BoundField 排序时 我将正确的字符串
  • 如何在具有名为“attribute”的列的数据库上使用 ActiveRecord? (危险属性错误)

    我正在访问一个无法更改的数据库 它有一个名为attribute定义的 每当我尝试访问attribute 我得到这个异常 属性 由 ActiveRecord ActiveRecord DangerousAttributeError 定义 my
  • 如何减去日期分量?

    就像今天一样Friday 即6根据NSCalendar 我可以使用以下方法得到这个 Calendar current component weekday from Date 我如何获得工作日部分Saturday上周 应该是7 如果我做Cal
  • 从点集合创建 .stl 文件

    因此 我使用的软件接受轮廓或 stl 文件形式的 3D 对象 我的轮廓沿着 z 平面 每个平面都有一个唯一的 z 我必须修改实验的轮廓 现在轮廓对于每个平面没有唯一的 z 它们现在与 z 0 平面略有角度 这些点代表 3D 对象的边缘 获取
  • 显示 � 而不是 £

    从 mysql 数据库提取数据时 显示符号 而不是 有问题的字段已整理为 utf8 general ci 我也有在页面的 head 标签上 有什么想法吗 Use mysql query SET NAMES UTF8 在对数据库执行任何查询之
  • scala 元组拆包

    我知道这个问题已经以不同的方式出现过很多次 但我仍然不清楚 有没有办法达到以下目的 def foo a Int b Int foo a b right way to invoke foo foo getParams is there a w
  • 禁用在 Visual Studio 2017 中不起作用的 Azure Functions 属性

    我有带计时器触发器的 Azure 功能 public static void Run TimerTrigger 0 15 Disable True TimerInfo myTimer TraceWriter log 这里的Disable t
  • 如何使用 nexus/maven 将依赖项添加到第 3 方库

    我正在尝试专业地使用 Nexus m2eclipse maven 3 并且我有一个巨大的第 3 方库 需要很多依赖项 有没有什么方法可以通过将这个第三方库及其所有链接的依赖项上传到 Nexus 来减轻我的痛苦 这样任何需要它的人都只需为这个
  • Java棋盘游戏

    基本上 我正在用 java 创建一个棋盘游戏 并设法使用数组创建单元格 使其看起来像 10x10 网格 现在我已经对它们进行了编号 它们从左到右从上到下 如图所示 我正在创建一个类似于蛇和梯子游戏的游戏 但有自己的特色 问题是 如何创建类似