欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言控制臺(tái)打磚塊小游戲

 更新時(shí)間:2022年05月11日 15:53:32   作者:錦鯉金叔叔  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言控制臺(tái)打磚塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了C語(yǔ)言控制臺(tái)小游戲,打磚塊,供大家參考,具體內(nèi)容如下

這個(gè)問(wèn)題是我在領(lǐng)扣上面看到的一道困難問(wèn)題,原題是這樣的:

#include "stdafx.h"
#include<stdio.h>
int a[10][10] = { { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 },?
?? ??? ??? ??? ? ?{ 0, 0, 1, 1, 1, 1, 0, 1, 1, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 1, 1, 0, 1, 1, 0 },
?? ??? ??? ??? ? ?{ 0, 1, 1, 1, 1, 1, 0, 0, 1, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
?? ??? ??? ??? ? ?{ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } };//初始化二維數(shù)組,寫(xiě)成這個(gè)形狀便于一目了然

void down(int a[10][10])//負(fù)責(zé)控制磚塊下落的函數(shù),使被賦值為3的磚塊下落,下落到下界或值為1的方塊之上
{
?? ?int i, j;
?? ?int m, n;
?? ?for (i = 9; i >=0; i--)
?? ?for (j = 0; j < 10; j++)
?? ?if (a[i][j] == 3)
?? ?{
?? ??? ?m = i;
?? ??? ?n = j;
?? ??? ?while (a[m + 1][n] != 1&&m!=9)
?? ??? ?{
?? ??? ??? ?a[m + 1][n] = 1;
?? ??? ??? ?a[m][n] = 0;
?? ??? ??? ?m++;
?? ??? ?}
?? ?}
}

void freshen(int a[10][10])//刷新函數(shù),用于每次打過(guò)磚塊之后,檢查所有磚塊的松動(dòng)情況,過(guò)程大概是這樣的,先將全部為1的磚塊賦值為3,之后將四周與墻壁相連并且值為3的磚塊賦值為·1,然后再進(jìn)行一次全體磚塊的循環(huán)遍歷,這一次將所有與1相連接(1上下左右連接的磚塊并且值為3的)的磚塊賦值為1,這樣的操作要做四遍,為什么要做這么多遍,這個(gè)問(wèn)題留給讀者體會(huì)。
{
?? ?int i, j;
?? ?for ( i = 0; i < 10; i++)
?? ?for ( j = 0; j < 10; j++)
?? ??? ?if (a[i][j]==1)
?? ??? ??? ?a[i][j] = 3;
?? ??? ?for (i = 0; i < 10; i++)
?? ??? ?{
?? ??? ??? ?j = 0;
?? ??? ??? ?while (a[i][j] != 0)
?? ??? ??? ?{
?? ??? ??? ??? ?a[i][j] = 1;
?? ??? ??? ??? ?j++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?for (i = 0; i < 10; i++)
?? ??? ?{
?? ??? ??? ?j = 9;
?? ??? ??? ?while (a[i][j] != 0)
?? ??? ??? ?{
?? ??? ??? ??? ?a[i][j] = 1;
?? ??? ??? ??? ?j--;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?for (j = 0; j < 10; j++)
?? ??? ?{
?? ??? ??? ?i = 0;
?? ??? ??? ?while (a[i][j] != 0)
?? ??? ??? ?{
?? ??? ??? ??? ?a[i][j] = 1;
?? ??? ??? ??? ?i++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?for (j = 0; j < 10; j++)
?? ??? ?{
?? ??? ??? ?i = 9;
?? ??? ??? ?while (a[i][j] != 0)
?? ??? ??? ?{
?? ??? ??? ??? ?a[i][j] = 1;
?? ??? ??? ??? ?i--;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?for (i = 0; i < 10; i++)
?? ??? ?for (j = 0; j < 10; j++)
?? ??? ?if (a[i][j] == 1)
?? ??? ?{
?? ??? ??? ?if (a[i - 1][j] == 3)
?? ??? ??? ??? ?a[i - 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i + 1][j] == 3)
?? ??? ??? ??? ?a[i + 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i ][j-1] == 3)
?? ??? ??? ??? ?a[i ][j-1] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i ][j+1] == 3)
?? ??? ??? ??? ?a[i ][j+1] = 1;
?? ??? ?}
?? ??? ?for (i = 9; i >=0; i--)
?? ??? ?for (j = 9; j >=0; j--)
?? ??? ?if (a[i][j] == 1)
?? ??? ?{
?? ??? ??? ?if (a[i - 1][j] == 3)
?? ??? ??? ??? ?a[i - 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i + 1][j] == 3)
?? ??? ??? ??? ?a[i + 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j - 1] == 3)
?? ??? ??? ??? ?a[i][j - 1] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j + 1] == 3)
?? ??? ??? ??? ?a[i][j + 1] = 1;
?? ??? ?}
?? ??? ?for (i = 9; i >= 0; i--)
?? ??? ?for (j = 9; j >= 0; j--)
?? ??? ?if (a[i][j] == 1)
?? ??? ?{
?? ??? ??? ?if (a[i - 1][j] == 3)
?? ??? ??? ??? ?a[i - 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i + 1][j] == 3)
?? ??? ??? ??? ?a[i + 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j - 1] == 3)
?? ??? ??? ??? ?a[i][j - 1] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j + 1] == 3)
?? ??? ??? ??? ?a[i][j + 1] = 1;
?? ??? ?}
?? ??? ?for (i = 9; i >= 0; i--)
?? ??? ?for (j = 9; j >= 0; j--)
?? ??? ?if (a[i][j] == 1)
?? ??? ?{
?? ??? ??? ?if (a[i - 1][j] == 3)
?? ??? ??? ??? ?a[i - 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i + 1][j] == 3)
?? ??? ??? ??? ?a[i + 1][j] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j - 1] == 3)
?? ??? ??? ??? ?a[i][j - 1] = 1;
?? ??? ??? ?else
?? ??? ??? ?if (a[i][j + 1] == 3)
?? ??? ??? ??? ?a[i][j + 1] = 1;
?? ??? ?}
}

void view(int a[10][10])//打印磚塊函數(shù)
{
?? ?for (int i = -1; i < 10; i++)
?? ?{
?? ??? ?printf("0%d ", i);
?? ?}
?? ?printf("\n");
?? ?for (int i = 0; i < 10; i++)
?? ?{
?? ??? ?printf("%d: ?", i);
?? ??? ?for (int j = 0; j < 10; j++)
?? ??? ?{
?? ??? ??? ?if (a[i][j] == 1)
?? ??? ??? ??? ?printf("* ?");
?? ??? ??? ?else
?? ??? ??? ??? ?printf(" ? ");
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
}

void beat(int a[10][10],int i,int j)//打磚塊函數(shù)
{
?? ?a[i][j] = 0;
}

void main()
{
?? ?int p,q;
?? ?view(a);
?? ?for (int w = 0; w < 18; w++)
?? ?{
?? ??? ?printf("beat whichp?\n");
?? ??? ?scanf("%d", &p);
?? ??? ?printf("beat whichq?\n");
?? ??? ?scanf("%d", &q);
?? ??? ?beat(a, p, q);
?? ??? ?freshen(a);
?? ??? ?down(a);
?? ??? ?view(a);
?? ?}
?? ?getchar();
?? ?return;
}

我用到的編譯器是VS2013,C語(yǔ)言寫(xiě)控制臺(tái)程序,大一初學(xué)C語(yǔ)言的同學(xué)們可以看一下這個(gè)編程思想。
最后的效果是這樣的:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論