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

C語言控制臺打磚塊小游戲

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

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

這個問題是我在領(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ù)組,寫成這個形狀便于一目了然

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    奇怪的C語言特性

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

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

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

最新評論

邯郸县| 闵行区| 霍林郭勒市| 临安市| 阿图什市| 故城县| 西平县| 娄底市| 漳平市| 石台县| 石泉县| 南宁市| 当阳市| 克东县| 济南市| 府谷县| 老河口市| 怀仁县| 福清市| 吉隆县| 林甸县| 广水市| 体育| 伊吾县| 台江县| 呼和浩特市| 外汇| 乳山市| 财经| 宿州市| 上栗县| 张家界市| 文成县| 乌拉特前旗| 安仁县| 吕梁市| 石屏县| 宜州市| 巍山| 海安县| 瑞昌市|