蛇梯棋(转载)

 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 }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python编写的贪吃蛇小游戏的示例代码: ```python import pygame import time # 初始化pygame pygame.init() # 设置游戏窗口的宽度和高度 window_width = 800 window_height = 600 # 创建游戏窗口 screen = pygame.display.set_mode((window_width, window_height)) pygame.display.set_caption("贪吃蛇小游戏") # 定义颜色 white = (255, 255, 255) black = (0, 0, 0) red = (255, 0, 0) green = (0, 255, 0) # 定义蛇的初始位置和大小 snake_x = 50 snake_y = 50 snake_size = 10 # 定义蛇的移动速度 snake_speed = 15 # 定义蛇的移动方向 snake_direction = "right" # 游戏主循环 game_over = False while not game_over for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True # 监听键盘事件,控制蛇的移动方向 if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: snake_direction = "left" elif event.key == pygame.K_RIGHT: snake_direction = "right" elif event.key == pygame.K_UP: snake_direction = "up" elif event.key == pygame.K_DOWN: snake_direction = "down" # 根据蛇的移动方向更新蛇的位置 if snake_direction == "left": snake_x -= snake_speed elif snake_direction == "right": snake_x += snake_speed elif snake_direction == "up": snake_y -= snake_speed elif snake_direction == "down": snake_y += snake_speed # 清空屏幕 screen.fill(black) # 绘制蛇的身体 pygame.draw.rect(screen, green, [snake_x, snake_y, snake_size, snake_size]) # 更新屏幕显示 pygame.display.update() # 控制游戏帧率 pygame.time.Clock().tick(30) # 退出游戏 pygame.quit() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值