資源簡介
2048小游戲c語言實現
代碼片段和文件信息
#include?
#include??????//?for?rand()?and?srand()?and?exit()
#include????????//?for?time()
#include???????//?for?getch()
#include?????//?for?system()
#include //windows環境下socket,需要的頭文件
#pragma?comment(lib“ws2_32.lib“) //添加庫文件,引入網絡相關API的支持
void?init(void);??????//?初始化數組跟賦值第一個隨機二維數組元素
void?draw(void);??????//?繪制4?*?4方格圖
void?play(void);??????//?控制移動方向
void?to_up(void);?????//?向上移動
void?to_down(void);??//?像下移動
void?to_left(void);???//?向左移動
void?to_right(void);??//?向右移動
void?add_number(void);??//?加新的數
int?a[4][4];????????????????????//格子
int?empty;??????????????????????//空格子的個數
int?main(void)?{
????printf(“****************************\n“);
????printf(“????????????2048????????????\n\n“);
????printf(“Control?by:\n“
????????????“?w/s/a/d?or?W/S/A/D\n“);
????printf(“press?q?or?Q?quit?game!\n“);
????printf(“****************************\n“);
???????printf(“Press?1?to?enter?SINGLE?mode?!\n“);
????printf(“Press?2?to?enter?DOUBLE?mode?!\n“);
????int?ch?=?getch();
????if?(ch?==?‘2‘)
????????double_mode();
????else?if?(ch?==?‘1‘){
????????system(“cls“);??????????//清屏
????????printf?(“***********************************************\n“);
????????printf?(“Please?Choose?difficulty?level?of?SINGLE?mode!:\n“);
????????printf?(“1?:?Easy\n“);
????????printf?(“2?:?Medium\n“);
????????printf?(“3?:?Difficult\n“);
????????printf?(“***********************************************\n“);
????????int?mode?=?getch();
????????int?score;
????????char?*difficulty;
????????switch(mode)?{??????????????//難易程度選擇
????????????case?‘1‘:
????????????????score?=?64;
????????????????difficulty?=?“Easy“;
????????????????break;
????????????case?‘2‘:
????????????????score?=?1024;
????????????????difficulty?=?“Medium“;
????????????????break;
????????????case?‘3‘:
????????????????score?=?2048;
????????????????difficulty?=?“Difficult“;
????????????????break;
????????????default:
????????????????printf(“Please?input?right?type?!\n“);
????????????????return?0;
????????}
????????system(“cls“);
????????printf?(“Welcome?to?%s?level?of?Single?mode\n“?difficulty);
????????init();
????????draw();
????????while(1){
????????????int?my_max?=?judge_max();
????????????if(my_max?>=?score){??????????????//判斷是否達到勝利條件
????????????????printf(“Your?Win?!“);
????????????????return?0;
????????????}
????????????play();
????????}
????}
}
void?double_mode(){?????????????????????????//雙人模式?一人一步
????system(“cls“);
????init();
????draw();
????printf(“Welcome?to?DOUBLE?mode?!\n“);
//windows?初始化socket網絡庫,
????//申請2,2的版本,windows?socket編程必須先初始化。
????//初始化WSA
????WORD?sockVersion?=?MAKEWORD(2?2);
????WSADATA?wsaData;
????if?(WSAStartup(sockVersion?&wsaData)?!=?0)
????{
????????return?0;
????}
????//正文部分
????????//創建套接字
????????SOCKET?client_sock?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
????????if?(client_sock?==?INVALID_SOCKET)
????????{
????????????printf(“s
- 上一篇:轉 VC++ 實現電子郵件(Email)發送
- 下一篇:qt寫的記事本
評論
共有 條評論