最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

#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ù)組,寫成這個(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ù),用于每次打過磚塊之后,檢查所有磚塊的松動(dòng)情況,過程大概是這樣的,先將全部為1的磚塊賦值為3,之后將四周與墻壁相連并且值為3的磚塊賦值為·1,然后再進(jìn)行一次全體磚塊的循環(huán)遍歷,這一次將所有與1相連接(1上下左右連接的磚塊并且值為3的)的磚塊賦值為1,這樣的操作要做四遍,為什么要做這么多遍,這個(gè)問題留給讀者體會(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語言寫控制臺(tái)程序,大一初學(xué)C語言的同學(xué)們可以看一下這個(gè)編程思想。
最后的效果是這樣的:

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

相關(guān)文章

  • C++位操作的常見用法小結(jié)

    C++位操作的常見用法小結(jié)

    這篇文章主要介紹了C++位操作的常見用法,包括了判斷奇偶、交換兩個(gè)數(shù)、正負(fù)轉(zhuǎn)換、求絕對值等,需要的朋友可以參考下
    2014-09-09
  • C語言中讀寫交替時(shí)出現(xiàn)的問題分析

    C語言中讀寫交替時(shí)出現(xiàn)的問題分析

    讀寫命令交替,一定要使用fseek重新定位,否則出現(xiàn)輸入顯示混亂,這篇文章主要介紹了C語言中讀寫交替時(shí)出現(xiàn)的問題分析,需要的朋友可以參考下
    2022-12-12
  • 詳解C語言gets()函數(shù)與它的替代者fgets()函數(shù)

    詳解C語言gets()函數(shù)與它的替代者fgets()函數(shù)

    這篇文章主要介紹了詳解C語言gets()函數(shù)與它的替代者fgets()函數(shù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • 如何使用遞歸和非遞歸方式反轉(zhuǎn)單向鏈表

    如何使用遞歸和非遞歸方式反轉(zhuǎn)單向鏈表

    以下是對使用遞歸和非遞歸方式反轉(zhuǎn)單向鏈表的示例進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-07-07
  • 基于一致性hash算法 C++語言的實(shí)現(xiàn)詳解

    基于一致性hash算法 C++語言的實(shí)現(xiàn)詳解

    在《基于一致性hash算法(consistent hashing)的使用詳解》一文中已經(jīng)介紹了一致性hash的基本原理,本文將會(huì)對其具體實(shí)現(xiàn)細(xì)節(jié)進(jìn)行描述,并用c++語言對一致性hash進(jìn)行了簡單的實(shí)現(xiàn)
    2013-05-05
  • C++中四種加密算法之DES源代碼

    C++中四種加密算法之DES源代碼

    本篇文章主要介紹了C++中四種加密算法之DES源代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-11-11
  • windows下用c++獲取本機(jī)ip地址的三種方法

    windows下用c++獲取本機(jī)ip地址的三種方法

    工作過程中遇到一個(gè)需求,需要獲取本機(jī)ip地址,同時(shí)獲取本機(jī)網(wǎng)絡(luò)連接情況,即網(wǎng)線是否連接,經(jīng)過多番搜索,本文給大家介紹了3種方案,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C++超詳細(xì)分析優(yōu)化排序算法之堆排序

    C++超詳細(xì)分析優(yōu)化排序算法之堆排序

    堆是計(jì)算機(jī)科學(xué)中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱,通常是一個(gè)可以被看做一棵完全二叉樹的數(shù)組對象。而堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。本文將通過圖片詳細(xì)介紹堆排序,需要的可以參考一下
    2023-02-02
  • 奇怪的C語言特性

    奇怪的C語言特性

    下面列出的特性未必奇怪,有的算是有趣
    2013-04-04
  • C++初始化函數(shù)列表詳細(xì)解析

    C++初始化函數(shù)列表詳細(xì)解析

    C++可以定義引用類型的成員變量,引用類型的成員變量必須在構(gòu)造函數(shù)的初始化列表中進(jìn)行初始化
    2013-09-09

最新評(píng)論

西乌| 汽车| 洛隆县| 米泉市| 佛冈县| 兴安县| 武安市| 东乌珠穆沁旗| 无棣县| 江油市| 长宁县| 临夏市| 运城市| 金山区| 九江市| 湘乡市| 遵义县| 罗定市| 武功县| 蒙城县| 威宁| 广西| 德兴市| 平南县| 彭山县| 漳平市| 宜黄县| 彰化县| 旬邑县| 黄石市| 商河县| 邵武市| 灵武市| 桐梓县| 图们市| 龙江县| 红桥区| 涟源市| 佛山市| 长沙县| 永春县|