私は今1週間で身につくc言語の基本というのを勉強しています。
回答がないため質問させていただきます。
以下のプログラムは、じゃんけんゲームです。このプログラムの関数を、以下に指定したファイルに分割しなさい。なお、グローバル変数は、表の指定したファイルの中で定義すること。
c
1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4 5// コンピュータの手 6int player = 0; 7// プレイヤーの手 8int computer = 0; 9char results[3][16] = {"グー","チョキ","パー"}; 10// 乱数の初期化 11void init(); 12// プレイヤーの手値設定 13void setPlayer(int); 14// コンピュータの手設定 15void setComputer(); 16// 判定 17void Judge(); 18 19void main(){ 20 int num; 21 init(); 22 printf("じゃんけんゲーム¥n"); 23 printf("0:グー、1:チョキ、2:パー¥n"); 24 while(1){ 25 printf("あなたの手は?(0-2):"); 26 scanf("%d",&num); 27 if(num < 0 || num > 2){ 28 printf("終了します¥n"); 29 break; 30 }else{ 31 setPlayer(num); // 自分の手設定 32 setComputer(); // コンピュータの手設定 33 Judge(); // 判定 34 } 35 } 36} 37 38// 初期化 39void init() 40{ 41 srand((unsigned) time(NULL)); 42} 43// 指定した範囲の乱数を発生 44void setPlayer(int num) 45{ 46 player = num; 47} 48// 指定した範囲の乱数を発生 49void setComputer() 50{ 51 computer = rand() % 3; 52} 53 54void Judge(){ 55 printf("プレイヤー:%s¥n",results[player]); 56 printf("コンピューター:%s¥n",results[computer]); 57 if((player == 0 && computer == 1) 58 || (player == 1 && computer == 2) 59 || (player == 2 && player == 0)){ 60 printf("プレイヤーの勝ち¥n"); 61 }else if((player == 1 && computer == 0) 62 || (player == 2 && computer == 1) 63 || (player == 0 && computer == 2)){ 64 printf("コンピュータの勝ち¥n"); 65 }else{ 66 printf("あいこです。¥n"); 67 } 68}
|ヘッダーファイル|ソースファイル|関数|グローバル変数| |:--|:--|:--|:--| |logic.h|logic.c|init(),setPlayer(),setComputer()|player,computer| |showResult.h|showResult.c|Judge()|results|
c
1#include <stdio.h> 2#include <string.h> 3#include "logic.h" 4 5int init=0; 6int setPlayer=0; 7int setComputer=0; 8 9char results[3][16] = {"グー","チョキ","パー"}; 10void init(); 11void setPlayer(int); 12void setComputer(); 13void Judge(); 14 15void main(){ 16 int num; 17 init(); 18 printf("じゃんけんゲーム\n"); 19 printf("0:グー、1:チョキ、2:パー\n"); 20 while(1){ 21 printf("あなたの手は?(0-2):"); 22 scanf("%d",&num); 23 if(num < 0 || num > 2){ 24 printf("終了します\n"); 25 break; 26 }else{ 27 setPlayer(num); 28 setComputer(); 29 Judge(); 30 } 31 } 32}
c
1#include <stdio.h> 2#include <string.h> 3#include "showResult.c" 4 5int Judge=0; 6void init() 7{ 8 srand((unsigned) time(NULL)); 9} 10void setPlayer(int num) 11{ 12 player = num; 13} 14void setComputer() 15{ 16 computer = rand() % 3; 17} 18 19void Judge(){ 20 printf("プレイヤー:%s\n",results[player]); 21 printf("コンピューター:%s\n",results[computer]); 22 if((player == 0 && computer == 1) 23 || (player == 1 && computer == 2) 24 || (player == 2 && player == 0)){ 25 printf("プレイヤーの勝ち\n"); 26 }else if((player == 1 && computer == 0) 27 || (player == 2 && computer == 1) 28 || (player == 0 && computer == 2)){ 29 printf("コンピュータの勝ち\n"); 30 }else{ 31 printf("あいこです。\n"); 32 } 33}
私はこのように書きました。
ファイル分割をする方法がいまいち分からないので教えていただきたいです。
すみません。
ソースファイルが抜けてますがまだかけてません。
回答6件
あなたの回答
tips
プレビュー