- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我创建了一个程序,我可以在其中以随机方向(水平或垂直)在 2D 阵列的边界内随机放置两艘船。
我面临的唯一问题是试图防止船只重叠。
这是我的代码片段:
for ( row = 0; row < SIZE; row++ )
{
printf( "%c | ", a++ );
for ( column = 0; column < SIZE; column++ )
{
board[row][column] = ' ';
for ( i = 0; i < 4; i++ )
{
if ( battleship[i].column == column )
{
if ( battleship[i].row == row )
{
board[row][column] = 'B';
}
}
}
for ( i = 0; i < 5; i++ )
{
if ( carrier[i].column == column )
{
if ( carrier[i].row == row )
{
board[row][column] = 'A';
}
}
}
printf( "%c ", board[row][column] );
}
printf( "|\n" );
}
我如何检查船是否已经存在,如果存在,从头开始重新开始循环,清除现有值?
最佳答案
遍历棋盘上的每个点,然后检查棋盘上的那个点是否对应于战舰或航母的 4 或 5 个点,这会降低代码的效率。
为什么不用空白字符 ' '
填充面板。然后循环遍历你的战舰和航母对象,检查战舰或航母要占据的棋盘上的点是否都是空的空间' '
。如果它们要占据的都是空白区域 ' '
,那么它什么也没有碰撞,您可以将棋盘点更改为 'A'
或 'B '
相应地。如果确实发生碰撞,您可以随机生成该船的位置并再次检查。
关于C编程-战舰程序-如何防止舰船重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086049/
所以,我必须在 10x10 的板上制作一个用户对计算机的 Battleship 游戏来上编程课。我必须让计算机随机放置五艘大小为 5、4、3、3 和 2 的船。 我所做的是,我生成了 0 到 9 之间
我正在学习创建一个java游戏,对java来说还是个新手。现在我想创建一个战舰游戏。但现在我被困在这里了。现在,当我随机放置船作为电脑板时,有时它会与之前的船重叠,因此游戏变得不平衡。其次,在我收到玩
我正在制作战舰游戏,一切正常。但是由于我加入了一个回合系统,游戏无法正常运行。游戏有两个棋盘(一个是隐藏的,另一个是“公开的”,对手可以看到(所以没有船只)。隐藏的有效,但公众每回合都会重置,所以你看
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我正在制作一款战舰游戏。我创建了一个 Ship 类来为船只提供位置。 创建类后,我必须创建所有实例,我想知道是否有一种方法可以自动化它。 大部分程序都是无关紧要的,但我将其保留,以防万一它可能会影响它
我的编译器告诉我有错误,但我已经给我的导师发了电子邮件,他说我的代码非常好。 错误是错误: 1 error C4716: 'ShipPlacement' : must return a value,
我是一个想学习Java的菜鸟。我正在阅读《Head First Java》一书,并且非常喜欢它。我在学习使用 ArrayList<> 时遇到了一个问题而不是常规的array[] 。我在尝试分配 int
我是一名优秀的程序员,十分优秀!