⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iostream.c

📁 用linuX 下的C语言 运用CURSES编写的俄罗斯方块游戏
💻 C
字号:
#include"header.c"
int iostream()
{

			halfdelay(1);
			ch=wgetch(game_win);
			switch (ch)
			{
			case 'q': return 1;
//////////////////////////////////////////move left
//此出用GOTO是因为显示效果问题
			case 'a':
 	t=0;
			for(j=0;j<4;j++)
				for(i=0;i<2;i++)
		if( stone_s[type][view][i][j]!=0&&g_win[(x-1)+i][y+j-1]!=0)
			{ t=1;goto next1;}
	next1:if(t==0&&y>0)
				y--;
				show_g_stone(g_win,game_win);
				show_stone(stone_s,&type,&view,game_win,&x,&y);
				wrefresh(game_win);
			return 0;
//////////////////////////////////////////move right
			case 'd':
	t=0;
			for(j=3;j>=0;j--)
				for(i=0;i<2;i++)
		if( stone_s[type][view][i][j]!=0&&g_win[(x-1)+i][y+j+1]!=0)
			{ t=1;goto next2;}
	next2:	if(y<(11-k)&&t==0)
				y++;
				show_g_stone(g_win,game_win);
				show_stone(stone_s,&type,&view,game_win,&x,&y);
				wrefresh(game_win);
			return 0;
//////////////////////////////////////////move down
			case 's':
			for(i=0;i<20;i++)
			{
		if((t=make_game_win(stone_s,g_win,&type,&view,&x,&y))==0 )
		x++;
			}
		x--;return 0;
			
/////////////////////////////////////////////chang shap
			case 'w':
////////////////////////////////////judge wether can change the shape
//第一组FOR循环解决石头能否在游戏窗口上变形,第二个解决在窗口边界变形的问题
			k=-1;t=-1;
			for(i=stone_x-1;i>=0;i--)
			{
				for(j=0;j<stone_y;j++)
		  if(stone_s[type][(view+1)%4][i][j]!=0&&g_win[x-1+i][y+j]!=0)
				{t=1;break;}
			if(t==1) break;
			}

		for(j=3;j>=0;j--)
		{
			for(i=0;i<3;i++)
				if(stone_s[type][(view+1)%4][i][j]!=0)
				{ k=j;break;}
			if(k==j) break;
		}

			if(t==-1&&y<=(11-k) )
			view=(view+1)%4;
				show_g_stone(g_win,game_win);
				show_stone(stone_s,&type,&view,game_win,&x,&y);
				wrefresh(game_win);

			return 0;
//////////////////////////////////////action stop
			case 'e':
			halfdelay(FALSE);
		while((ch=wgetch(game_win))!='e');
			halfdelay(1);







if(s_flag==2)
{
///////////////////////////////这里是FOR的一部分,2P的操作要写在这里
//////////////////////////////////////////move left
//此出用GOTO是因为显示效果问题
	del_stone(v_win,&v_score);
	mvwprintw(win,game_win_y+stone_y+2+3,game_win_width+2+4,"2p score: %d",v_score);
			case 'j':
 	t=0;
			for(j=0;j<4;j++)
				for(i=0;i<2;i++)
		if( stone_s[v_type][v_view][i][j]!=0&&v_win[(v_x-1)+i][v_y+j-1]!=0)
			{ t=1;goto v_next1;}
	v_next1:if(t==0&&v_y>0)
				v_y--;
				show_g_stone(v_win,virtual_win);
				show_stone(stone_s,&v_type,&v_view,virtual_win,&v_x,&v_y);
				wrefresh(virtual_win);
			return 0;
//////////////////////////////////////////move right
			case 'l':
	t=0;
			for(j=3;j>=0;j--)
				for(i=0;i<2;i++)
		if( stone_s[v_type][v_view][i][j]!=0&&v_win[(x-1)+i][y+j+1]!=0)
			{ t=1;goto v_next2;}
	v_next2: if(v_y<(11-v_k)&&t==0)///////////////////////////////the k!
				v_y++;
				show_g_stone(v_win,virtual_win);
				show_stone(stone_s,&v_type,&v_view,virtual_win,&v_x,&v_y);
				wrefresh(virtual_win);
			return 0;
//////////////////////////////////////////move down
			case 'k':
			for(i=0;i<20;i++)
			{
		if((v_t=make_game_win(stone_s,v_win,&v_type,&v_view,&v_x,&v_y))==0 )
		v_x++;
			}
		v_x--;return 0;
			
/////////////////////////////////////////////chang shap
			case 'i':
////////////////////////////////////judge wether can change the shape
//第一组FOR循环解决石头能否在游戏窗口上变形,第二个解决在窗口边界变形的问题
			k=-1;t=-1;
			for(i=stone_x-1;i>=0;i--)
			{
				for(j=0;j<stone_y;j++)
		  if(stone_s[v_type][(v_view+1)%4][i][j]!=0&&g_win[v_x-1+i][v_y+j]!=0)
				{t=1;break;}
			if(t==1) break;
			}

		for(j=3;j>=0;j--)
		{
			for(i=0;i<3;i++)
				if(stone_s[v_type][(v_view+1)%4][i][j]!=0)
				{ k=j;break;}
			if(k==j) break;
		}

			if(t==-1&&v_y<=(11-k) )
			v_view=(v_view+1)%4;
				show_g_stone(v_win,virtual_win);
				show_stone(stone_s,&v_type,&v_view,virtual_win,&v_x,&v_y);
				wrefresh(virtual_win);
			return 0;
}		






//////////////////////////////////////////////////2p  end			
			default :return 0;
			
		}//endswitch// the fun of the stone 
		return 0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -