川渡りゲームを作っていただきたいです。
条件として
・船に乗せられるのは農夫の他に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;
}