大魔王がC言語で作った一筆書きプログラム

大魔王ダークロード  2024-05-26 16:38:04  通報
visual studioでしか動きません。

【ソースコード】

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

#define GYO 5 /* 迷路の行数 */
#define RETU 5 /* 迷路の列数 */

/* 迷路データ */
int meiro[GYO][RETU] = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 1, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
};

int px, py;
int a;
int count;

void print_screen(void);

void print_screen(void) {

system("cls");

for (int y = 0; y < GYO; y++) {
for (int x = 0; x < RETU; x++) {
if (x == px && y == py) {
printf("P");
}
else if (meiro[y][x] == 0) {
printf(" ");
}
else if (meiro[y][x] == 1) {
printf("■");
}
else if (meiro[y][x] == 2) {
printf("★");
}
}
printf("\n");
}

}


int main(void) {

px = 1;
py = 1;
a = 0;

do {

print_screen();

printf("px:%d py:%d\n", px, py);
printf("count:%d\n", count);

char key = _getch();

switch (_getch()) {
case 'w': a = 1; break;
case 's': a = 2; break;
case 'a': a = 3; break;
case 'd': a = 4; break;
}

if (a == 1) {
if (meiro[py - 1][px] == 0) {
py--;
meiro[py + 1][px] = 2;
count++;
}
}

if (a == 2) {
if (meiro[py + 1][px] == 0) {
py++;
meiro[py - 1][px] = 2;
count++;
}
}

if (a == 3) {
if (meiro[py][px - 1] == 0) {
px--;
meiro[py][px + 1] = 2;
count++;
}
}

if (a == 4) {
if (meiro[py][px + 1] == 0) {
px++;
meiro[py][px - 1] = 2;
count++;
}
}
} while (count < 7);

system("cls");

print_screen();

printf("px:%d py:%d\n", px, py);
printf("count:%d\n", count);
printf("CLEAR!");
}
    • 1 大魔王ダークロード   [2024-05-26 16:40:14]  通報

    この一筆書き、
    スクラッチで作ろうと思うと
    地味にめんどくさいんだよな。
    (シューティングはスクラッチの方が作りやすいけど)

    • 2   [2024-05-26 19:20:26]  通報

    きつねくん小学生なのに物知りねw

    • 3   [2024-05-26 19:20:26]  通報

    きつねくん小学生なのに物知りねw

レスを書く

ニックネーム
又は匿名を選択:
レス本文
トリップ ※任意 半角英数8-16文字

※トリップに特定の文字列を入力することで、自分だけのIDが表示されます

※メールアドレスや電話番号などの個人情報や、メル友の募集、出会い目的の投稿はご遠慮ください
おやくそく

スレッドを作る

スレッド名
ニックネーム

スレッド本文

トリップ ※任意 半角英数8-16文字

※トリップに特定の文字列を入力することで、自分だけのIDが表示されます

※メールアドレスや電話番号などの個人情報や、メル友の募集、出会い目的の投稿はご遠慮ください
おやくそく

管理人室

お知らせ
ご意見・ご要望はこちらへ
Copyright コミュティア All Rights Reserved.