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

Parallels Desktop 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♪
サイト内検索


おすすめ入門講座・特集コンテンツ
このサイトで作成している入門講座や、特集関連などのおすすめコンテンツです。お気に入りの講座コンテンツや、気になる特集探しなどにお役立てください 
最新記事


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


子供フ?ロク?ラマー | フ?ロク?ラミンク?入門ウェフ?教室_イメーシ?.png




日本人のための人工知能プログラマー入門講座(機械学習)

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


・  サイトマップ

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

・  はじめに

・  トップページ

・  CONTENTS(コンテンツ)一覧

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

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

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

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

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

・  Mac関連

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

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

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

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

・  確定申告・会計 特集

・  デジタルライフコラム

・  エンジニア求人探し



[ スポンサードリンク ]



タグクラウド




QRコード
<< 2023年07月 >>
1
2 3 4 5 6 7 8
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
月別アーカイブ
2023年07月 (2)
2021年12月 (3)
2021年10月 (2)
2020年02月 (2)
2020年01月 (1)
2019年12月 (6)
2019年11月 (9)
2019年10月 (1)
2019年09月 (7)
2019年02月 (5)
2019年01月 (21)
2018年12月 (7)
2018年11月 (6)
2018年10月 (7)
2018年09月 (5)
2018年08月 (5)
2018年04月 (1)
2018年02月 (2)
2018年01月 (4)
2017年12月 (4)
2017年11月 (5)
2017年10月 (7)
2017年08月 (5)
2017年07月 (3)
2017年06月 (23)
2017年05月 (7)
2017年04月 (9)
2017年03月 (2)
2017年02月 (8)
2017年01月 (20)
2016年12月 (18)
2016年11月 (8)
2016年10月 (11)
2016年09月 (8)
2016年08月 (27)
2016年07月 (34)
2016年06月 (27)
2016年05月 (26)
2016年04月 (26)
2016年03月 (20)
2016年02月 (17)
2016年01月 (58)
2015年12月 (49)
2015年11月 (26)
2015年10月 (64)
2015年09月 (43)
2015年08月 (30)
2015年07月 (13)
2015年06月 (35)
2015年05月 (40)
2015年04月 (22)
2015年03月 (18)
2015年02月 (11)
2015年01月 (10)
2014年12月 (13)
2014年11月 (4)
2014年10月 (2)
2014年09月 (9)
2014年08月 (15)



2014年8月からこのブログを始めてみましたが、随分記事がたまってきました。どれかの記事が、何かの参考になることがありましたら幸いです。
You Tubeチャンネルぺージ


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

はじめに | サイトマップ | プライバシーポリシー・サイトポリシー・免責事項など | 【レビュー】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次元配列編)




? サイトマップ


? プロフィール | サイトポリシー・免責事項など


? CONTENTS(コンテンツ)一覧


? C言語関連本 特集


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


? Macでコマンド入門講座


? パソコン・プログラミング学習関連アプリ 特集


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


? Mac(マック)関連パソコン iMac・MacBookPro・MacBookAir


? パソコン・家電の新製品・キャンペーン情報 特集











Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: