战舰游戏,船只在C淹死

时间:2015-12-23 16:30:21

标签: c drawing 2d-games coordinate-systems

我正在制造一艘"战列舰"在放置所有船只,开始游戏等之后,用户将进入"坐标以攻击"如果他遇到一艘船,那么董事会将展示“V'在他击中的坐标中,' X'如果那里没有任何船只。

嗯,我做了那部分而不是这里的问题,我有4艘不同的船只,每艘都有不同的尺寸,淹没了你必须击中所有部件(它的大小)的船。

示例:

posX[] = {1,2,3,4}
posY[] = {1,2,3,4}

如果4艘战舰被淹死,那么它的游戏就结束了!我做的是检查 所有的船舶坐标都是' V'如果是这样的话,战舰已经淹死了,但我认为我的问题是有不止一艘船,如果我每次都检查这一点,它总会说第一艘战列舰淹死了。

我制作了两个包含船只位置的数组:

for (int i = 0 l i < 4 ; i++)
{
if (board[posX[i]][posY[i] == 'V')
{
count++;
}
}
if ( count == 4 ) printf("the battleship of size 4 has drowned\n");

(指船舶位于(1,1)(2,2)(3,3)(4,4)的位置,大小为4.)

我做的是这样的:

WITH FIX_SYSDATE AS
    (SELECT TRUNC(SYSDATE) AS FIXED_SYSDATE
       FROM DUAL)
SELECT DISTINCT(COD) 
  FROM TABLE_COD
       CROSS JOIN FIX_SYSDATE FS
 WHERE START_DATE <= FS.FIXED_SYSDATE + 5
   AND END_DATE >= FS.FIXED_SYSDATE + 5
   AND VALUE = 1
   AND (COD_REF = (SELECT TO_CHAR(FS.FIXED_SYSDATE + 5, 'D') 
                     FROM DUAL)
        OR COD_REF = 0)
.......continue

我尝试了一些熟悉的东西来检查所有坐标是否都是&#39; V&#39; printf,但它是一样的。

2 个答案:

答案 0 :(得分:1)

你需要保持每艘战列舰的状态,比如isDead [4]等。初始化为0.一旦战舰被宣布死亡,你通知它已死,将状态更改为1并稍后停止检查

答案 1 :(得分:1)

此外,您无需一直检查。如果每次玩家击中一艘船,你都会检查船是否被淹死(所有坐标都被击中),你只需要增加一个drowned_ships的计数器并检查该值是否已经等于停止/终止条件(drowned_ships = = 4)。

{{1}}