川渡りゲームの作成

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
jack_art_1

川渡りゲームの作成

#1

投稿記事 by jack_art_1 » 2年前

はじめまして、C言語をやっている初心者です。
川渡りゲームを作っていただきたいです。

条件として
・船に乗せられるのは農夫の他に1アイテムだけ運べる。(狼、山羊、キャベツがある)
・農夫がいない場所で、狼と山羊が一緒にいると狼が山羊を食べる。
・農夫がいない場所で、山羊とキャベツを一緒においておくと、山羊がキャベツを食べてしまう。
・船は農夫のみで動かしてもよい。

仕様
① 農夫が次に運ぶアイテムを番号で選ぶ。(0:農夫のみ 1:狼 2:山羊 3:キャベツ)
② ①で選択ミスがあった場合には選択をやり直させる。
③ 移動するたびに、岸と対岸を画面に表示させる。
④ クリアしたら”ゲームクリア”と表示する。

上記のような感じでお願いします。

よくわからず作ったのが下記にあります。

コード:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable: 4996)

int main(void)
{
	int no;
	int yes;
	int seiko = 0;
	int shippai = 0;
	char a[4][10] = { "農夫","狼","山羊","キャベツ" };
	char b[4][10] = { "no","no","no","no" };

	while (seiko == 0) {
		if ((a[1] == "狼") && (a[2] == "山羊")) {
			shippai = 1;
			if (a[0] == "農夫") {
				shippai = 0;
			}
		}

		if ((b[1] == "狼") && (b[2] == "山羊")) {
			shippai = 1;
			if (a[0] == "農夫") {
				shippai = 0;
			}
		}

		if ((a[2] == "山羊") && (a[3] == "キャベツ")) {
			shippai = 1;
			if (a[0] == "農夫") {
				shippai = 0;
			}
		}

		if ((b[2] == "山羊") && (b[3] == "キャベツ")) {
			shippai = 1;
			if (b[0] == "農夫") {
				shippai = 0;
			}
		}
		if (shippai == 1) {
			printf("選択ミス\n");
		}
		printf("岸  対岸\n");
		for (int i = 0; i < 4; i++) {
			printf("%s   %s\n", a[i], b[i]);
		}

		for (int i = 0; i < 4; i++) {
			strcmp(a[0], "農夫") == 0;
			{
				printf("0;%s 1;%s 2;%s 3;%s\n", a[0], a[1], a[2], a[3]);
				printf("農夫が運ぶアイテムを選ぶ\n");
				scanf_s("%d", &no);
				strcpy(a[no], b[no]);
				if (no == 1 || no == 2 || no == 3) {
					strcpy(a[0], b[0]);
				}
			}
			if (b[0] == "農夫") {
				printf("0;%s 1;%s 2;%s 3;%s\n", b[0], b[1], b[2], b[3]);
				printf("農夫が運ぶアイテムを選ぶ\n");
				scanf_s("%d", &no);
				strcpy(b[no], a[no]);
				if (yes == 1 || yes == 2 || yes == 3) {
					strcpy(b[0], a[0]);
				}
			}
		}

		if ((b[0] == "農夫") && (b[1] == "狼") && (b[2] == "山羊") && (b[3] == "キャベツ"));
		seiko = 1;
	}

printf("クリア\n");
return 0;
}


“C言語何でも質問掲示板” へ戻る