<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FSkrypty_z_zaj%C4%99%C4%87%2F6</id>
	<title>TI/Skrypty z zajęć/6 - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FSkrypty_z_zaj%C4%99%C4%87%2F6"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Skrypty_z_zaj%C4%99%C4%87/6&amp;action=history"/>
	<updated>2026-04-23T02:12:13Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Skrypty_z_zaj%C4%99%C4%87/6&amp;diff=8308&amp;oldid=prev</id>
		<title>Tgub: Utworzono nową stronę &quot;&lt;source lang=&quot;python&quot;&gt; # -*- coding: utf-8 -*- &quot;&quot;&quot; Created on Wed Apr  1 10:18:35 2020  @author: Tomek &quot;&quot;&quot;  import numpy as np import random   plansza = np.zeros((3,3))...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Skrypty_z_zaj%C4%99%C4%87/6&amp;diff=8308&amp;oldid=prev"/>
		<updated>2020-04-02T08:26:43Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt; # -*- coding: utf-8 -*- &amp;quot;&amp;quot;&amp;quot; Created on Wed Apr  1 10:18:35 2020  @author: Tomek &amp;quot;&amp;quot;&amp;quot;  import numpy as np import random   plansza = np.zeros((3,3))...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Created on Wed Apr  1 10:18:35 2020&lt;br /&gt;
&lt;br /&gt;
@author: Tomek&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import numpy as np&lt;br /&gt;
import random&lt;br /&gt;
 &lt;br /&gt;
plansza = np.zeros((3,3))&lt;br /&gt;
plansza[0,0] = 1&lt;br /&gt;
plansza[2,2] = 2&lt;br /&gt;
 &lt;br /&gt;
def rysuj(plansza):&lt;br /&gt;
    kreska = ('---+'*plansza.shape[1])[:-1]&lt;br /&gt;
    def znak(z):&lt;br /&gt;
        if z == 1: return ' O '&lt;br /&gt;
        if z == 2: return ' X '&lt;br /&gt;
        return '   '&lt;br /&gt;
    for i in range(plansza.shape[0]):&lt;br /&gt;
        print('|'.join([znak(liczba) for liczba in plansza[i,:]]))&lt;br /&gt;
        if (i&amp;lt;plansza.shape[0]-1): print(kreska)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
#vec to jednowymiarowa tablica&lt;br /&gt;
def sprawdz_linie(vec):&lt;br /&gt;
    #gdy vec ma same jedynki zwraca 1&lt;br /&gt;
    #gdy vec ma same dwojki zwraca 2&lt;br /&gt;
    # w pozostałych przypadkach zwraca 0&lt;br /&gt;
    for i in [1,2]:&lt;br /&gt;
        if np.count_nonzero(vec-i) == 0: return i&lt;br /&gt;
    return 0&lt;br /&gt;
 &lt;br /&gt;
def sprawdz_czy_dwa_identyczne_i_zero(vec,gracz):&lt;br /&gt;
    if (sum(vec==0)==1) and (sum(vec==gracz)==2):&lt;br /&gt;
        return (np.argwhere(vec==0))[0][0]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def czy_koniec():&lt;br /&gt;
    global plansza&lt;br /&gt;
    if (len(plansza.flatten())-np.count_nonzero(plansza)) == 0:&lt;br /&gt;
        return 'REMIS'&lt;br /&gt;
 &lt;br /&gt;
    wyniki=[]&lt;br /&gt;
    for j in range(len(plansza)):&lt;br /&gt;
        wyniki.append(sprawdz_linie(plansza[j,:]))&lt;br /&gt;
        wyniki.append(sprawdz_linie(plansza[:,j]))&lt;br /&gt;
    wyniki.append(sprawdz_linie(np.diag(plansza)))&lt;br /&gt;
    wyniki.append(sprawdz_linie(np.diag(plansza[:,::-1])))&lt;br /&gt;
 &lt;br /&gt;
    wynik=max(wyniki)&lt;br /&gt;
    if wynik:&lt;br /&gt;
        return 'wygral gracz '+str(wynik)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def ruch_losowy():&lt;br /&gt;
    global plansza&lt;br /&gt;
    mozliwe_ruchy=[]&lt;br /&gt;
    for x in range(plansza.shape[0]):&lt;br /&gt;
        for y in range(plansza.shape[1]):&lt;br /&gt;
            if plansza[x,y]==0: mozliwe_ruchy.append((x,y))&lt;br /&gt;
    ruch=random.choice(mozliwe_ruchy)&lt;br /&gt;
    plansza[ruch[0],ruch[1]]=2&lt;br /&gt;
 &lt;br /&gt;
def ofensywa(gracz):&lt;br /&gt;
    global plansza&lt;br /&gt;
    &lt;br /&gt;
    #po wierszach&lt;br /&gt;
    for j in range(len(plansza)):&lt;br /&gt;
        wynik = sprawdz_czy_dwa_identyczne_i_zero(plansza[j,:],gracz)&lt;br /&gt;
        if wynik!=None:&lt;br /&gt;
            plansza[j,wynik]=2&lt;br /&gt;
            return True&lt;br /&gt;
    &lt;br /&gt;
    #po kolumnach&lt;br /&gt;
    for j in range(len(plansza)):&lt;br /&gt;
        wynik = sprawdz_czy_dwa_identyczne_i_zero(plansza[:,j],gracz)&lt;br /&gt;
        if wynik!=None:&lt;br /&gt;
            plansza[wynik,j]=2&lt;br /&gt;
            return True&lt;br /&gt;
    &lt;br /&gt;
    #diagonala&lt;br /&gt;
    wynik = sprawdz_czy_dwa_identyczne_i_zero(np.diag(plansza),gracz)&lt;br /&gt;
    if wynik!=None:&lt;br /&gt;
        plansza[wynik,wynik]=2&lt;br /&gt;
        return True&lt;br /&gt;
    &lt;br /&gt;
    #antydiagonala&lt;br /&gt;
    wynik = sprawdz_czy_dwa_identyczne_i_zero(np.diag(plansza[:,::-1]),gracz)&lt;br /&gt;
    if wynik!=None:&lt;br /&gt;
        plansza[wynik,plansza.shape[0]-1-wynik]=2&lt;br /&gt;
        return True&lt;br /&gt;
    return False&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def ruch_komputera():&lt;br /&gt;
    czy_byl_ruch = False&lt;br /&gt;
    czy_byl_ruch = ofensywa(2)&lt;br /&gt;
    if czy_byl_ruch==False: czy_byl_ruch = ofensywa(1)&lt;br /&gt;
    if czy_byl_ruch==False: ruch_losowy()&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
while True:&lt;br /&gt;
    &lt;br /&gt;
    #rysujemy plansze&lt;br /&gt;
    rysuj(plansza)&lt;br /&gt;
 &lt;br /&gt;
    #ruch gracza i&lt;br /&gt;
    while True:&lt;br /&gt;
        x = int(input('graczu podaj wspolrzedna x:'))&lt;br /&gt;
        y = int(input('graczu podaj wspolrzedna y:'))&lt;br /&gt;
        if (plansza[x,y] == 0): break&lt;br /&gt;
    plansza[x,y] = 1&lt;br /&gt;
    &lt;br /&gt;
    #sprawdzanie warunku konca&lt;br /&gt;
    if czy_koniec():&lt;br /&gt;
        print(czy_koniec())&lt;br /&gt;
        break&lt;br /&gt;
    &lt;br /&gt;
    #ruch komputera&lt;br /&gt;
    ruch_komputera()&lt;br /&gt;
    &lt;br /&gt;
    #sprawdzanie warunku konca&lt;br /&gt;
    if czy_koniec():&lt;br /&gt;
        print(czy_koniec())&lt;br /&gt;
        break&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/souce&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tgub</name></author>
		
	</entry>
</feed>