洛谷 P1000 超级玛丽游

本文分享了一种使用字符画形式输出超级玛丽游戏经典场景的方法,通过编程技巧,详细展示了如何利用不同字符和空格精确复现游戏画面,强调了细节处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--

题目描述

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

 ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############

输入输出格式

输入格式:

 

输出格式:如描述

 

输入输出样例暂无测试点

标程

---

接着打开软件开始打代码,让我们看一下这道题的关键,

主要是用printf函数来吧描述里那一堆'#''*''-''.'输出,但是注意啦!

这里一定不要少输出空格,不然就会卡住,然后心态炸了。

没错,我第一次做写了半天才过,比我聪明的你们一定要细心哦。 这就是我写的代码,手残见谅

----------------------------------------

c++ 

using System;
namespace Luogu
{
    class Algo{
        public static void Main()
        {
            Console.Write(@"                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############");
        }
    }
}

看了一遍题解发现没有人用高端的打表方法,这里便写一种比较常用的比赛打表方法(雾)。
一行一行复制是不可能的,一辈子都不可能的,这种丑陋的方法不应该是高端程序猿应该干的事情。
我们先在本地写一段这个代码:

 

 

 

 

----------------------

#include<bits/stdc++.h>
using namespace std;
#define N 110
int main()
{
    printf("                ********\n");
    printf("               ************\n");
    printf("               ####....#.\n");
    printf("             #..###.....##....\n");
    printf("             ###.......######              ###                 ###           ###           ###\n");
    printf("                ...........               #...#               #...#         #...#         #...#\n");
    printf("               ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#\n");
    printf("            ####*******######             #.#.#               #.#.#         #.#.#         #.#.#\n");
    printf("           ...#***.****.*###....          #...#               #...#         #...#         #...#\n");
    printf("           ....**********##.....           ###                 ###           ###           ###\n");
    printf("           ....****    *****....\n");
    printf("             ####        ####\n");
    printf("           ######        ######\n");
    printf("##############################################################              ##################################\n");
    printf("#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------#\n");
    printf("###########################################------------------#              ###############------------------#\n");
    printf("#..#....#....##..#....#....##..#....#....#####################              #..#....#....#####################\n");
    printf("##########################################    #----------#                  ##############    #----------#\n");
    printf("#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#\n");
    printf("##########################################    #----------#                  ##############    #----------#\n");
    printf("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#\n");
    printf("##########################################    ############                  ##############    ############\n");
}

 

 

#include<iostream>
using namespace std;
int main()
{
    cout<<"                ********"<<endl;
    cout<<"               ************"<<endl;
    cout<<"               ####....#."<<endl;
    cout<<"             #..###.....##...."<<endl;
    cout<<"             ###.......######              ###            ###"<<endl;
    cout<<"                ...........               #...#          #...#"<<endl;
    cout<<"               ##*#######                 #.#.#          #.#.#"<<endl;
    cout<<"            ####*******######             #.#.#          #.#.#"<<endl;
    cout<<"           ...#***.****.*###....          #...#          #...#"<<endl;
    cout<<"           ....**********##.....           ###            ###"<<endl;
    cout<<"           ....****    *****...."<<endl;
    cout<<"             ####        ####"<<endl;
    cout<<"           ######        ######"<<endl;
    cout<<"##############################################################"<<endl;
    cout<<"#...#......#.##...#......#.##...#......#.##------------------#"<<endl;
    cout<<"###########################################------------------#"<<endl;
    cout<<"#..#....#....##..#....#....##..#....#....#####################"<<endl;
    cout<<"##########################################    #----------#"<<endl;
    cout<<"#.....#......##.....#......##.....#......#    #----------#"<<endl;
    cout<<"##########################################    #----------#"<<endl;
    cout<<"#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#"<<endl;
    cout<<"##########################################    ############"<<endl;
    
    return 0;
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值