蛇梯棋(转载)

 1 //题目的大概意思是又N*N的棋盘,编号从1 到 N*N 棋盘中分布着蛇和梯子玩家在位置1处,
 2 //然后掷骰子,如果点数在梯子尾则顺着梯子到达梯子头,若掷到蛇头,则滑到蛇尾
 3 //问最快到达终点所需掷的次数...
 4 // 输入描述: 1表示1组数据,6 1 3分别表示棋盘大小,蛇的个数和梯子的个数
 5 //35 25 表示蛇的头和尾巴     最后一行表示各个梯子的头和尾
 6 /*
 7 1
 8 6 1 3
 9 35 25
10 3 23 5 16 20 33
11 */
12
13 #include<stdio.h>
14 #include<string.h>
15 #define NMAX 20
16 #define SLMAX 200
17 struct SandL
18 {
19     int from,to;
20 };
21 int main()
22 {
23     int D,N,S,L;
24     int grid[NMAX*NMAX+1];
25     int gridbak[NMAX*NMAX+1];
26     SandL jk[2*SLMAX];
27     int n,i,j,k,m;
28     int step,deal;
29     scanf("%d",&D);
30     for(i=0;i<D;i++)
31     {
32         scanf("%d%d%d",&N,&S,&L);
33         for(j=0;j<S+L;j++)
34             scanf("%d%d",&jk[j].from,&jk[j].to);
35         memset(grid,0,sizeof(grid));
36         grid[1]=1;
37         step=0;
38         while(grid[N*N]==0)
39         {
40             memcpy(gridbak,grid,sizeof(grid));
41             memset(grid,0,sizeof(grid));
42             for(j=1;j<N*N-1;j++)
43             {
44                 if(gridbak[j]==0)
45                     continue;
46                 for(k=1;k<=6;k++)
47                 {
48                     deal=0;
49                     if(j+k>N*N)
50                         break;
51                     for(m=0;m<S+L;m++)
52                     if(jk[m].from==j+k)
53                     {
54                         grid[jk[m].to]=1;
55                         deal=1;
56                         break;
57                     }
58                     if(deal==0&&grid[j+k]==0)
59                         grid[j+k]=1;
60                 }
61             }
62             step++;
63         }
64         printf("%d\n",step);
65     }
66     return 0;
67 }
时间: 2024-11-05 23:37:04

蛇梯棋(转载)的相关文章

第七章.控制转移语句

控制转移语句 控制转移语句改变你代码的执行顺序,通过它你可以实现代码的跳转.Swift有四种控制转移语句. continue break fallthrough return 我们将会在下面讨论continue ,break,和fallthrough语句.return语句将会在函数章节讨论. Continue continue告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代.就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体. 注意:在一个for-condition-in

The Swift Programming Language-官方教程精译Swift(6)控制流--Control Flow

Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句. 除了C里面传统的 for 条件递增循环,Swift 还增加了 for-in 循环,用来更简单地遍历数组(array),字典(dictionary),范围(range),字符串(string)和其他序列类型. Swift 的 switch 语句比 C 语言中更加强大.在 C 语言中,如果某个

leet

# 题名1 两数之和    2 两数相加    3 无重复字符的最长子串    4 寻找两个有序数组的中位数    5 最长回文子串    6 Z 字形变换    7 整数反转    8 字符串转换整数 (atoi)    9 回文数    10 正则表达式匹配    11 盛最多水的容器    12 整数转罗马数字    13 罗马数字转整数    14 最长公共前缀    15 三数之和    16 最接近的三数之和    17 电话号码的字母组合    18 四数之和    19 删除链表

转载——C++控制台贪吃蛇代码

游戏截图: 以下是3个代码文件: Snake_Class.h文件: 1 #ifndef SNAKE 2 #define SNAKE 3 4 #include<windows.h> 5 #include<vector> 6 #include<string> 7 8 //标记界面和菜单项的ID 9 enum ID_ { ID_1=1, ID_2, ID_3, ID_4, ID_5, ID_6, ID_7 }; 10 11 //标记初级,中级,高级三种游戏等级 12 enum

[转载]GBK 汉字内码扩展规范编码表(1.0 版)

编码表源地址:http://ff.163.com/newflyff/gbk-list/ 编码在线查询:http://www.qqxiuzi.cn/bianma/zifuji.php GBK 汉字内码扩展规范编码表(1.0 版): ● GBK/1: GB2312非汉字符号 A1 0 1 2 3 4 5 6 7 8 9 A B C D E FA  . . · ˉ ˇ ¨ " 々 - - | - ' 'B " " [ ] 〈 〉 < > 「 」 『 』 [ ] [ ]

Java版贪吃蛇(比较完善的版本)

很认真的写的一个java版的贪吃蛇游戏,图形界面,支持菜单操作,键盘监听,可加速,减速,统计得分,设定运动速度,设定游戏背景颜色等!应该没有Bug了,因为全被我修改没了.哈哈. 下面是项目各包及类的层次关系: 游戏的主要运行界面截图如下: 下面是部分代码,详细源码见此链接:http://pan.baidu.com/s/1bnubnzh //Snake类: package com.huowolf.entities; import java.awt.Color; import java.awt.Gr

Qt版贪吃蛇游戏

Qt版贪吃蛇游戏 转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907 最近在学习Qt,用了一个多月的时间掌握了Qt中最基本的知识,也完成了<Qt版音乐播放器>.<Qt版贪吃蛇游戏>.<Qt版双人俄罗斯方块>以及<Qt版科学计算器>等,之前在VC下写过这些程序,所以在Qt下只是改变了显示等语句,我写过<C++版贪吃蛇游戏>.<VC版贪吃蛇游戏>,当时将与显示等无关的东西封装起来,在Qt下直接用,只

c语言版贪吃蛇小游戏

编译环境:windows 7 64位 编译工具:codeblocks 13.12 备注:未使用graphics.h 声明:个人原创,未经允许,禁止转载!!! 数据结构:双向链表 1.程序未使用graphis.h中的 函数,所以采用先清屏,再打印的方式显示图形,大约每秒刷新一次: 2.除蛇头元素外,其它元素的状态(行进方向)均重复前一元素: 3.蛇的图形元素为笑脸,可在源码中更改symbol参数选用不同元素. 游戏截图1                                      

贪吃蛇1.0&amp;&amp;贪吃蛇2.0

1 // 2 //main.c 3 //snake 4 // 5 //Created by Yubei Xiao on 12-12-16 6 //Copyright (c) 2015年 Sun Yat-sen University.All rights reserved. 7 // 8 9 #include<stdio.h> 10 #include<stdlib.h> 11 #include<time.h> 12 13 #define SNAKE_MAX_LENGTH