首页 > 其他分享 >俄罗斯方块

俄罗斯方块

时间:2024-05-14 18:29:51浏览次数:26  
标签:int n% else -- flag printf 俄罗斯 方块

原题链接

题解


从小正方形到大正方形,有四个变化方向,分别是左上、右上、右下、左上。
分类讨论模拟即可

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,x,y;
    cin>>n>>x>>y;
    puts("Yes");
    int flag=1;
    if(x==1)
    {
        if(y==1) flag=3;
        else flag=4;
    }
    else if(y==1)
    {
        flag=2;
    }
    for(int i=2;i<=n;i++)
    {
        if(flag==1)
        {
            x--;y--;
            printf("%d %d %d %d\n%d %d %d %d\n",i,x,y,1,i-1,x+1,y,0);
            if(x==1)
            {
                if(y>1) flag=4;
                else flag=3;
            }
            else if(y==1)
            {
                if(x>1) flag=2;
                else flag=3;
            }
        }
        else if(flag==2)
        {
            x--;
            printf("%d %d %d %d\n%d %d %d %d\n",i,x,y,1,i-1,x+1,y+i-1,0);
            if(x==1)
            {
                if(y>1) flag=4;
                else flag=3;
            }
            else if(y+i-1==n)
            {
                if(x==1) flag=4;
                else flag=1;
            }
        }
        else if(flag==3)
        {
            printf("%d %d %d %d\n%d %d %d %d\n",i,x+i-1,y,1,i-1,x,y+i-1,0);
            if(x+i-1==n)
            {
                if(y>1) flag=1;
                else flag=2;
            }
            else if(y+i-1==n)
            {
                if(x==1) flag=4;
                else flag=1;
            }
        }
        else if(flag==4)
        {
            y--;
            printf("%d %d %d %d\n%d %d %d %d\n",i,x,y,0,i-1,x+i-1,y+1,1);
            if(x+i-1==n)
            {
                if(y>1) flag=1;
                else flag=2;
            }
            else if(y==1)
            {
                if(x>1) flag=2;
                else flag=3;
            }
        }
    }
    return 0;
}

标签:int,n%,else,--,flag,printf,俄罗斯,方块
From: https://www.cnblogs.com/pure4knowledge/p/18191923

相关文章

  • D. 方块游戏
    原题链接题解太巧妙了!!!code#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,m;cin>>n>>m;intr=0,b=0,y=0;for(inti=1;i<=n;i++){strings;cin>>s;for(intj=0;s[j];j++......
  • 俄罗斯方块 题解
    题意:矩阵checkmax、矩阵求max,checkmax的值一定比当前矩阵原max大外层线段树每个节点开一棵线段树,每个点记录列的max与checkmax的标记checkmax时:对路过的点的max更新,对完全包含的区间的checkmax标记更新求max时:对路上的checkmax与完全包含的max更新\((a,b......
  • mc模组制作 4.方块与blockbench
    点击再点“b”就可以创建方块啦对于方块模型……如果是正正方方的那种,就选Normal,但如果要做一些不规则的,那就要用到了。(下载:https://github.com/JannisX11/blockbench/releases/download/v4.9.4/Blockbench_4.9.4.exe)打开以后点“创建新模型”新手只用填“文件名”就行......
  • 小游戏——俄罗斯方块(附带超详细源码,复制就可实现效果)
    用web前端基础的知识做个俄罗斯方块玩玩。先来看看实现的效果:俄罗斯方块 复制就可以实现所有效果哦!!!详细代码源码:<!DOCTYPEHTML><html><head><metacharset="utf-8"><title>俄罗斯方块小游戏JS版-孙也</title><script>window.onload=functi......
  • P3756 [CQOI2017] 老C的方块
    原题链接感觉挺有意思的。先简化一下不合法的状况,实际上是如果特殊边两侧都有点,且那两个点的另外三个联通方向上也有至少一个点,就是坏的。相当于是四个限制只要有一个不满足就可以了。于是就可以转化成最小割。按四种限制将点分成四类。特殊边两侧分别是\(1\)类点和\(2\)类......
  • love 2d Lua 俄罗斯方块超详细教程
    源码已经更新在CSDN的码库里:gitclonehttps://gitcode.com/funsion/love2d-game.git一直在找Lua能快速便捷实现图形界面的软件,找了一堆,终于发现love2d是小而美的原生lua图形界面实现的方式。并参考相关教程做了一个更详细的,以便入门。功能如上图,开发过程用了love2d,......
  • Java练手游戏--俄罗斯方块
    Java基础小练手游戏项目:俄罗斯方块简单版使用Java实现俄罗斯方块大概思路:界面设计:使用JavaSwing或JavaFX创建游戏窗口和用户界面。创建一个主窗口类(如GameFrame.java),负责设置窗口大小、标题等属性。设计游戏面板(如GamePanel.java),用于绘制游戏区域、下一个方块预览区、得......
  • 俄罗斯指数行情数据API接口
    1. 历史日线# Restful APIhttps://tsanghi.com/api/fin/index/RUS/daily?token={token}&ticker={ticker}默认返回全部历史数据,也可以使用参数start_date和end_date选择特定时间段。更新时间:收盘后3~4小时。更新周期:每天。请求方式:GET。# 测试:返回不超过10条......
  • 俄罗斯套娃 (Matryoshka) 嵌入模型概述
    在这篇博客中,我们将向你介绍俄罗斯套娃嵌入的概念,并解释为什么它们很有用。我们将讨论这些模型在理论上是如何训练的,以及你如何使用SentenceTransformers来训练它们。除此之外,我们还会告诉你怎么用这种像套娃一样的俄罗斯套娃嵌入模型,并且我们会比较一下这种模型和普通嵌入模......
  • P2135 方块消除
    原题链接题解代码量小的离谱,思维难度大的离谱对于两个原本不相邻的同色区域块,历经千辛万苦碰面的场景,我们可以描述成右边的区域块为左边的区域块消除的时候增添了长度设\(dp[i][j][suf]\)代表消除区域\([i,j]\)同时该区域的\(j\)增添了长度\(suf\)但是合并消除不一定......