メニューセレクト(1:1P2Pともデータがない場合)
{
まず名前入力(2)し、その名前から選手のステータスを作り出す。
それらを構造体(この時点で入れるのは(名前、テクニック、キック力、運、ゴール数)のみ、ほかにも、既プレイ判定、勝利回数)に入れる。
そしてPKバトルを行う。
(1P2Pキッカー交代)を5回繰り返し(PKのルールと同じ)、ゴール数が多いほうが勝ち、もし同じだった場合はどちらかが失敗するまで繰り返し、勝ったほうの名前とゴール数と勝利回数をテキストに入れる。そしてお互いの構造体をbinに入れる。
}
(2:1P(2P)のデータがない場合)
{
データがある方はなにも入力せずデータがない方は(1)のやり方を行う。
今のところ(1)と同じ。
//複数のデータを書き込み&読み込み&保存するためのやり方を教えてください!
}
(3:どちらもデータがある場合)
{
入出力を行わずメッセージが出るだけでバトル開始(1)と同じ
//複数のデータを書き込み&読み込み&保存するためのやり方を教えてください!
}
環境はVisualStadio2010です。
***********エラーコード***********
1>------ ビルド開始: プロジェクト: CP11_kadai09, 構成: Debug Win32 ------
1>2016/01/14 23:20:07 にビルドを開始しました。
1>InitializeBuildStatus:
1> "Debug\CP11_kadai09.unsuccessfulbuild" のタッチ タスクを実行しています。
1>ClCompile:
1> すべての出力が最新のものです。
1>ManifestResourceCompile:
1> すべての出力が最新のものです。
1>main.obj : warning LNK4217: ローカルで定義されたシンボル ___iob_func がフィクション _main にインポートされました。
1>main.obj : warning LNK4217: ローカルで定義されたシンボル _exit がフィクション _main にインポートされました。
1>main.obj : warning LNK4217: ローカルで定義されたシンボル _printf がフィクション _main にインポートされました。
1>main.obj : warning LNK4217: ローカルで定義されたシンボル _fclose がフィクション "void __cdecl Status(struct PLAYER *)" (?Status@@YAXPAUPLAYER@@@Z) にインポートされました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__getchar が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__rewind が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__system が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__scanf が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__getch が関数 "void __cdecl INKEY(int &)" (?INKEY@@YAXAAH@Z) で参照されました。
1>OLDNAMES.lib(getch.obi) : error LNK2001: 外部シンボル "__imp__getch" は未解決です。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__kbhit が関数 "void __cdecl INKEY(int &)" (?INKEY@@YAXAAH@Z) で参照されました。
1>OLDNAMES.lib(kbhit.obi) : error LNK2001: 外部シンボル "__imp__kbhit" は未解決です。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__srand が関数 "void __cdecl Title(void)" (?Title@@YAXXZ) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp___time64 が関数 _time で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__fread が関数 "void __cdecl Status(struct PLAYER *)" (?Status@@YAXPAUPLAYER@@@Z) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__fwrite が関数 "void __cdecl Status(struct PLAYER *)" (?Status@@YAXPAUPLAYER@@@Z) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__fopen が関数 "void __cdecl Status(struct PLAYER *)" (?Status@@YAXPAUPLAYER@@@Z) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__scanf_s が関数 "bool __cdecl Battle(struct PLAYER *,struct PLAYER *)" (?Battle@@YA_NPAUPLAYER@@0@Z) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__fprintf が関数 "void __cdecl Result(struct PLAYER *)" (?Result@@YAXPAUPLAYER@@@Z) で参照されました。
1>OLDNAMES.lib(getch.obi) : error LNK2001: 外部シンボル "__imp___getch" は未解決です。
1>OLDNAMES.lib(kbhit.obi) : error LNK2001: 外部シンボル "__imp___kbhit" は未解決です。
1>C:\Users\ths50065\Desktop\CP\CP11_kadai09\Debug\CP11_kadai09.exe : fatal error LNK1120: 外部参照 15 が未解決です。
1>
1>ビルドに失敗しました。
1>
1>経過時間 00:00:00.24
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
**********コード************
//------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <conio.h>
//------------------------------------------------------------------------------------------------------------------
// マクロ定義
//------------------------------------------------------------------------------------------------------------------
#define MAX_PLAYER (2) //プレイヤーの最大値
#define MAX_NAME (5) //プレイヤーの名前の最大値
#define MAX_MATCH (5) //最大試合数
#define MAX_SELECT (5) //セレクト画面 / セレクト数上限
#define FILE_NAME "SaveDate,bin"//バイナリデータ名マクロ
#define WINNER_FILE_NAME "WinnerSaveDate,txt"//勝者用テキスト名マクロ
//------------------------------------------------------------------------------------------------------------------
// 構造体の定義
//------------------------------------------------------------------------------------------------------------------
typedef struct{
unsigned char nName [MAX_NAME]; //名前
int nTechnique; //テクニック
int nKickPower; //キック力
int nLuck; //運
int nGoal[MAX_MATCH]; //ゴール数
int nCount; //既プレイ判定
int nWin; //勝利回数
}PLAYER;
//------------------------------------------------------------------------------------------------------------------
// プロトタイプ宣言
//------------------------------------------------------------------------------------------------------------------
void Input(PLAYER *aPlayer); //入力処理
void Status(PLAYER *aPlayer); //ステータス処理
void Output(PLAYER *aPlayer); //出力処理
bool Battle(PLAYER *aPlayerAtk,PLAYER *aPlayerDef); //バトル処理
bool Overtime(PLAYER *aPlayerAtk,PLAYER *aPlayerDef); //延長戦
void Result(PLAYER *aPlayer); //結果
void Save ( PLAYER *aPlayer); //セーブ処理
int Lord (PLAYER *aPlayer); //ロード処理
void KeyWait(void); //キー待ち関数
//------------------------------------------------------------------------------------------------------------------
// メイン関数
//------------------------------------------------------------------------------------------------------------------
int main( void )
{
//変数宣言
PLAYER aPlayer[MAX_PLAYER]; //構造体
bool bLoop = true; //bool型変数宣言/bLoopの初期値をtrue
int nCntMatch=0;
int nScore=0;
int nSelect = 0; //選択用変数
int cCode = 0;
//選択処理
do{
//セレクト画面
do{
printf( "-------メニュー-------\n" );
printf("\n");//改行
printf("1:キックオフ\n");
printf( "2:ロード\n" );
printf( "3:終了\n");
printf( "\n選択:" ); //コマンド入力
scanf("%d",&nSelect);
system("cls");//画面更新
}while( (nSelect<=0) && (nSelect > MAX_SELECT));
//選択処理内部
switch( nSelect )
{
//入力処理(キックオフ)
case 1:
{
Input ( &aPlayer[0] );
printf("メニュー画面に戻ります\n");
KeyWait();
break;
}
//ロード処理
case 2:
{
Lord ( &aPlayer[0]);
printf("メニュー画面に戻ります\n");
KeyWait();
break;
}
//プログラム終了
case 3:
{
char GoBack; //終了判定用変数
do{
GoBack = NULL;
printf("◆◆◆◆◆◆◆終了メッセージ◆◆◆◆◆◆◆");
printf("本当に終了しますか\n");
printf("[ y ] か [ n ]を入力しENTERを押してください\n");
printf( "選択:" ); //コマンド入力
scanf("%s",&GoBack);
KeyWait();
}while((GoBack != 'y') && (GoBack != 'n'));//y&nが押されるまで繰り返す
system("cls");
if(GoBack == 'y')//プログラム終了
{
printf("プログラムを終了します\n");
KeyWait();
bLoop = false;
break;
}
else
{
printf("メニュー画面に戻ります。\n");
KeyWait();
break;
}
}
}//switchの終わり
system( "cls" );
}while( bLoop == true);//trueの時繰り返す
exit(0);//終了(return 0だとエラー/ exit(0)でosに終了を指示)
//キーボタン押し待ちの処理
printf("\nプログラムを終了します。何かキーを押してください。");
rewind( stdin );
getchar();
}//-------------------------------------------------------------------------------------------------------------
// 入力処理
//------------------------------------------------------------------------------------------------------------------
void Input(PLAYER *aPlayer)
{
int nCntPlayer;
if((aPlayer[0].nCount = NULL)||(aPlayer[1].nCount = NULL))
{
for( nCntPlayer=0 ; nCntPlayer < MAX_PLAYER ; nCntPlayer++ )
{
printf("%d P:あなたの名前を教えてださい\n(%d文字まで)\n",nCntPlayer+1,MAX_NAME);
printf(">>");
scanf("%s",&aPlayer->nName);
aPlayer->nCount++;
aPlayer++;
KeyWait(); //キー入力待ち
}
}
else if(aPlayer[0].nCount = NULL)
{
printf("%s と対戦する方の名前を教えてださい\n(%d文字まで)\n",aPlayer[1].nName,MAX_NAME);
printf(">>");
scanf("%s",&aPlayer[0].nName);
KeyWait(); //キー入力待ち
}
else if(aPlayer[1].nCount = NULL)
{
printf("%s と対戦する方の名前を教えてださい\n(%d文字まで)\n",aPlayer[0].nName,MAX_NAME);
printf(">>");
scanf("%s",&aPlayer[1].nName);
KeyWait(); //キー入力待ち
}
else
{
for( nCntPlayer=0 ; nCntPlayer < MAX_PLAYER ; nCntPlayer++ )
{
printf("%d Pさんのステータスをロードしています。\n",aPlayer->nName);
aPlayer++;
KeyWait(); //キー入力待ち
}
}
}//int Input()の終わり
//------------------------------------------------------------------------------------------------------------------
// ステータス処理
//------------------------------------------------------------------------------------------------------------------
void Status(PLAYER *aPlayer)
{
int nCntPlayer;
FILE *pFile;
if((aPlayer[0].nCount = NULL)||(aPlayer[1].nCount = NULL))
{
pFile =fopen("FILE_NAME","w");
for( nCntPlayer=0 ; nCntPlayer < MAX_PLAYER ; nCntPlayer++ )
{
printf("監督が%d Pさんのステータスを測定しています。\n",aPlayer->nName);
aPlayer++;
KeyWait(); //キー入力待ち
}
aPlayer[0].nTechnique = (int)aPlayer[0].nName[0]+aPlayer[0].nName[1];
aPlayer[0].nKickPower = (int)aPlayer[0].nName[2]+aPlayer[0].nName[3];
aPlayer[0].nLuck = (int)aPlayer[0].nName[4]+aPlayer[0].nName[5];
aPlayer[1].nTechnique = (int)aPlayer[1].nName[0]+aPlayer[1].nName[1];
aPlayer[1].nKickPower = (int)aPlayer[1].nName[2]+aPlayer[1].nName[3];
aPlayer[1].nLuck = (int)aPlayer[1].nName[4]+aPlayer[1].nName[5];
fwrite(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile);//pFile/構造体ステータス書き込み
fclose(pFile);//ファイルを閉じる
}
else if(aPlayer[0].nCount = NULL)
{
pFile =fopen("FILE_NAME","w");
printf("監督が%d Pさんのステータスを測定しています。\n",aPlayer[0].nName);
aPlayer[0].nTechnique = (int)aPlayer[0].nName[0]+aPlayer[0].nName[1];
aPlayer[0].nKickPower = (int)aPlayer[0].nName[2]+aPlayer[0].nName[3];
aPlayer[0].nLuck = (int)aPlayer[0].nName[4]+aPlayer[0].nName[5];
fwrite(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile);//pFile/構造体ステータス書き込み
fclose(pFile);//ファイルを閉じる
}
else if(aPlayer[1].nCount = NULL)
{
pFile =fopen("FILE_NAME","w");
printf("監督が%d Pさんのステータスを測定しています。\n",aPlayer[1].nName);
aPlayer[1].nTechnique = (int)aPlayer[1].nName[0]+aPlayer[1].nName[1];
aPlayer[1].nKickPower = (int)aPlayer[1].nName[2]+aPlayer[1].nName[3];
aPlayer[1].nLuck = (int)aPlayer[1].nName[4]+aPlayer[1].nName[5];
fwrite(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile);//pFile/構造体ステータス書き込み
fclose(pFile);//ファイルを閉じる
}
else
{
pFile = fopen("FILE_NAME","rb"); //ファイルオープン
for( nCntPlayer=0 ; nCntPlayer < MAX_PLAYER ; nCntPlayer++ )
{
printf("%d Pさんのステータスをロードしました!\n",aPlayer->nName);
fread(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile); //pFile/構造体ステータス読み込み
aPlayer++;
KeyWait(); //キー入力待ち
}
fclose(pFile); //ファイルを閉じる
}
}
//------------------------------------------------------------------------------------------------------------------
// 出力処理
//------------------------------------------------------------------------------------------------------------------
void Output(PLAYER *aPlayer)
{
//ステータス処理
Status(&aPlayer[0]);
int nCntPlayer;
int nCntMatch;
for( nCntPlayer=0; nCntPlayer < MAX_PLAYER ; nCntPlayer++ )
{
printf("プレイヤー%d P\n",nCntPlayer+1);
printf("名前 : %s\n",aPlayer->nName);
printf("テクニック: %d\n",aPlayer->nTechnique);
printf("シュート力: %d\n",aPlayer->nKickPower);
printf("運 : %d\n",aPlayer->nLuck);
aPlayer++;
KeyWait(); //キー入力待ち
}
bool bEndBattle; //勝敗
//バトル処理
bEndBattle = false;
for(nCntMatch=0; nCntMatch < MAX_MATCH; nCntMatch++)//最大試合数分(5)ループ
{
printf("%d回目",nCntMatch+1);
bEndBattle = Battle(&aPlayer[1],&aPlayer[0]);
bEndBattle = Battle(&aPlayer[0],&aPlayer[1]);
}
//結果
Result(&aPlayer[0]);
}
//------------------------------------------------------------------------------------------------------------------
// バトル処理
//------------------------------------------------------------------------------------------------------------------
bool Battle(PLAYER *aPlayerAtk,PLAYER *aPlayerDef)
{
int nCntMatch=0; //試合数カウンタ
int nAkey=0,nDkey=0; //A(キッカー側)D(キーパー側)キー
int nKey; //キー判定
//それぞれの値を初期化
nAkey=0;
nDkey=0;
printf("%sさんがボールの前に立ちました\n",aPlayerAtk->nName);
printf("%sはどこを狙う?\n",aPlayerAtk->nName);
printf("□□□\n");
printf("□□□\n");
scanf_s("%d",&nKey);
KeyWait(); //キー入力待ち
//キッカー側
switch (nKey)
{
case 'a':
{
printf("□□□\n");
printf("■□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 1;
break;
}
case 's':
{
printf("□□□\n");
printf("□■□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 2;
break;
}
case 'd':
{
printf("□□□\n");
printf("□□■\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 3;
break;
}
case 'q':
{
printf("■□□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 4;
break;
}
case 'w':
{
printf("□■□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 5;
break;
}
case 'e':
{
printf("□□■\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 6;
break;
}
}
//画面更新
printf("%sさんは%sと操作を交代してください\n",aPlayerAtk->nName,aPlayerDef->nName);
printf("%sさんは%sの番が終わるまで画面見ないように\n",aPlayerAtk->nName,aPlayerDef->nName);
KeyWait(); //キー入力待ち
//キーパー側
nKey=0;
printf("%sはどこに飛ぶ?\n",aPlayerDef->nName);
printf("□□□\n");
printf("□□□\n");
scanf_s("%d",&nKey);
KeyWait(); //キー入力待ち
switch (nKey)
{
case 'a':
{
printf("□□□\n");
printf("■□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 1;
break;
}
case 's':
{
printf("□□□\n");
printf("□■□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 2;
break;
}
case 'd':
{
printf("□□□\n");
printf("□□■\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 3;
break;
}
case 'q':
{
printf("■□□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 4;
break;
}
case 'w':
{
printf("□■□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 5;
break;
}
case 'e':
{
printf("□□■\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 6;
break;
}
}
if(nAkey==nDkey)
{
if((aPlayerAtk->nKickPower+aPlayerAtk->nTechnique)*aPlayerAtk->nLuck<aPlayerDef->nTechnique*1.25*aPlayerDef->nLuck)
{
printf("%sが決めたぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
aPlayerAtk[0].nGoal[0]++;
}
else
{
printf("%sが止めたぁぁ!\n",aPlayerDef->nName);
KeyWait(); //キー入力待ち
}
}
else
{
if((aPlayerAtk->nKickPower+aPlayerAtk->nTechnique)*aPlayerAtk->nLuck<aPlayerDef->nTechnique*1.25*aPlayerDef->nLuck)
{
printf("%sが外したぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
}
else
{
printf("%sが決めたぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
aPlayerAtk[0].nGoal[0]++;
}
}
nCntMatch++;
if(nCntMatch==10)
{
return true;
}
return false;
}
//------------------------------------------------------------------------------------------------------------------
// 結果
//------------------------------------------------------------------------------------------------------------------
void Result(PLAYER *aPlayer)
{
bool bEndBattle; //勝敗
int nCntMatch=0; //試合数カウント
FILE *pFile;
pFile =fopen("FILE_NAME","w");
bEndBattle = false;
//試合結果
if(aPlayer[0].nGoal[0]>aPlayer[1].nGoal[0])
{
printf("%sが試合に勝利した\n",aPlayer[0].nName);
aPlayer[0].nWin++;
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nName);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nGoal);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nWin);
KeyWait();//キー入力待ち
}
else if(aPlayer[0].nGoal[0]<aPlayer[1].nGoal[0])
{
printf("%sが試合に勝利した\n",aPlayer[1].nName);
aPlayer[1].nWin++;
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nName);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nGoal);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nWin);
KeyWait();//キー入力待ち
}
else if(aPlayer[0].nGoal[0]==aPlayer[1].nGoal[0])//得点が同じ場合
{
printf("延長戦!!");
//延長戦
while((aPlayer[0].nGoal[0]>aPlayer[1].nGoal[0])||(aPlayer[0].nGoal[0]<aPlayer[1].nGoal[0]))//どちらかが勝つまで
{
printf("%d回目",nCntMatch+1);
bEndBattle = Battle(&aPlayer[1],&aPlayer[0]);
bEndBattle = Battle(&aPlayer[0],&aPlayer[1]);
}
//延長戦の試合結果
if(aPlayer[0].nGoal[0]>aPlayer[1].nGoal[0])
{
printf("%sが試合に勝利した\n",aPlayer[0].nName);
aPlayer[0].nWin++;
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nName);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nGoal);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[0].nWin);
KeyWait();//キー入力待ち
}
else if(aPlayer[0].nGoal[0]<aPlayer[1].nGoal[0])
{
printf("%sが試合に勝利した\n",aPlayer[1].nName);
aPlayer[1].nWin++;
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nName);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nGoal);
fprintf(pFile,WINNER_FILE_NAME,aPlayer[1].nWin);
KeyWait();//キー入力待ち
}
}
printf("試合後の結果をセーブします。\n");
Save ( &aPlayer[0]);
KeyWait(); //キー入力待ち
}
//------------------------------------------------------------------------------------------------------------------
// 延長戦
//------------------------------------------------------------------------------------------------------------------
bool Overtime(PLAYER *aPlayerAtk,PLAYER *aPlayerDef)
{
int nAkey=0,nDkey=0; //A(キッカー側)D(キーパー側)キー
int nKey=0; //キー判定
//それぞれの値を初期化
nAkey=0;
nDkey=0;
printf("%sと%sのPKは延長戦に入った!");
printf("%sさんがボールの前に立ちました\n",aPlayerAtk->nName);
printf("%sはどこを狙う?\n",aPlayerAtk->nName);
printf("□□□\n");
printf("□□□\n");
scanf_s("%d",&nKey);
KeyWait(); //キー入力待ち
//キッカー側
switch (nKey)
{
case 'a':
{
printf("□□□\n");
printf("■□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 1;
break;
}
case 's':
{
printf("□□□\n");
printf("□■□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 2;
break;
}
case 'd':
{
printf("□□□\n");
printf("□□■\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 3;
break;
}
case 'q':
{
printf("■□□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 4;
break;
}
case 'w':
{
printf("□■□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 5;
break;
}
case 'e':
{
printf("□□■\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nAkey = 6;
break;
}
}
//画面更新
printf("%sさんは%sと操作を交代してください\n",aPlayerAtk->nName,aPlayerDef->nName);
printf("%sさんは%sの番が終わるまで画面見ないように\n",aPlayerAtk->nName,aPlayerDef->nName);
KeyWait(); //キー入力待ち
//キーパー側
printf("%sはどこに飛ぶ?\n",aPlayerDef->nName);
printf("□□□\n");
printf("□□□\n");
scanf_s("%d",&nKey);
KeyWait(); //キー入力待ち
switch (nKey)
{
case 'a':
{
printf("□□□\n");
printf("■□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 1;
break;
}
case 's':
{
printf("□□□\n");
printf("□■□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 2;
break;
}
case 'd':
{
printf("□□□\n");
printf("□□■\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 3;
break;
}
case 'q':
{
printf("■□□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 4;
break;
}
case 'w':
{
printf("□■□\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 5;
break;
}
case 'e':
{
printf("□□■\n");
printf("□□□\n");
Sleep(1);
KeyWait(); //キー入力待ち
nDkey = 6;
break;
}
}
if(nAkey==nDkey)
{
if((aPlayerAtk->nKickPower+aPlayerAtk->nTechnique)*aPlayerAtk->nLuck<aPlayerDef->nTechnique*1.5*aPlayerDef->nLuck)
{
printf("%sが決めたぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
aPlayerAtk[0].nGoal[0]++;
}
else
{
printf("%sが止めたぁぁ!\n",aPlayerDef->nName);
KeyWait(); //キー入力待ち
}
}
else
{
if((aPlayerAtk->nKickPower+aPlayerAtk->nTechnique)*aPlayerAtk->nLuck<aPlayerDef->nTechnique*1.5*aPlayerDef->nLuck)
{
printf("%sが外したぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
}
else
{
printf("%sが決めたぁぁ!\n",aPlayerAtk->nName);
KeyWait(); //キー入力待ち
aPlayerAtk[0].nGoal[0]++;
}
}
return true;
}
//------------------------------------------------------------------------------------------------------------------
// セーブ処理
//------------------------------------------------------------------------------------------------------------------
void Save ( PLAYER *aPlayer)
{
//変数の宣言
FILE *pFile; //ファイルポインタ
pFile = fopen(FILE_NAME,"wb");//ファイルオープン
//ファイルエラー
if( pFile == NULL )
{
printf("◆◆◆◆◆◆◆警告◆◆◆◆◆◆◆\n");
fopen("ファイルが開けませんでした\n","w"); //pFile作成
printf("セーブが出来ませんでした\n");
KeyWait(); //キー入力待ち
system("cls"); //画面更新
}
else
{
printf("ファイルが無事ひらけました!\n");
printf("ファイルにセーブします\n");
KeyWait(); //キー入力待ち
system("cls"); //画面更新
fwrite(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile); //pFile/構造体ステータス書き込み
fclose(pFile);//ファイルを閉じる
}//「ファイルエラー」if(else)の終わり
}//void Saveの終わり
//------------------------------------------------------------------------------------------------------------------
// ロード処理
//------------------------------------------------------------------------------------------------------------------
int Lord (PLAYER *aPlayer)
{
//変数の宣言
FILE *pFile; //ファイルポインタ作成
pFile = fopen(FILE_NAME,"rb"); //ファイルオープン
//ファイルエラー
if( pFile == NULL )
{
printf("◆◆◆◆◆◆◆警告◆◆◆◆◆◆◆\n");
fopen("ファイルが開けませんでした\n","w"); //pFile作成
printf("ロードが出来ませんでした\n");
KeyWait();
}
//成功
else
{
printf("ファイルが無事ひらけました\n");
printf("ファイルからロードします\n");
fread(aPlayer,sizeof(PLAYER),MAX_PLAYER,pFile); //pFile/構造体ステータス読み込み
fclose(pFile); //ファイルを閉じる
KeyWait(); //キー押し待ち
}
return 0;
}//int Lordの終わり
//------------------------------------------------------------------------------------------------------------------
// キー待ち処理
//------------------------------------------------------------------------------------------------------------------
void KeyWait(void)
{
printf("ENTERキーを押してください\n");
/* キーボタン押し待ちの処理 */
rewind( stdin );
getchar();
system("cls");//画面更新
}