テトリス
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define BOARD_WIDTH 10
#define BOARD_HEIGHT 20
#define PIECE_WIDTH 4
#define PIECE_HEIGHT 4
int board[BOARD_HEIGHT][BOARD_WIDTH] = {0};
int piece[PIECE_HEIGHT][PIECE_WIDTH] = {0};
int piece_x = 0;
int piece_y = 0;
void draw_board()
{
int i, j;
for (i = 0; i < BOARD_HEIGHT; i++) {
for (j = 0; j < BOARD_WIDTH; j++) {
if (board[i][j] != 0) {
printf("[]");
} else {
printf(" ");
}
}
printf("\n");
}
}
void draw_piece()
{
int i, j;
for (i = 0; i < PIECE_HEIGHT; i++) {
for (j = 0; j < PIECE_WIDTH; j++) {
if (piece[i][j] != 0) {
printf("[]");
} else {
printf(" ");
}
}
printf("\n");
}
}
void move_piece_down()
{
piece_y++;
}
void move_piece_left()
{
piece_x--;
}
void move_piece_right()
{
piece_x++;
}
void rotate_piece()
{
int tmp[PIECE_HEIGHT][PIECE_WIDTH] = {0};
int i, j;
for (i = 0; i < PIECE_HEIGHT; i++) {
for (j = 0; j < PIECE_WIDTH; j++) {
tmp[j][PIECE_HEIGHT-1-i] = piece[i][j];
}
}
for (i = 0; i < PIECE_HEIGHT; i++) {
for (j = 0; j < PIECE_WIDTH; j++) {
piece[i][j] = tmp[i][j];
}
}
}
int check_collision()
{
int i, j;
for (i = 0; i < PIECE_HEIGHT; i++) {
for (j = 0; j < PIECE_WIDTH; j++) {
if (piece[i][j] != 0 && board[piece_y+i][piece_x+j] != 0) {
return 1;
}
}
}
return 0;
}
void place_piece()
{
int i, j;
for (i = 0; i < PIECE_HEIGHT; i++) {
for (j = 0; j < PIECE_WIDTH; j++) {
if (piece[i][j] != 0) {
board[piece_y+i][piece_x+j] = piece[i][j];
}
}
}
}
void generate_piece()
{
static int pieces[7][4][4] = {
{
{0,0,0,0},
{1,1,1,1},
{0,0,0,0},
{0,0,0,0}
この記事が気に入ったらサポートをしてみませんか?