アフィリエイト広告を利用しています

はじめに | サイトマップ | プライバシーポリシー・サイトポリシー・免責事項など | 【レビュー】Parallels Desktop 15 for Mac 




広告

posted by fanblog

2015年09月16日

じゃんけんプログラミング:2次元配列編(経験値考慮版)| C言語プログラミング入門講座











キーワード
C言語 人工無能 人工知能


Xcode(Mac)で覚えるC言語入門講座 | はじめてのコンピュータ・パソコン.png


AI(人工知能)プログラミングの作り方 | C言語プログラミング入門講座




C言語で、

簡単な「 じゃんけんプログラム 」を作りながら

人工知能(AI:Artificial Intelligence)について、

考えていきたいと思います。





今回は、

二次元配列 」、

乱数 」、

関係演算子 」・「論理演算子」などを利用して、

コンピュータが、出す手(グー、チョキ、パー)を

考える際に、

以前のじゃんけん結果(経験値)を考慮し、

コンピュータの出すじゃんけんの手を

決める

基本的なじゃんけんAIプログラム

を実装してみます。











[ C言語プログラミングの開発環境 ]


Xcode



Macのプログラミングのための

統合開発環境
(IED:Integrated Development Environment)



 * その他にも、一例として、
   IBMアイビーエム
  (International Business Machines Corporation)
   によって開発された

  「 Eclipse 」(イクリプス・エクリプス)

   というオープンソースの統合開発環境 (IDE) でも
   Mac環境下でC言語プログラミングの練習が
   できると思います。
   個人的には、Xcodeの方が、
   簡単なプログラミン程度であれば使いやすいのでは
   ないかと思います。

  「 Eclipse 」は、Javaをはじめ
   さまざまなプログラミング言語を学習したい場合には、
   役に立つのではないかと思います。






Xcodeを利用して、

C言語プログラミングの実行環境にする方法や、

基本的なコード入力時の

キーボード操作方法についてわからない

わからない方の場合は、

こちらの記事から読み進めてみてください。

Hello worldプログラム | Xcode(Mac)でC言語入門講座











じゃんけんプログラム:二次元配列編(経験値考慮版)
C言語プログラミング入門講座(動画)













C言語サンプルコード


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

int main(void) {
int myJanken;
int previous = 0;
int twoDMemory[3][3] = {{0, 0, 0}, {0,0,0}, {0,0,0}};
int prediction;
int counter = 0;
int janken_ai;

srand((unsigned)time(NULL));
while (myJanken >= 0 && myJanken <= 2) {
printf("じゃんけんAIと「じゃんけん」をしよう!\n(0=グー、1=チョキ、2=パー、それ以外=終了:数値を入力後「enter」キー)\n:");
scanf("%d",&myJanken);
if (myJanken < 0 || myJanken > 2) break;
counter++;
printf("\nじゃんけん、ぽん!\n");
/* 5回目までは乱数でじゃんけんを出し、その後は経験値(直前の手)を考慮 */
if (counter < 6) {
janken_ai = rand() % 3;
} else {
prediction = 0;
if (twoDMemory[previous][prediction] < twoDMemory[previous][1]) prediction = 1;
if (twoDMemory[previous][prediction] < twoDMemory[previous][2]) prediction = 2;
janken_ai = (prediction + 2) % 3;
}
if (janken_ai == 0) {
printf("じゃんけんAI:「グー」です。\n");
} else if (janken_ai == 1) {
printf("じゃんけんAI:「チョキ」です。\n");
} else {
printf("じゃんけんAI:「パー」です。\n");
}
printf("\n\n");

twoDMemory[previous][myJanken]++;
previous = myJanken;

}

}






 * コード内に全角スペースが含まれていると
   エラーになりますので、
   その際は、半角スペースに適宜修正してください。

 * int型 (integerインテジャー:整数値)の変数として、
   「 myJanken:入力するじゃんけんの手 」
   「 previous:以前のじゃんけんの出した手 」
   「 twoDMemory:2次元配列メモリー 」
   「 prediction:じゃんけんの出す手の予測 」
   「 counter:カウンター 」
   「 janken_ai:じゃんけんAIの出す手 」
   という名前などの変数を作成しています。
   変数名は自分でわかりやすいように名前をつけてみてください。










今回のプログラムでは、

プログラムを実行後に、

0 」「 1 」「 2 」を

入力後、

「 enter 」キーを押すと、

コンピュータの出す手が、

出力されるようになっています。





上記の数値以外を入力し、

「 enter 」キーを押した場合は、

プログラムを終了します。


 * 数値以外を入力して、「 enter 」キー
   押した場合は、エラー出力になります。


以下の記事で、


 ー じゃんけんプログラミング(乱数編:特徴なし版)その1 | C言語プログラミング入門講座


 ー じゃんけんプログラミング(乱数編:特徴なし版)その2 | C言語プログラミング入門講座


 ー じゃんけんプログラミング(乱数編:特徴あり版)その1 | C言語プログラミング入門講座 


 ー  じゃんけんプログラミング(乱数編:特徴あり版)その2 | C言語プログラミング入門講座


C言語プログラミングの練習をしてみた

プログラミングに比べると、

複雑なコードに

なってきているのではないかと思います。





人間が以前に出したじゃんけんの手を記憶し、

次の手に活かせるように

プログラミングされており、

じゃんけんに特化されたプログラムではありますが、

少しずつ人工知能らしくなってきているのでは

ないかと思います。





今回のサンプルプログラムコードの

if (counter < 6) 」の

数値を変更することで、

どの段階で、

人間が前に出したじゃんけんの手を考慮することが

できるようになるかを決めることができます。





具体的には、


C言語サンプルコード


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

int main(void) {
int myJanken;
int previous = 0;
int twoDMemory[3][3] = {{0, 0, 0}, {0,0,0}, {0,0,0}};
int prediction;
int counter = 0;
int janken_ai;

srand((unsigned)time(NULL));
while (myJanken >= 0 && myJanken <= 2) {
printf("じゃんけんAIと「じゃんけん」をしよう!\n(0=グー、1=チョキ、2=パー、それ以外=終了:数値を入力後「enter」キー)\n:");
scanf("%d",&myJanken);
if (myJanken < 0 || myJanken > 2) break;
counter++;
printf("\nじゃんけん、ぽん!\n");
/* 10回目までは乱数でじゃんけんを出し、その後は経験値を考慮 */
if (counter < 11) {
janken_ai = rand() % 3;
} else {
prediction = 0;
if (twoDMemory[previous][prediction] < twoDMemory[previous][1]) prediction = 1;
if (twoDMemory[previous][prediction] < twoDMemory[previous][2]) prediction = 2;
janken_ai = (prediction + 2) % 3;
}
if (janken_ai == 0) {
printf("じゃんけんAI:「グー」です。\n");
} else if (janken_ai == 1) {
printf("じゃんけんAI:「チョキ」です。\n");
} else {
printf("じゃんけんAI:「パー」です。\n");
}
printf("\n\n");

twoDMemory[previous][myJanken]++;
previous = myJanken;

}

}



などとすると、

設定を変更することができると思います。






コードを見た感じは、

とっつきにくい感じる方も多いのではないかと

思いますが、

C言語プログラムのコード入力に

慣れる目的などで、

サンプルコードの

入力にチャレンジしてみてください。








[ スポンサードリンク ]















teratail | レバレジーズ株式会社




C言語をはじめとした
プログラミングの関連Q&Aサイトです。

日々のC言語プログラミングの学習、
独学でのプログラミング関連の疑問などを、

teratail

で質問してみてください。
無料で利用できます。

teratail








                    by はじめてのコンピュータ・パソコン







                 ▲ この記事のトップへ





Xcode(Mac)で覚えるC言語入門講座 | はじめてのコンピュータ・パソコン.png
このバナーをクリックすると
「 Xcode(Mac)で覚えるC言語入門講座 」
の一覧ページにリンクします。


ー 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座


 :じゃんけんプログラミング(2次元配列編:思考パターン版)| C言語プログラミング入門講座


 :AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 2次元配列編)




右向き三角1サイトマップ


右向き三角1プロフィール | サイトポリシー・免責事項など


右向き三角1CONTENTS(コンテンツ)一覧


右向き三角1C言語関連本 特集


右向き三角1Xcode(Mac)で覚えるSwiftプログラミング入門講座


右向き三角1Macでコマンド入門講座


右向き三角1パソコン・プログラミング学習関連アプリ 特集


右向き三角1日本人のプログラミング学習の現在と未来 | #24 デジタルライフコラム


右向き三角1Mac(マック)関連パソコン iMac・MacBookPro・MacBookAir


右向き三角1パソコン・家電の新製品・キャンペーン情報 特集











Parallels Desktop 18 for Mac クーポン情報




MacでWindowsを使えるソフトウェア【Parallels】

Parallels Desktop for Macをレビュー中。
【レビュー】Parallels Desktop 15 for Mac(一覧へ) 


Parallels Desktop 15 for Mac以降のレビューなど
子供プログラマーのサイトにリンクします。
【長期レビュー】Parallels Desktop for Macの感想(一覧)

子供プログラマーのサイトにリンクします。
【クーポン情報 - 10% OFF】Parallels Desktop 18 for Mac(2023年7月25日〜2023年8月8日まで) New♪
サイト内検索


おすすめ入門講座・特集コンテンツ
このサイトで作成している入門講座や、特集関連などのおすすめコンテンツです。お気に入りの講座コンテンツや、気になる特集探しなどにお役立てください 
  1. 1. 【Mac版】データ復元・復旧SOS講座(一覧)
  2. 2. no img パソコン便利機能関連記事(一覧) | エクセル・ワード・パワーポイント
  3. 3. Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版)
  4. 4. no img 人工知能(AI)・機械学習プログラミング入門者のための数学入門講座
  5. 5. 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座
  6. 6. Macでアフィリエイトのやり方・始め方入門講座
  7. 7. Xcode(Mac)で覚えるSwiftプログラミング入門講座(一覧)
  8. 8. デジタルライフコラム(Column)
  9. 9. パソコンでイラスト作成入門講座 | 基礎から求人探しまで
最新記事


サイトポリシー・免責
HajimeteCPCさんの画像
HajimeteCPC
子供プログラマー | プログラミング入門ウェブ教室


子供プログラマー | プログラミング入門ウェブ教室_イメージ.png

子供と一緒にプログラミングを楽しむために、大人がプログラミングを学ぶための学習支援サイトです。

こちらの記事ページもご活用ください。
日本人のための人工知能プログラマー入門講座(機械学習)

メニュー | はじめてのコンピュータ・パソコン


・ サイトマップ

・ プライバシーポリシー・サイトポリシー・免責事項など

・ はじめに

・ トップページ

・ CONTENTS(コンテンツ)一覧

・ 年賀状をパソコンで自宅で作ろう講座

・ エクセル・ワード・パワーポイントの使い方入門

・ 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座

・ Xcode(Mac)で覚えるC言語入門講座

・ Xcode(Mac)で覚えるSwiftプログラミング入門講座

・ Mac関連

・ コンピュータ・プログラミング書籍関連 | まとめ・書評など(一覧)

・ パソコンでイラスト作成入門講座

・ アフィリエイトのやり方・始め方入門講座 

・ SEO・レンタルサーバー入門講座

・ 確定申告・会計 特集 

・ デジタルライフコラム

・ エンジニア求人探し



[ スポンサードリンク ]



タグクラウド




QRコード
<< 2023年07月 >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
月別アーカイブ
You Tubeチャンネルぺージ


RehabC | イメージ.png
You Tubeのチャンネルもあります。
エクセル、ワード、パワーポイントなどの
基本的な操作方法の学習や、
プログラミングやイラスト作成をはじめとした、
パソコン学習の補助などにご活用ください。
よろしくお願いいたします。

×

この広告は30日以上新しい記事の更新がないブログに表示されております。