蛇和梯子的游戏。网上还木有这个题。…………
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <queue>
#include <stdlib.h>
using namespace std;
bool visitFlag[10001]; //该位置是否到达过
int snakeFlag[10001]; //此处是否有蛇头
int ladderFlag[10001]; //此处是否有梯子
int end;
//用滚动数组
int bfs(queue<int> q[2])
{
int a = 0, b = 1;
int step = 0;
while (!q[a].empty())
{
swap(a, b);
step++; //当前步数加1
while (!q[b].empty())
{
int cur = q[b].front();
q[b].pop();
if (cur == end)
return step - 1;
for (int i = 1; i <= 6; i++)
{
if (cur + i == end)
return step;
if (cur + i <= end && !visitFlag[cur+i])
{
//无论是到蛇头,或是梯子处,都等于同时访问了两处
int temp = snakeFlag[cur + i];
if(temp > 0 && !visitFlag[temp]){
if(temp == end)
return step;
visitFlag[temp] = true;
q[a].push(temp);
}else{
temp = ladderFlag[cur + i];
if(temp > 0 && !visitFlag[temp]){
if(temp == end)
return step;
visitFlag[temp] = true;
q[a].push(temp);
}else{
q[a].push(cur + i);
}
}
visitFlag[cur + i] = true;
}
}
}
}
return 0;
}
int main()
{
int k;
cin >> k;
int N, S, L;
while (k--)
{
scanf("%d %d %d", &N, &S, &L);
int a, b;
end = N * N;
memset(visitFlag, 0, sizeof(visitFlag));
memset(snakeFlag, 0, sizeof(snakeFlag));
memset(ladderFlag, 0, sizeof(ladderFlag) );
for (int i = 0; i < S; i++)
{
cin >> a >> b;
snakeFlag[a] = b;
}
for (int i = 0; i < L; i++)
{
cin >> a >> b;
ladderFlag[a] = b;
}
queue<int> q[2];
q[0].push(1);
cout << bfs(q) << endl;
system("pause");
}
return 0;
}
分享到:
相关推荐
woomar编写的Snake Ladder这是著名的Snake Ladders棋盘游戏的实现,在印度被称为“ Gyan chauper”,在美国被称为“ Chutes and Ladders”,阿拉伯语称为“السلموالحية”。 // -------------------------...
蛇与梯子 使用python的基于多人游戏的蛇和梯子文字游戏。 Project Manas的第2周任务-SnA,接口细分 game.py是主要游戏。 mymodule.py是正在使用的用户定义模块。 -达山KS
git clone https://github.com/darpansaraf/snakes-and-ladders.git 步骤2:在Visual Studio IDE中打开此解决方案 步骤3:按F5键运行程序 测试用例 This application has unit tests which are run using xUnit ...
语言:English 蛇和梯子是2人制的古代印度掷骰子游戏。 100个正方形,充满陷阱和技巧 蛇和梯子是2人制的古代印度掷骰子游戏。 100平方英寸,充满陷阱和技巧...... 你害怕蛇吗?...当然,该游戏中的所有蛇都非常可爱。...
目录关于游戏从蛇和梯子: Snakes and Ladders 是一种古老的印度棋盘游戏,今天被视为全球经典。 它在具有编号的网格方块的游戏板上在两个或多个玩家之间进行。 棋盘上描绘了许多“梯子”和“蛇”,每个都连接两个...
蛇形梯子 Java 中的 Snakes and Ladders 古老棋盘游戏 Snakes and Ladders 的简单模拟
snakes_and_ladders
##蛇与梯子 Java和Maven中实现的简单蛇梯游戏,并进行了Junit测试。 ##蛇和梯子游戏-规则 两个或两个以上的玩家可以玩游戏。 典型的电路板尺寸为10 x10,但用户可以指定不同的电路板尺寸。 ...
蛇梯 我在大学项目中使用C ++和面向对象编程(OOP)对这款流行的游戏进行了编程。
Snakes and Ladders 是一种古老的印度棋盘游戏,今天被视为全球经典。 它在具有编号的网格正方形的游戏板上的两个或多个玩家之间进行游戏。 板上描绘了许多梯子和蛇,每个梯子和蛇都连接两个特定的棋盘格。 游戏的...
贪吃蛇代码java原始码蛇与梯子 主要Java程序(提供源代码和.exe...Photoshop编辑Snakes and Ladders菜单背景。 该游戏可让您与第二名玩家或CPU对抗。 我从另一所学校读完了11年级计算机科学,并获得了95%的最终成绩。
snakes-and-ladders-game-media
Hextris,Tangram,跳棋,中国跳棋,PushNPull推箱子,Connect四,GoMoku,Reversi,河内,Inertia,Klotski,Sudoku,15,Kakuro,Byss 2048,Snakes and Ladders,Simon Says,Finty同花顺,扭曲祖玛,单人纸牌,...
Snakes & Ladders 是 Android 游戏的自动化版本,基于原始 Snakes & Ladders Ludo 棋盘游戏的传统变体。 游戏有多个级别,难度越来越大。 游戏还有两种玩家模式: 反对电脑 多人游戏 方法 该游戏是原始游戏的变体,...
贪吃蛇java小程序源码蛇和梯子 - 游戏 蛇和梯子:这是一种古老的印度棋盘游戏,今天被视为全球经典。 它在具有编号的烤盘方块的游戏板上在两个或更多玩家之间进行。 棋盘上描绘了许多“梯子”和“蛇”,每个都连接两...
蛇和梯子卡塔 功能1-移动令牌
该项目是通过引导的。可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。...
蛇和梯子项目的OWASP主页,可在以下网址找到: 。 对于任何改进,请确保打开一个问题或请求请求,我们将确保照管它!