//游戏编程-测试-v1.01//
//**********************************************************************************************************//

#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#define o 999
#define E 13 //定义游戏困难级别,下同;》》》临时定义:Y=玩家选择困难级别苹果 数;
#define M 17  //                                       Y1=剩余苹果数;
#define H 23  //                                       Y2=玩家拿取苹果数
#define VH 29  //                                      Y3=系统拿取苹果数

//------------------------------------------------------------------------------------------------------------
void JM()//--主界面函数 1.;
{
	system("CLS");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("**************************                       ******************************\n");
	printf("*****************                                         *********************\n");
    printf("*****************                                         *********************\n");
	printf("***                     --最后一个苹果--v1.01--                              **\n");
	printf("***                                                                          **\n");
	printf("***                                                                          **\n");
	printf("***                          1. 开 始 游戏                                   **\n");
	printf("***                          2. 继 续 游戏                                   **\n");
	printf("***                          3. 游戏 帮 助                                   **\n");
    printf("***                          4. 游戏 秘 籍                                   **\n");
    printf("***                          0. 退 出 游戏                                   **\n");
    printf("***                                                                          **\n");
    printf("***  请输入您的选择吧:_                                                     **\n");
	printf("***                                                                          **\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("************                                                        ***********\n");
}

//******

void JM_1()//--主界面-1 函数;
{
	system("CLS");//	system("clr")头文件为:stdlib.h;
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("***                                                                          **\n");
    printf("***-----------------------请选择游戏困难级别吧-------------------------------**\n");
    printf("***-----------------------  1.  初      级^^---------------------------------**\n"); 
	printf("***-----------------------  2.  中      级^^---------------------------------**\n");
    printf("***-----------------------  3.  困      难^^---------------------------------**\n");
    printf("***-----------------------  4.  终极无敌版^^---------------------------------**\n");
    printf("***-----------------------  0.  返回主菜单^^---------------------------------**\n");
    printf("*******************                                     ***********************\n");
	printf("*******************                                     ***********************\n");
    printf("*******************                                     ***********************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("***-------请输入您的选择:---------------------------------------------------**\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");

}

//******

void JM_2()//主界面-2 函数;
{   system("CLS");//	system("clr")头文件为:stdlib.h;
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("***                                                                          **\n");
    printf("***-------------------··抱歉!水平有限·~~`````~~ ···-------------------**\n");
    printf("***--------------------------此功能还没完善--sorry---------------------------**\n");
    printf("***----                                                                   ---**\n");
    printf("***-------------------------1. 返回主菜单------------------------------------**\n");
    printf("***-------------------------0. 退 出 游戏------------------------------------**\n");
    printf("***      请输入您的选择:                                                    **\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");

}

//******


void JM_3()//主界面-3 函数;
{
	system("CLS");//	system("clr")头文件为:stdlib.h;
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("***                                                                          **\n");
    printf("***---------------抱歉!~~此功能还没完善--sorry~~`````~~---------------------**\n");
    printf("***-------------------                                             ----------**\n");
    printf("***--------------------- 1.  返回主菜单--------------------------------------**\n");
    printf("***--------------------- 0.  退 出 游戏--------------------------------------**\n");
    printf("***-----------------------             --------------------------------------**\n");
    printf("***      请输入您的选择:                                                    **\n");
    printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");

}


//******


void JM_4()//主界面-4 函数;
{   system("CLS");//	system("clr")头文件为:stdlib.h;
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("***                                                                          **\n");
    printf("***---------------抱歉!~~此功能还没完善--sorry~~`````~~---------------------**\n");
    printf("***-------------------                                             ----------**\n");
    printf("***--------------------- 1.  返回主菜单--------------------------------------**\n");
    printf("***--------------------- 0.  退 出 游戏--------------------------------------**\n");
    printf("***--------------------------             -----------------------------------**\n");
    printf("***      请输入您的选择:                                                    **\n");
    printf("*******************************************************************************\n");
	printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
    
}

//******

void JM_5()//主界面-5 函数;
{system("CLS");//	system("clr")头文件为:stdlib.h;
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
	printf("***                                                                          **\n");
    printf("***---------------------游 戏 名  称: 最后一个苹果                   -------**\n");
    printf("***---------------------游 戏 版  本: v1.01                          -------**\n");
    printf("***---------------------游 戏 制作人: hanjiacheng                    -------**\n");
    printf("***---------------------游戏制作时间: 2013年1月30日--学习C语言第14天 -------**\n");
    printf("******************                                         ********************\n");
    printf("******************                                         ********************\n");
    printf("*****************                                          ********************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("***---------您确定要退出吗?--1. 不  , 返回 主菜单--------------------------**\n");
	printf("*****************           --0. 是的,退  出 游戏         ********************\n");
    printf("***---------请输入您的选择:          ---------------------------------------**\n");
	printf("*****************------------------------------------------********************\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
}

//------------------------------------------------------------------------------------------------------------


//------------------------------------------------------------------------------------------------------------
void SY(int s)//显示剩余水果树(打印图标) 函数;
{
	system("CLS");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
	printf("-----------剩--余--苹--果--数--为---- %-5d--------------------------------\n\n",s);
	
    while(s>0)
	{
		printf("%c\t",2);
		s--;
	}
	printf("\n\n");
	printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
    printf("*******************************************************************************\n");
}


//-------------------------------------------------------------------------------------------
int SR1(int *p)//处理不合法输入--函数;
{
    int a1;
	void TC();

    p=&a1;
    scanf("%d",&a1);//此处不能用getch//getchar!!!

	while(a1<0||a1>4)
	{   
	 printf("\n-?-?-?-?-?-请正确回复!!!\n----------请重新输入您的选择: ");
	scanf("%d",&a1);
	}                              //???getch用法:a=getch()----printf("a=%c",a)==putch(a);
  putch(a1); //只能输出单个字符、数字;
 

return *p;
}
//----------------------------------------------------------------------------------
int SR2(int *p1,int shengy)//处理不合法输入--函数2;

{
int a1;
    p1=&a1;
    scanf("%d",&a1);

	while(a1<1||a1>3||(shengy-a1)<0)
	{   
	 printf("\n-?-?-?-?-?-请正确回复!!!\n----------请从新输入您的选择: ");
	 scanf("%d",&a1);}
	printf("您拿走了%d个苹果",a1);
	
	return *p1;

}
//-----------------------------------------------------------------------------------------
int SR3(int *p)
{
	int b;

	p=&b;
	scanf("%d",&b);

	while(b<0||b>1)
	{printf("\n-?-?-?-?-?-请正确回复!!!\n----------请从新输入您的选择: ");
	 scanf("%d",&b);
	}
return *p;
}


//-------------------------------------------------------------------------------------------
int YX(int yx)    //开始游戏  第一步--判断Y的初始值--函数
{

	int Y;
	void main_1();
	
	if(yx==1)
	{Y=E;}
	else if(yx==2)
	{       Y=M;}
	     else if(yx==3)
		 {    Y=H;}
		      else if(yx==4)
			  {Y=VH;}
			       else
				   {main_1();}
	return Y; //初始化  Y
}

void YX1(int yx)//游戏计算函数------------------------------------------------------------------------------
{
	int Y3,Y2,Y1,Y,dn=0,wj=0;
	int *p2=&Y2,*pyx=&yx;
	void main_1();
	void JS();

    Y=YX(yx);           //初始化  Y
	
	system("CLS");     //清屏
	SY(Y);             //打印苹果数
	puts("按任意键开始游戏");//开始游戏
	getch();
do
	{	
	 
	Y3=Y%4;//Y3电脑拿走苹果数
	Y1=Y-Y3;//Y1=剩余苹果数;
   	SY(Y1);//打印剩余苹果数
    printf("*****----------------电脑已经拿走了%d个苹果,只剩下%d个苹果了!-----------******\n",Y3,Y1);
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");

   

	if(Y1==0)//判断电脑是否胜利
	{puts("*****----------------太菜了--你被电脑打败了~~~----------------------------*****");JS();}
	puts("--现在该你了。按任意键继续..."); 
	getch();
   
    Y=Y1;//从新定义 Y 为剩余苹果数;
    printf("输入你要拿走的苹果数吧:_");

	Y2=SR2(p2,Y1);//玩家拿走苹果数Y2;SR2(Y2)处理输入合法;
	Y1=Y-Y2;      //Y1=剩余苹果数;
    SY(Y1);       //打印剩余苹果数
	printf("*****--------------------你已经拿走了%d个苹果,只剩下%d个苹果了!----------*****\n",Y2,Y1);
	printf("*******************************************************************************\n");
	printf("*******************************************************************************\n");
	

	if(Y1==0)        //判断玩家是否胜利
	{puts("*****-----------------------------------太牛了--电脑都被你打赢了~~~--------*****");JS();}
	puts("--现在该电脑了。按任意键继续...");
	getch();
	
	Y=Y1;
	system("CLS");     //清屏
	}
while(Y1>0);
}
//---------------------------------------------------------------------------------------
void JS()  //游戏分胜负后--结束函数;
{

puts("游戏结束!按任意键返回主菜单——");
getch();
main_1();		  

}

//-----------------------------------------------------------------------------------------
void YX2(int a5)//二级界面函数
{
	int jm2,jm3,jm4,jm1;
	int *p2=&jm2,*p3=&jm3,*p4=&jm4,*p1=&jm1;
    void TC();
	void main_1();
	int SR1();
	int YX();
	void JM_2();
	void JM_3();
	void JM_4();
	void SY();




switch(a5)
{
	case 1:{ JM_1(); //进入游戏入口;
		     jm1=SR1(p1);
		                       //处理输入问题; YX(A_1); 
			 YX1(jm1);           //直接调用YX1函数   Y 初始值在函数里面获得;;
			  
			 break;}//A_1作为难度选项。调用YX()函数;
    case 2 :{JM_2();
			jm2=SR3(p2);
		    if(jm2==1)
			{main_1();break;}
			else
			{TC();}break;}


			
	case 3 :{JM_3();
		    jm3=SR3(p3);
            if(jm3==1)
			{main_1();}
	        else
			{TC();}
		    break;}
    case 4 :{JM_4();
		    jm4=SR3(p4);
		  if(jm4==1)
		  {main_1();}
		  else
		  {TC();}
		  break;}

    case 0 :{
		     TC();
            break;}
	default :{puts("程序有问题,等待修复。。。");}
}
}

//--------------------------

void TC()// ---------退出函数
{
	void main_1();
	int SR3(int *p);
	void JM_5();
int ii;
int *pii=&ii;//((((问题已修复!!!;
JM_5();
ii=SR3(pii);
if(ii!=0)
{main_1();}
else
{
exit(0);}
}


//---------------------------------------------------


//------------------------------------    -------------------------------------------------------
void main_1()                                //主函数这里开始;
{ 
	
	void TC();
	int SR1(int *P);
	void YX2(int a5);

	 int zjm_A;
	 int *p1=&zjm_A;                         //初始苹果数;int Y; 
                                              //剩余苹果数;	int Y1
                                             //主界面玩家选择的变量;int *p1=zjm_A;

    JM();                                   //主界面第一个变量--zjm_A;
	                
	printf("***--您选择了 ");               //主界面第二个变量--A_1;主界面第3个变量--A_1_1;
    zjm_A=SR1(p1);

	if(zjm_A==0)
	{TC();}

	YX2(zjm_A);                            //调用游戏2级函数--2调用1-。。。。
  
}                                          //---------------------。2013.1.31晚!!!



//****************************************************************************************************
void main()
{
	void main_1();

	 main_1();

}

//-------------2013年1月31号-hanjiacheng--修复完成!-----------------------------------------------------------------------------------