基于Linux终端C语言 俄罗斯方块

这是一个使用C语言在Linux终端实现的俄罗斯方块游戏代码。程序包括了初始化、图形旋转、游戏结束判断、输入处理、图形移动等功能,通过控制台显示游戏画面并接收用户操作。
摘要由CSDN通过智能技术生成


//********** 俄罗斯方块参考代码 ************//

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#define STTY_UP    "stty raw -echo -F"
#define STTY_DOWN  "stty -raw echo -F"
#define PATH       " /dev/tty"

#define HEIGHT   21
#define WIDTH    12
#define FULL_NUMBER (WIDTH-2)

//***定义类型及变量 ***//
struct pos
{
    int x;
    int y;
};
struct pos  point[4];
int block[HEIGHT][WIDTH] = {0};
int current_point;
int current_status;
int score = 0;
int level = 0;

/******* 声明函数 *******/
void init_block();
void display();
void gotoxy(int ,int );
void new_point();
void draw_point();
void point_move_down();
void point_move_right();
void point_move_left();
void point_spin();
int  get_char();
int  is_game_over();

/******* 游戏主逻辑 *******/
int main()
{
    system( STTY_UP PATH );
    srand(time(0));
    char key;
    int i;
    init_block();
    display();
    new_point();
    draw_point();
    while(1)
    {
        for(i=0; i<15-level; i++)
        {
            key = get_char();
            if( key == 's' )
                break;
            switch( key )
            {
            case 'a':    point_move_left();    break;
            case 'd':    point_move_right();   break;
            case 'w':    point_spin();         break;
            case   3:
            case  27:    system(STTY_DOWN PATH);   exit(0);
            case ' ':    getchar();   break;
            default:     break;
            }
            usleep(40000);
        }
        point_move_down();
        display()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值