人間の頭脳を模したロボットを作りました。

  • 2
    いいね
  • 23
    コメント

僕の作ったロボットのコードまとめ。コードだけですみません。
ホームページでも公開しています。

思考型ロボット

一号機。

robot1.c

#include <stdio.h>
#include <stdlib.h>
int getlp(int *p){
*p = rand()%2;
return 1;
}
void action(int *p){
if(*p==0){
printf("はらが減った。");
}
if(*p==1){
printf("はらは減っていない。");
}
}
int main(void){
int p;
while(getlp(&p)){
action(&p);
}
}

二号機。

robot2.c

#include <stdio.h>
#include <stdlib.h>
struct _obj {
int p;
int hara;
};
int getlp(struct _obj *obj){
obj->p = rand()%4;
return 1;
}
void action(struct _obj *obj){
if(obj->p==0){
printf("はらは");
if(obj->hara==0){printf("減った。");}
else{printf("減っていない。");}
}
if(obj->p==1){printf("楽しい。");}
if(obj->p==2){
printf("はらが減る");
obj->hara=0;
}
if(obj->p==3){
printf("おいしいごはんを食べた");
obj->hara=1;
}
}
int main(void){
struct _obj obj;
obj.hara=1;
while(getlp(&obj)){
action(&obj);
}
}

三号機。

robot3.c

#include <stdio.h>
#include <stdlib.h>
struct _obj {
int p;
int w;
int t;
};
int getlp(struct _obj *obj){
obj->p = rand()%5;
return 1;
}
void action(struct _obj *obj){
if(obj->p==0){
printf("ここは");
if(obj->w==1){
printf("日本です。");
}
if(obj->w==2){
printf("ドイツです。");
}
}
if(obj->p==1){
printf("日本にやってきました。");
obj->w=1;
}
if(obj->p==2){
printf("ドイツにやってきました。");
obj->w=2;
}
if(obj->p==3){
printf("想像力を使います。");
printf("りんごは赤い。");
obj->t=1;
}
if(obj->p==4){
printf("想像力を使います。");
printf("りんごは白い。");
obj->t=0;
}
if(obj->p==3||obj->p==4){
if(obj->t==1){
printf("正しい。");
}
else{
printf("間違っている。");
}
}
}
int main(void){
struct _obj obj;
obj.w=1;
obj.t=1;
while(getlp(&obj)){
action(&obj);
}
}

四号機。

robot4.c

#include <stdio.h>
#include <stdlib.h>

struct _obj {
  int o;
  int n;
};

void action(int* p, struct _obj *obj){
  if(*p==0){
    printf("[1] テレビは、つまらない\n");
  }
  if(*p==1){
    printf("[2] テレビは、面白い\n");
  }
  if(*p==2){
    printf("[3] パソコンは、つまらない\n");
  }
  if(*p==3){
    printf("[4] パソコンは、面白い\n");
  }
  if(*p==4){
    printf("[5] テレビやパソコンは、機械だ。\n");
  }
  if(*p==5){
    printf("[6] テレビやパソコンは、生き物ではない。\n");
  }
  if(*p==6){
    printf("[7] テレビって何なのだろう。\n");
  }
  if(*p==7){
    printf("[8] テレビとパソコンは好きだ。\n");
  }
  if(*p==8){
    printf("[9] テレビとパソコンは嫌いだ。\n");
  }
  if(*p==9){
    if(obj->n==0){
      printf("[10] 比較すると、テレビの方が普通だ。\n");
    }
    if(obj->n==1){
      printf("[11] 比較すると、パソコンの方が普通だ。\n");
    }
  }
  if(*p==10){
    if(obj->n==0){
      printf("[12] テレビよりパソコンの方が普通かな。\n");
      obj->n=1;
    }
    else if(obj->n==1){
      printf("[13] パソコンよりテレビの方が普通かな。\n");
      obj->n=0;
    }
  }
  if(*p==11){
    if(obj->o==0){
      printf("[14] リンゴが好きです。\n");
    }
    if(obj->o==1){
      printf("[15] みかんが好きです。\n");
    }
  }
  if(*p==12){
    if(obj->o==0){
      printf("[16] リンゴより、みかんが好きになりました。\n");
      obj->o=1;
    }
    else if(obj->o==1){
      printf("[17] みかんより、リンゴが好きになりました。\n");
      obj->o=0;
    }
  }
}

int main(void){
  int p;
  struct _obj obj;
  p=0;
  obj.o=0;
  obj.n=0;
  while(1){
    p=rand()%13;
    action(&p, &obj);
  }
}

このロボットは、改善点として、普通の人工知能を乗せる、思考を覚えて思い出す、マルチスレッドにして複数にする、などが考えられる。

推論型ロボット

僕は、何をすべきなのか、自分の力で考えるコンピュータを作るべきだと思う。

robot5.c

#include <stdio.h>

struct _obj {
  int p;
};

int check1 (struct _obj *obj) {
  if (obj->p == 0) {
    return 1;
  }
  return 0;
}
int check2 (struct _obj *obj) {
  if (obj->p == 1) {
    return 1;
  }
  return 0;
}
void action1 (struct _obj *obj) {
  printf("ここではアクション1をやります。\n");
}
void action2 (struct _obj *obj) {
  printf("ここではアクション2をやります。\n");
}
int main (void) {
  struct _obj obj;
  obj.p = 0;
  if (check1(&obj)){
    action1(&obj);
  }
  if (check2(&obj)){
    action2(&obj);
  }
}