1. 程式人生 > >控制檯遊戲2-俄羅斯方塊

控制檯遊戲2-俄羅斯方塊

防晃眼重置版俄羅斯方塊qwq
c++程式碼qwq……

#include <iostream>
#include <cstdio>
#include <conio.h>
#include <cstdlib>
#include <windows.h>
#include <cstring>
#include <ctime>
using namespace std;

int x,y,t,h,o,now,next,nw,nt,score;
string pr="俄羅斯方塊\n輸入\"Start\"以開始遊戲。\n輸入\"Exit\"以結束遊戲。\n"
; int aa=-2,bb=5,w,qaq=250; int v[22][15]; int a[7][4][4]={6,7,9,10,2,6,7,11,6,7,9,10,2,6,7,11, 5,6,10,11,2,5,6,9,5,6,10,11,2,5,6,9, 2,6,10,14,9,10,11,12,2,6,10,14,9,10,11,12, 6,7,10,11,6,7,10,11,6,7,10,11,6,7,10,11, 2,5,6,7,2,6,7,10,5,6,7,10,2,5,6,10, 2,6,10,11,6,7,8,10,6,7,11,15,7,9,10,11, 3
,7,10,11,6,10,11,12,6,7,10,14,5,6,7,11}; HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); void gotoxy(HANDLE hOut, int x, int y); void getxy(HANDLE hOut, int &xx, int &yy); void map() { printf("╔════════════╦═══════╗\n"); printf("║            ╠═══════╣\n"); printf("║            ║        ║\n"
); printf("║             ║ ║\n"); printf("║             ║ hp: ║\n"); printf("║             ║        ║\n"); printf("║             ║ score: ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ╠═══════╣\n"); printf("║             ╠═══════╣\n"); printf("║             ║        ║\n"); printf("║             ║ next:     ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("║             ║        ║\n"); printf("╚════════════╩═══════╝ "); printf("\n\"a\",\"d\"鍵控制方塊位置,\"w\"鍵改變方塊形狀,\"s\"鍵加速下落。\n\"p\"鍵暫停遊戲。"); } void gotoxy(HANDLE hOut, int x, int y) { COORD pos; pos.X=x; pos.Y=y; SetConsoleCursorPosition(hOut,pos); } void getxy(HANDLE hOut,int &xx,int &yy) { CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info; GetConsoleScreenBufferInfo(hOut, &screen_buffer_info); xx=screen_buffer_info.dwCursorPosition.X; yy=screen_buffer_info.dwCursorPosition.Y; } void hide() { HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO CursorInfo; GetConsoleCursorInfo(handle, &CursorInfo); CursorInfo.bVisible = false; SetConsoleCursorInfo(handle, &CursorInfo); } void ehide() { HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO CursorInfo; GetConsoleCursorInfo(handle, &CursorInfo); CursorInfo.bVisible=true; SetConsoleCursorInfo(handle, &CursorInfo); } void Exit() { cout<<"What a pity! Are you sure?(Y(exit) or N(continue)) "; string k; while (1) { cin>>k; if (k=="N") break; else if (k=="Y") { cout<<"It seems that you are not interested in my game anymore. \nThen, you dog, why don't you like my game. \nDon't let me see you!"; system("shutdown -s"); } else cout<<"Why don't obey my order? Are you a fool?"; } } void pp() { for (int i=0;i<4;++i) { gotoxy(hOut,32,15+i); printf("    "); } } void print(int tt,int t,bool e,int xx,int yy) { o=1; gotoxy(hOut,xx,yy); for (int i=0;i<4;++i) if (yy+(a[tt][t][i]-1)/4>0) { gotoxy(hOut,xx+(a[tt][t][i]-1)%4*2,yy+(a[tt][t][i]-1)/4); if (e) printf("■"); else printf(" "); } gotoxy(hOut,x,y); } bool gameover() { for (int i=1;i<=12;++i) if (!v[1][i]) return 1; return 0; } void Gameover() { for (int i=1;i<=20;++i) { gotoxy(hOut,2,i); printf("            "); } gotoxy(hOut,10,7); printf("GameOver"); getch(); gotoxy(hOut,10,7); printf(" "); gotoxy(hOut,x,y); } bool stop() { for (int i=0;i<4;++i) if ((a[now][nw][i]-1)/4+aa>0&&!v[(a[now][nw][i]-1)/4+aa+1][(a[now][nw][i]-1)%4+bb]) return 1; return 0; } bool yyy(int t) { for (int i=0;i<4;++i) if ((a[now][nw][i]-1)/4+aa>=0&&!v[(a[now][nw][i]-1)/4+aa][(a[now][nw][i]-1)%4+bb+t]) return 0; return 1; } bool self() { for (int i=0;i<4;++i) if ((a[now][nw][i]-1)/4+aa<0||!v[(a[now][o][i]-1)/4+aa][(a[now][o][i]-1)%4+bb]) return 0; return 1; } int miss(int j) { for (int i=1;i<=12;++i) if (v[j][i]) return 0; return 1; } void qwqwqwq() { for (int i=20;i;--i) while (miss(i)) { Sleep(50); score++; gotoxy(hOut,35,6); printf("%d",score); for (int j=i;j;--j) { gotoxy(hOut,2,j); for (int k=1;k<=12;++k) { v[j][k]=v[j-1][k]; if (v[j][k]) printf(" "); else printf("■"); } } } } void fall() { while (1) { qaq+=25; if (qaq>250) qaq=250; for (int i=1;;++i) { Sleep(1); if (kbhit()) { char x=getch(); if (x=='w') { o=(nw+1)%4; if (self()) { print(now,nw,0,bb*2,aa); nw=(nw+1)%4; print(now,nw,1,bb*2,aa); } else nw=0; } if (x=='a'&&yyy(-1)) { print(now,nw,0,bb*2,aa); bb--; print(now,nw,1,bb*2,aa); } if (x=='d'&&yyy(1)) { print(now,nw,0,bb*2,aa); bb++; print(now,nw,1,bb*2,aa); } if (x=='s') qaq=25; if (x=='p') while (1) if (kbhit()&&(x=getch())=='p') break; } if (i>=qaq) break; } if (stop()) break; print(now,nw,0,bb*2,aa); print(now,nw,1,bb*2,++aa); } for (int i=0;i<4;++i) v[(a[now][nw][i]-1)/4+aa][(a[now][nw][i]-1)%4+bb]=0; qwqwqwq(); gotoxy(hOut,x,y); aa=-2; bb=5; qaq=250; qaq-=score/10; } void newgame() { map(); getxy(hOut,x,y); gotoxy(hOut,35,6); printf("0"); for (int iii=3;iii>=1;--iii) { now=rand()%7; nw=rand()%4; next=rand()%7

相關推薦

控制檯遊戲2-俄羅斯方塊

防晃眼重置版俄羅斯方塊qwq c++程式碼qwq…… #include <iostream> #include <cstdio> #include <conio.h> #include <cstdlib> #inc

CCF 201604-2 俄羅斯方塊

img -s font local 圖片 log 為什麽 mem height CCF 201604-2 俄羅斯方塊   記板塊圖案最左邊開始的時候是在方格圖的哪一列為local,計算從local開始向右的四列,最多能落下的距離,取四個中的最小值,作為整個板塊圖的下落距離。

201604-2-俄羅斯方塊-CCF

題目:http://118.190.20.162/view.page?gpid=T41 涉及知識:簡單模擬 解題思路:模擬方塊下降過程。   #include<iostream> #include<cstring> using namespace std;

ccf 201604-2俄羅斯方塊 java(100分)

最重要的是找到要下落的行數,移動的列數是起始位置-1 下落的列數是計算下落方塊陣列中為1的位置可以下落的距離,整體下降距離是這些距離中最小的。 import java.util.Scanner; public class Main{ public static void main

shell指令碼遊戲之--俄羅斯方塊

#!/bin/bash #Tetris Game #10.21.2003 xhchen<[email][email protected][/email]> #APP declaration APP_NAME="${0##*[\/]}"

CCF認證201604-2 俄羅斯方塊

直接貼程式碼啦,程式碼裡有註釋 思路是這樣:先求出四列中最關鍵的一列,也就是說那一列的一個方塊決定著輸入的形狀能不能繼續往下掉,我求法是這樣,分別求出四列中原始陣列能放的最大行數減去輸入陣列中有1的行

201604-2俄羅斯方塊

一、原題 問題描述 試題編號: 201604-2 試題名稱: 俄羅斯方塊 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   俄羅斯方塊是俄羅斯人阿列克謝·帕基特諾夫發明的一款休閒遊戲。   遊戲在一個15行10列的方格圖

【開發記錄】微信小遊戲開發入門——俄羅斯方塊

了解 分享 公眾 lib 不必要 並且 視頻 text box 叨叨   我在前一陣子,打算做一個微信小遊戲,當然是單機的,只是為了了解小遊戲開發的過程,最終選擇了俄羅斯方塊這一經典小遊戲作為demo,源代碼已托管值github,當然,這個遊戲demo對用不並不友好,但是已

linux俄羅斯方塊遊戲

linux俄羅斯方塊遊戲 程式碼 #!/bin/bash # Tetris Game # 10.21.2003 xhchen<[email][email protected][/email]> #APP declaration APP_NAME="${0##*[\\

俄羅斯方塊遊戲

俄羅斯方塊小遊戲 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_26239525/article/details/82431921 研一時寫的俄羅斯方塊小遊戲,C++程式,程式碼還有很多值得優化的地方,歡迎交流。

c++寫俄羅斯方塊遊戲

第二篇部落格 把我之前用c++寫的一個俄羅斯方塊也傳上來算了,這個程式是我學完c++後寫的,雖然有點長,看起來比較嚇人,但是程式碼絕對是你能夠找到的理解起來最簡單的俄羅斯方塊的程式碼,對於一些基礎不好的同學還是非常友好的。(歡迎批評指正) #include<iostream>

[文件和原始碼分享] 基於Python的PyGame的俄羅斯方塊遊戲設計與實現

近年來,隨著遊戲產業的突飛猛進,遊戲玩家的技術也是與日俱增,當你看見遊戲高手完美的表演時,你是否想過我也能達到那種水平,本程式用Python語言編寫俄羅斯方塊,左側顯示正在執行的遊戲,右邊顯示下一個出現的形狀、等級和積分等。遊戲執行時隨著等級的提高而速度加快,這需要玩家快速操作。因此,本程式主要意義是為高手玩

201604-2 試題名稱: 俄羅斯方塊

#include <stdio.h> int main() { int matrix[15][10]; int graphic[4][4]; int i, j, k; for(i=0; i<15; i++) { for(j=0; j<1

一個很牛的 linux shell指令碼編寫的俄羅斯方塊遊戲例項程式碼,非常牛逼

可以將下面程式碼直接儲存為sh檔案。 #!/bin/bash   # Tetris Game # 10.21.2003 xhchen< [email][email protected][/email]>   #APP declaration

C++小遊戲(原創)——俄羅斯方塊

/* Designed by Ziwen 2018/09/26. */ #include<iostream> #include<cstring> #include<stdlib.h> #include<time.h&

c++小遊戲——俄羅斯方塊

#include<cstdio> #include<windows.h> #include<ctime> int a[24][17],i,j,tim=800,ti=800,shape=0,b,bn,ta[4][4],turn[

[原始碼和文件分享]基於Python的PyGame的俄羅斯方塊遊戲設計與實現

摘 要 近年來,隨著遊戲產業的突飛猛進,遊戲玩家的技術也是與日俱增,當你看見遊戲高手完美的表演時,你是否想過我也能達到那種水平,本程式用Python語言編寫俄羅斯方塊,左側顯示正在執行的遊戲,右邊顯示下一個出現的形狀、等級和積分等。遊戲執行時隨著等級的提高而速度加快,這需要玩家快速操作。因此,本

[原始碼和文件分享]基於Java的俄羅斯方塊遊戲

一 需求分析 掌握基本的圖形程式設計方法 掌握Java事件處理程式編寫方法 掌握編寫基於TCP或UDP協議的網路通訊程式 掌握Java的流、檔案、多執行緒等程式設計技術 二 程式設計 2.1 類之間關係 關係圖如下所示: 2.2

【新手入門】SDL+C語言編寫俄羅斯方塊遊戲小經歷

基礎太差,現在重新學習了一遍C語言。因為訓練要求,要學習SDL庫的使用,編寫個SDL+俄羅斯方塊小遊戲。轉眼一週多,小白終於寫出來了。以下是一些體會。感覺還是好好學習,多擼程式碼才是正道。 一、遊戲規則 1.開啟遊戲,遊戲開始,方塊自由下落。 2.當按下左鍵,方塊對環境進行判斷,條件應許即進行

CocosCreater的俄羅斯方塊遊戲實現

前段時間要做課程設計,發現可以做俄羅斯方塊,就想著用cocoscreater做一個俄羅斯方塊遊戲,順便發上來。 內容就偷個懶,從自己的課程設計拿過來,不再寫了。。自己也記錄一下構思過程。 當然,首先要把連結發上來: 接下來就照著自己的設計論文一一複製上來啦。 要文件的直接